Attach bind-9.2.4rc4 to the base system. Rip out bind-8 binaries and add
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 27 May 2004 18:15:43 +0000 (18:15 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 27 May 2004 18:15:43 +0000 (18:15 +0000)
in / adjust for most bind-9 binaries.  Note that some pre-generated header
files have been hacked into /usr/src/usr.sbin/named and might have to be
regenerated from the original distribution when incorporating updates to
bind.  But, for the most part, the build is clean.

Clean up rc.d/named and etc/defaults/rc.conf, add a README file to
/etc/namedb describing setup requirements, and change the default
named.conf file and RCNG variables to (if named is enabled) run named in
a chrooted environment as user 'bind'.  Adapt the 'getroot' script that
I have used for many years to provide a better root.zone master methodology
instead of the root hints file that has been traditionally shipped.

Adjust the mtree files and distrib-dirs target to create the necessary
infrastructure in /etc/namedb for handling a chrooted named.

NOTE: bind-8 had 'ndc' and 'named-xfer'.  bind-8 has rndc and there is no
named-xfer (it is builtin to named).  nslookup still exists but is deprecated
in favor of 'dig', and the old dnskeygen/dnsquery mechanism has been replaced
by the newer dnssec-* mechanism.

56 files changed:
Makefile.upgrade [deleted file]
etc/Makefile
etc/defaults/rc.conf
etc/mtree/BSD.root.dist
etc/namedb/README [new file with mode: 0644]
etc/namedb/getroot [new file with mode: 0644]
etc/namedb/named.conf
etc/rc.d/named
lib/libbind/Makefile
lib/libbind/port_after.h [new file with mode: 0644]
lib/libbind/port_before.h [new file with mode: 0644]
lib/libisc/Makefile
libexec/Makefile
libexec/named-xfer/Makefile [deleted file]
share/doc/smm/10.named/Makefile [deleted file]
usr.bin/Makefile
usr.bin/dig/Makefile
usr.bin/dnskeygen/Makefile [deleted file]
usr.bin/dnsquery/Makefile [deleted file]
usr.bin/dnssec-keygen/Makefile [new file with mode: 0644]
usr.bin/dnssec-makekeyset/Makefile [new file with mode: 0644]
usr.bin/dnssec-signkey/Makefile [new file with mode: 0644]
usr.bin/dnssec-signzone/Makefile [new file with mode: 0644]
usr.bin/host/Makefile
usr.sbin/Makefile
usr.sbin/named-checkconf/Makefile [new file with mode: 0644]
usr.sbin/named-checkzone/Makefile [new file with mode: 0644]
usr.sbin/named.reload/Makefile
usr.sbin/named.reload/named.reload.sh
usr.sbin/named.restart/Makefile
usr.sbin/named.restart/named.restart.sh
usr.sbin/named/Makefile
usr.sbin/named/Makefile.inc
usr.sbin/named/code.h [new file with mode: 0644]
usr.sbin/named/config.h [new file with mode: 0644]
usr.sbin/named/dns/enumclass.h [new file with mode: 0644]
usr.sbin/named/dns/enumtype.h [new file with mode: 0644]
usr.sbin/named/dns/rdatastruct.h [new file with mode: 0644]
usr.sbin/named/include/dns/enumclass.h [new file with mode: 0644]
usr.sbin/named/include/dns/enumtype.h [new file with mode: 0644]
usr.sbin/named/include/dns/rdatastruct.h [new file with mode: 0644]
usr.sbin/named/include/isc/os.h [new file with mode: 0644]
usr.sbin/named/include/isc/platform.h [new file with mode: 0644]
usr.sbin/named/include/lwres/netdb.h [new file with mode: 0644]
usr.sbin/named/include/lwres/platform.h [new file with mode: 0644]
usr.sbin/named/include/named/os.h [new file with mode: 0644]
usr.sbin/named/isc/os.h [new file with mode: 0644]
usr.sbin/named/isc/platform.h [new file with mode: 0644]
usr.sbin/named/lwres/netdb.h [new file with mode: 0644]
usr.sbin/named/lwres/platform.h [new file with mode: 0644]
usr.sbin/named/named/os.h [new file with mode: 0644]
usr.sbin/ndc/Makefile [deleted file]
usr.sbin/nslookup/Makefile
usr.sbin/nsupdate/Makefile
usr.sbin/rndc-confgen/Makefile [new file with mode: 0644]
usr.sbin/rndc/Makefile [new file with mode: 0644]

diff --git a/Makefile.upgrade b/Makefile.upgrade
deleted file mode 100644 (file)
index 2331066..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-#
-# $FreeBSD: src/Makefile.upgrade,v 1.17 1999/08/28 01:35:58 peter Exp $
-# $DragonFly: src/Attic/Makefile.upgrade,v 1.2 2003/06/17 04:21:10 dillon Exp $
-#
-# This makefile contains rules for preforming upgrades that are outside
-# the scope of the normal build world process.
-#
-
-#
-# Make sure the PATH is set correctly
-#
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-#
-# Build things relative to the user's preferred object directory,
-# defaulting to /usr/obj if not defined.
-#
-MAKEOBJDIRPREFIX?=/usr/obj
-
-#
-# The installed operating system release gives us the hint as to whether
-# we need to build a kernel too.
-#
-INSTALLEDVERSION!=sh ${.CURDIR}/tools/tools/upgrade/getosreldate.sh
-INSTALLEDNAME!=uname -r
-
-#
-# Upgrade the installed make to the current version using the installed
-# headers, libraries and build tools. This is required on installed versions
-# prior to 2.2.5 in which the installed make doesn't support the -m argument.
-#
-make   :
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Upgrading the installed make"
-       @echo "--------------------------------------------------------------"
-       @cd ${.CURDIR}/usr.bin/make; \
-               make obj && make depend && make all && make install
-
-#
-# Upgrade from aout to elf, doing an aout build first to ensure that there
-# are up-to-date tools before building the initial elf world. The aout
-# tools just built into the object directory tree and executed from there
-# during the elf build. Then install the aout tools, build an aout kernel
-# with them (in case the installed kernel is an older version), then 
-# install the elf world.
-#
-aout-to-elf aout-to-elf-install :      /var/db/update.cfg      \
-               ${MAKEOBJDIRPREFIX}/do_aout_buildworld          \
-               ${MAKEOBJDIRPREFIX}/do_elf_buildworld           \
-               ${MAKEOBJDIRPREFIX}/do_move_aout_libs           \
-               ${MAKEOBJDIRPREFIX}/do_aout_installworld        \
-               ${MAKEOBJDIRPREFIX}/do_elf_installworld         \
-               ${MAKEOBJDIRPREFIX}/do_elf_kernel               \
-               ${MAKEOBJDIRPREFIX}/do_set_objformat            \
-               ${MAKEOBJDIRPREFIX}/do_reboot
-
-# front-load all the information we're going to need.
-/var/db/update.cfg:
-       @if [ -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \
-           env MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 1 /var/db/update.cfg; \
-       else \
-           echo "Your source tree must not be fully populated; unable to find upgrade script"; echo "in ${.CURDIR}/tools/tools/upgrade/doupgrade.sh."; exit 1; \
-       fi
-
-#
-# Just do the build parts of the transition build.
-#
-aout-to-elf-build :                                            \
-               ${MAKEOBJDIRPREFIX}/do_aout_buildworld          \
-               ${MAKEOBJDIRPREFIX}/do_elf_buildworld           
-
-#
-# The installed system may not have tools capable of building an elf
-# aware world, so a complete aout buildworld is required to get a known
-# set of tools.
-#
-${MAKEOBJDIRPREFIX}/do_aout_buildworld :
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Doing an aout buildworld to get an up-to-date set of tools"
-       @echo "--------------------------------------------------------------"
-       @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/aout \
-               OBJFORMAT=aout REALLY_WANT_DEPRECIATED_AOUT=yes \
-               ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld
-       @touch ${MAKEOBJDIRPREFIX}/do_aout_buildworld
-
-#
-# Temporary path for initial elf build.
-#
-AOUTTMPPATH=   ${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/games
-
-#
-# Use the aout tools from the aout buildworld to do an elf buildworld.
-#
-${MAKEOBJDIRPREFIX}/do_elf_buildworld :
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Doing an elf buildworld using the aout tools in the aout"
-       @echo " obj tree."
-       @echo "--------------------------------------------------------------"
-       @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \
-               PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \
-               TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \
-               X11BASE=/nonexistent \
-               ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld
-       @touch ${MAKEOBJDIRPREFIX}/do_elf_buildworld
-
-#
-# ldconfig should list the directories that the system is currently using.
-#
-CUSTOM_LIBDIRS!=ldconfig -r | grep search | sed "s/search directories: //" | sed "s/:/ /g"
-
-#
-# These are the standard library directories that should end up containing
-# just elf libraries.
-#
-LIBDIRS=/usr/lib /usr/lib/compat /usr/local/lib /usr/X11R6/lib
-
-#
-# Go through the list of library directories from ldconfig and add any
-# directory that doesn't contain an aout path component to the list of
-# library directories to search.
-#
-.for _lib in ${CUSTOM_LIBDIRS}
-_lib1=${_lib:S/\/aout//}
-.if ${_lib1} == ${_lib}
-.if ${LIBDIRS:R:M${_lib:R}} == ""
-LIBDIRS+=${_lib}
-.endif
-.endif
-.endfor
-
-#
-# Go through the list of library directories and prepare a list of
-# aout directories.
-#
-AOUTLIBDIRS=
-.for _lib in ${LIBDIRS}
-AOUTLIBDIRS+=${_lib}/aout
-.endfor
-
-#
-# Move the aout libraries into an aout sub-directory of each elf library
-# directory.
-#
-${MAKEOBJDIRPREFIX}/do_move_aout_libs move-aout-libs :
-.if !defined(NOCONFIRM)
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " You are about to move all the installed a.out libraries into"
-       @echo " an aout sub-directory of each elf library directory. You can"
-       @echo " type Ctrl-C to abort now or press return to start the moving"
-       @echo " the libraries."
-       @echo "--------------------------------------------------------------"
-       @echo Directories to search: ${LIBDIRS}
-       @/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
-       @sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS}
-.else
-       @NOCONFIRM=1 sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS}
-.endif
-       @ldconfig ${AOUTLIBDIRS}
-       @touch ${MAKEOBJDIRPREFIX}/do_move_aout_libs
-
-#
-# Before installing the aout world, allow for the possibility that the
-# world about to be installed has some different syscalls to the installed
-# kernel which will make shutting the system down problematic. We set aside
-# copies of certain programs which match the running kernel.
-#
-# Install the aout world so that anything that isn't replaced by the
-# elf world will be updated.
-#
-${MAKEOBJDIRPREFIX}/do_aout_installworld :
-.if    ${INSTALLEDVERSION} < 300003
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Saving a copy of programs required to shut the system down"
-       @echo "--------------------------------------------------------------"
-       @cp /bin/sh ${MAKEOBJDIRPREFIX}
-       @cp /sbin/reboot ${MAKEOBJDIRPREFIX}
-.endif
-       @touch ${MAKEOBJDIRPREFIX}/do_aout_installworld
-
-#
-# Build and install a new kernel, as well as the boot blocks necessary to
-# boot it.
-#
-${MAKEOBJDIRPREFIX}/do_elf_kernel :
-       @if [ -f /var/db/update.cfg -a -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \
-            env MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 2 /var/db/update.cfg; \
-       fi
-       @touch ${MAKEOBJDIRPREFIX}/do_elf_kernel
-       @rm -f /var/db/update.cfg
-
-#
-# Install the elf world overwriting just about all the previously installed
-# aout world. Any aout things that need to be kept have already been
-# installed in different places (typically in aout subdirectories).
-#
-${MAKEOBJDIRPREFIX}/do_elf_installworld :
-.if !defined(NOCONFIRM)
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " You are about to update the installed system (or the system"
-       @echo " that your DESTDIR points to) with the elf versions of"
-       @echo " everything, replacing the aout versions. You can type Ctrl-C"
-       @echo " to abort now, leaving just the aout world installed, or"
-       @echo " press return to start the second phase of the update."
-       @echo "--------------------------------------------------------------"
-       @/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
-.endif
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Doing an elf installworld using the aout tools in the aout"
-       @echo " obj tree."
-       @echo "--------------------------------------------------------------"
-       @cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \
-               PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \
-               TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \
-               ${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk installworld
-       @if [ ! -f /etc/pam.conf ]; then cp ${.CURDIR}/etc/pam.conf /etc; fi
-       @if [ ! -f /etc/auth.conf ]; then cp ${.CURDIR}/etc/auth.conf /etc; fi
-       @if [ ! -f /etc/login.conf ]; then cp ${.CURDIR}/etc/login.conf /etc; fi
-       @touch ${MAKEOBJDIRPREFIX}/do_elf_installworld
-
-#
-# Now that the elf world has been installed, we can set the default
-# object format to elf.
-#
-${MAKEOBJDIRPREFIX}/do_set_objformat   :
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Setting the default object format to elf"
-       @echo "--------------------------------------------------------------"
-       @echo "OBJFORMAT=elf" > ${DESTDIR}/etc/objformat
-       @touch ${MAKEOBJDIRPREFIX}/do_set_objformat
-
-#
-# Time to reboot!
-${MAKEOBJDIRPREFIX}/do_reboot  :
-.if !defined(NOCONFIRM)
-       @echo
-       @echo "--------------------------------------------------------------"
-       @echo " Your system has now been fully updated to elf!"
-       @echo
-       @echo " It's now time to reboot from your new ELF kernel."
-       @echo " You can type Ctrl-C to abort this (at your own risk)"
-       @echo " or press return to reboot the system."
-       @echo "--------------------------------------------------------------"
-       @${MAKEOBJDIRPREFIX}/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
-.endif
-       @echo " Rebooting......."
-       @echo "--------------------------------------------------------------"
-       @touch ${MAKEOBJDIRPREFIX}/do_reboot
-       @-${MAKEOBJDIRPREFIX}/reboot
index 1428b1a..a8dd5da 100644 (file)
@@ -1,6 +1,6 @@
 #      from: @(#)Makefile      5.11 (Berkeley) 5/21/91
 # $FreeBSD: src/etc/Makefile,v 1.219.2.38 2003/03/04 09:49:00 ru Exp $
-# $DragonFly: src/etc/Makefile,v 1.19 2004/05/17 01:03:52 dillon Exp $
+# $DragonFly: src/etc/Makefile,v 1.20 2004/05/27 18:15:37 dillon Exp $
 
 .if !defined(NO_SENDMAIL)
 SUBDIR=        sendmail
@@ -49,7 +49,7 @@ MTREE+=       BSD.sendmail.dist
 .endif
 
 NAMEDB=        PROTO.localhost.rev PROTO.localhost-v6.rev named.conf named.root \
-       make-localhost
+       make-localhost getroot README
 
 PPPCNF=        ppp.conf
 
@@ -97,6 +97,12 @@ upgrade_etc:
        rm -f ${DESTDIR}/usr/include/machine/ioctl_bt848.h
        ln -s "../dev/video/bktr/ioctl_bt848.h" ${DESTDIR}/usr/include/machine/ioctl_bt848.h
        ln -s "../dev/video/meteor/ioctl_meteor.h" ${DESTDIR}/usr/include/machine/ioctl_meteor.h
+.if exists(${DESTDIR}/usr/sbin/named-checkzone)
+       rm -f ${DESTDIR}/usr/libexec/named-xfer
+       rm -f ${DESTDIR}/usr/bin/dnsquery
+       rm -f ${DESTDIR}/usr/bin/dnskeygen
+       rm -f ${DESTDIR}/usr/sbin/ndc
+.endif
 .if exists(${DESTDIR}/usr/libexec/binutils212/elf/as)
        ldconfig -m ${DESTDIR}/usr/lib/gcc2
        rm -rf ${DESTDIR}/usr/libdata/ldscripts
@@ -248,6 +254,7 @@ distrib-dirs:
 .if !defined(NO_SENDMAIL)
        mtree -deU -f ${.CURDIR}/mtree/BSD.sendmail.dist -p ${DESTDIR}/
 .endif
+       cd ${DESTDIR}/etc/namedb; rm -f etc/namedb; ln -s ".." etc/namedb
        cd ${DESTDIR}/; rm -f ${DESTDIR}/sys; ln -s usr/src/sys sys
        cd ${DESTDIR}/usr/share/man/en.ISO8859-1; ln -sf ../man* .
        cd ${DESTDIR}/usr/share/man; \
index c6ba001..c7d0bfc 100644 (file)
@@ -14,7 +14,7 @@
 # All arguments must be in double or single quotes.
 #
 # $FreeBSD: src/etc/defaults/rc.conf,v 1.180 2003/06/26 09:50:50 smkelly Exp $
-# $DragonFly: src/etc/defaults/rc.conf,v 1.9 2004/04/15 01:02:45 cpressey Exp $
+# $DragonFly: src/etc/defaults/rc.conf,v 1.10 2004/05/27 18:15:40 dillon Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -131,20 +131,13 @@ inetd_program="/usr/sbin/inetd"   # path to inetd, if you want a different one.
 inetd_flags="-wW"              # Optional flags to inetd
 #
 # named.  It may be possible to run named in a sandbox, man security for
-# details.
+# details.  Note: when named_chrootdir is specified, RCNG automatically
+# adds '-u bind'.
 #
-named_rcng="NO"                        # XXX Temporary. Enable to use new rc
-                               #    functionality in support of named. See
-                               #    variables below.
 named_enable="NO"              # Run named, the DNS server (or NO).
 named_program="/usr/sbin/named"        # path to named, if you want a different one.
-named_flags="-u bind -g bind"  # Flags for named
 named_pidfile="/var/run/named.pid" # Pid file
-named_chrootdir=""             # Chroot directory (or "" not to auto-chroot it)
-named_chroot_autoupdate="YES"  # Automatically install/update chrooted
-                               # components of named. See /etc/rc.d/named.
-named_symlink_enable="YES"     # Symlink ${named_pidfile} and /var/run/ndc
-                               # to their chrooted counterparts.
+named_chrootdir="/etc/namedb"  # Chroot directory (or "" not to auto-chroot it)
 
 #
 # kerberos. Do not run the admin daemons on slave servers
index a1c2376..6a85d19 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/etc/mtree/BSD.root.dist,v 1.45.2.4 2002/06/10 15:33:27 obrien Exp $
-# $DragonFly: src/etc/mtree/BSD.root.dist,v 1.4 2003/08/05 07:45:39 asmodai Exp $
+# $DragonFly: src/etc/mtree/BSD.root.dist,v 1.5 2004/05/27 18:15:40 dillon Exp $
 #
 # Please see the file src/etc/mtree/README before making changes to this file.
 #
         mtree
         ..
         namedb
-# leave commented out until buildworld/installworld can
-# handle new user ids
-#             s               uname=bind gname=bind mode=0750
-#             ..
+           etc
+           ..
+           var
+               run     uname=bind gname=bind mode=0750
+               ..
+           ..
+           s           uname=bind gname=bind mode=0750
+           ..
         ..
         periodic
             daily
diff --git a/etc/namedb/README b/etc/namedb/README
new file mode 100644 (file)
index 0000000..5880393
--- /dev/null
@@ -0,0 +1,67 @@
+$DragonFly: src/etc/namedb/README,v 1.1 2004/05/27 18:15:40 dillon Exp $
+
+                       Running BIND-9's NAMED 
+
+    First, note that if all you want to do is list a set of name servers,
+    you can simply edit /etc/resolv.conf.  There is no need to run named.
+
+    An example /etc/resolv.conf file might be:
+
+    ---- cut here ----
+    domain your.domain.blah
+    search your.domain.blah someother.domain.blah
+    nameserver 192.168.5.5             <<<< IP addresses of nameservers
+    nameserver 192.168.5.10
+    ---- cut here ----
+
+    If you want to run named the 'named' and 'named.conf' manual pages,
+    and other manual pages, should be helpful.  
+
+    To get a basic named running you have to follow these steps:
+
+    * Generate an rndc.key file in /etc/namedb so 'rndc' works
+    * Generate localhost.rev and localhost-v6.rev
+    * Obtain the latest root.zone file or use named.root.
+    * Edit named.conf as appropriate for what you are trying to do.
+    * Start named with rndc and enable it in /etc/rc.conf
+
+    (1) Generating rndc.key
+
+       cd /etc/namedb; rndc-confgen -a; chown bind rndc.key
+
+       The default named.conf already contains the appropriate include
+       line and controls { } directive to allow rndc to access named
+       once a key has been generated.  This program should generate
+       a 'rndc.key' file.  Since we run named as user 'bind' by default,
+       the rndc.key file must be owned by the 'bind' user.
+
+    (2) Running './make-localhost' in /etc/namedb will generate
+       "localhost.rev" and "localhost-v6.rev".  The default named.conf
+       file references these files.  It is important for your named.conf
+       to be a master for localhost lookups to avoid certain types of
+       spoofing attacks.
+
+    (3) Obtain the latest root.zone file.  Running "./getroot" in 
+       /etc/namedb will download the latest root.zone file.  Edit
+       your named.conf to comment out the named.root hint directive and
+       uncomment the root.zone master directive.
+
+       Using a root.zone file is more reliable then using a hint file.
+       It is a good idea to run the getroot script once a week from a
+       cron job to keep your root.zone file up-to-date.
+
+    (4) Edit named.conf.  If you want to run named it must be for a reason,
+       so you need to edit named.conf to set up the desired environment.
+       named is typically used as a caching forwarding server, or a 
+       straight caching server.
+
+    (5) Start named.  named is typically started using the
+       /usr/sbin/named.restart script.  This script will pull in 
+       rc.conf to figure out the appropriate arguments and then run rndc
+       with the appropriate options to [re]start named.
+
+    Always test your running named to make sure it is operating as advertised.
+    Run 'rndc status' to double check rndc's access to the named process,
+    and use 'dig @localhost some.domain.name' to run a test lookup on a
+    domain using your name server to make sure it works properly.
+
diff --git a/etc/namedb/getroot b/etc/namedb/getroot
new file mode 100644 (file)
index 0000000..f2e7e22
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/tcsh -f
+#
+# If you are running named and using root.zone as a master, the root.zone
+# file should be updated periodicly from ftp.rs.internic.net.
+#
+# $DragonFly: src/etc/namedb/getroot,v 1.1 2004/05/27 18:15:40 dillon Exp $
+
+umask 027
+
+set hostname = 'ftp.rs.internic.net'
+set remfile = domain/root.zone.gz
+set locfile = root.zone.gz
+set path = ( /bin /usr/bin /sbin /usr/sbin )
+
+fetch ftp://${hostname}:/${remfile}
+if ( $status != 0) then
+    rm -f ${locfile}
+    echo "Download failed"
+else
+    gunzip < ${locfile} > root.zone.new
+    if ( $status == 0 ) then
+       rm -f ${locfile}
+       if ( -f root.zone ) then
+           mv -f root.zone root.zone.bak
+       endif
+       chmod 644 root.zone.new
+       mv -f root.zone.new root.zone
+       echo "Download succeeded, restarting named"
+       rndc reload
+       sleep 1
+       rndc status
+    else
+       echo "Download failed: gunzip returned an error"
+       rm -f ${locfile}
+    endif
+endif
+
index 6d1b886..ce64ec6 100644 (file)
@@ -1,5 +1,5 @@
 // $FreeBSD: src/etc/namedb/named.conf,v 1.6.2.7 2003/02/13 13:16:51 keramida Exp $
-// $DragonFly: src/etc/namedb/named.conf,v 1.2 2003/06/17 04:24:48 dillon Exp $
+// $DragonFly: src/etc/namedb/named.conf,v 1.3 2004/05/27 18:15:40 dillon Exp $
 //
 // Refer to the named.conf(5) and named(8) man pages for details.  If
 // you are ever going to set up a primary server, make sure you
@@ -7,7 +7,22 @@
 // simple mistakes, you can break connectivity for affected parties,
 // or cause huge amounts of useless Internet traffic.
 
+include "rndc.key";
+
+controls {
+    inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; };
+};
+
+acl access {
+       localhost;
+       localnets;
+};
+
 options {
+// When running chroot /etc/namedb/etc/namedb is a softlink to ".." just
+// so we can leave the directory directive set to something that works
+// in both chroot and normal modes.
+//
        directory "/etc/namedb";
 
 // In addition to the "forwarders" clause, you can force your name
@@ -19,35 +34,58 @@ options {
 // If you've got a DNS server around at your upstream provider, enter
 // its IP address here, and enable the line below.  This will make you
 // benefit from its cache, thus reduce overall DNS traffic in the Internet.
-/*
-       forwarders {
-               127.0.0.1;
-       };
-*/
-       /*
-        * If there is a firewall between you and nameservers you want
-        * to talk to, you might need to uncomment the query-source
-        * directive below.  Previous versions of BIND always asked
-        * questions using port 53, but BIND 8.1 uses an unprivileged
-        * port by default.
-        */
-       // query-source address * port 53;
-
-       /*
-        * If running in a sandbox, you may have to specify a different
-        * location for the dumpfile.
-        */
-       // dump-file "s/named_dump.db";
+//
+//     forwarders {
+//             127.0.0.1;
+//     };
+
+// If there is a firewall between you and nameservers you want
+// to talk to, you might need to uncomment the query-source
+// directive below.  Previous versions of BIND always asked
+// questions using port 53, but BIND 8.1 uses an unprivileged
+// port by default.
+//
+//     query-source address * port 53;
+
+// If running in a sandbox the base directory is typically not writable,
+// store the dump file in the secondaries directory.
+//
+       dump-file "s/named_dump.db";
 };
 
 // Note: the following will be supported in a future release.
-/*
-host { any; } {
-       topology {
-               127.0.0.0/8;
-       };
+//
+// host { any; } {
+//     topology {
+//             127.0.0.0/8;
+//     };
+// };
+
+// If you intend to run a recursive name server you need some hints to
+// find the root zone ".", or you need a root.zone file which contains
+// records for all top level domains (e.g. like '.com').
+//
+// A hint file is included and can be used for a quick-and-dirty 
+// configuration, but it is better to use the 'getroot' script and pull 
+// the real root.zone file.  
+//
+// If you use a root.zone file then comment out the hint directive below
+// and uncomment the root.zone directive.  Set up a cron job to run the
+// ./getroot script once a week to keep the root.zone file up-to-date.
+//
+// FOR SAFETY, THE "/etc/namedb" DIRECTORY and the "getroot" SCRIPT SHOULD
+// BE OWNED BY ROOT AND ONLY WRITABLE BY ROOT.
+
+zone "." {
+       type hint;
+       file "named.root";
 };
-*/
+
+// zone "." {
+//     type master;
+//     file "root.zone";
+// };
+
 
 // Setting up secondaries is way easier and a rough example for this
 // is provided below.
@@ -56,11 +94,6 @@ host { any; } {
 // first in your /etc/resolv.conf so this server will be queried.
 // Also, make sure to enable it in /etc/rc.conf.
 
-zone "." {
-       type hint;
-       file "named.root";
-};
-
 zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
@@ -104,22 +137,21 @@ zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
 //     mkdir /etc/namedb/s
 //     chown bind:bind /etc/namedb/s
 //     chmod 750 /etc/namedb/s
-
-/*
-zone "domain.com" {
-       type slave;
-       file "s/domain.com.bak";
-       masters {
-               192.168.1.1;
-       };
-};
-
-zone "0.168.192.in-addr.arpa" {
-       type slave;
-       file "s/0.168.192.in-addr.arpa.bak";
-       masters {
-               192.168.1.1;
-       };
-};
-*/
+//
+//
+// zone "domain.com" {
+//     type slave;
+//     file "s/domain.com.bak";
+//     masters {
+//             192.168.1.1;
+//     };
+// };
+//
+// zone "0.168.192.in-addr.arpa" {
+//     type slave;
+//     file "s/0.168.192.in-addr.arpa.bak";
+//     masters {
+//             192.168.1.1;
+//     };
+// };
 
index e568fa0..c15239f 100644 (file)
@@ -2,7 +2,7 @@
 #
 # $NetBSD: named,v 1.10 2002/03/22 04:33:59 thorpej Exp $
 # $FreeBSD: src/etc/rc.d/named,v 1.6 2003/01/12 04:53:54 mtm Exp $
-# $DragonFly: src/etc/rc.d/named,v 1.3 2004/03/26 13:32:27 drhodus Exp $
+# $DragonFly: src/etc/rc.d/named,v 1.4 2004/05/27 18:15:40 dillon Exp $
 #
 
 # PROVIDE: named
@@ -20,71 +20,18 @@ required_dirs="$named_chrootdir"    # if it is set, it must exist
 extra_commands="reload"
 
 nuser=bind
-ngroup=bind
-
-# If running in a chroot cage, ensure that the appropriate files
-# exist inside the cage, as well as helper symlinks into the cage
-# from outside.
-#
-# As this is called after the is_running and required_dir checks
-# are made in run_rc_command(), we can safely assume ${named_chrootdir}
-# exists and named isn't running at this point (unless forcestart
-# is used).
-#
-chroot_autoupdate()
-{
-       # If the named-xfer in the system is newer than the one in the
-       # chroot directory or if it (in the chrootdir) doesn't exist
-       # copy it over
-       #
-       if [ ! -x "${named_chrootdir}/usr/libexec/named-xfer" -o \
-           "${named_chrootdir}/usr/libexec/named-xfer" -ot \
-           /usr/libexec/named-xfer ]; then
-               rm -f "${named_chrootdir}/usr/libexec/named-xfer"
-               cp -p /usr/libexec/named-xfer "${named_chrootdir}/usr/libexec"
-       fi
-
-       # Copy /dev/null over, if neccessary. Preserve everything (perms,
-       # ownership, mod times).
-       #
-       if [ ! -c "${named_chrootdir}/dev/null" ]; then
-       rm -f "${named_chrootdir}/dev/null"
-               ( cd /dev ; /bin/pax -rw -pe null "${named_chrootdir}/dev" )
-       fi
-
-       # Copy local timezone information if it's not up-to-date.
-       #
-       if [ -f /etc/localtime ]; then
-               cmp -s /etc/localtime "${named_chrootdir}/etc/localtime" || \
-               cp -p /etc/localtime "${named_chrootdir}/etc/localtime"
-       fi
-}
-
-# Make symlinks to the correct pid and ndc socket files
-#
-make_symlinks()
-{
-       ln -fs "${named_chrootdir}${named_pidfile}" ${named_pidfile}
-       ln -fs "${named_chrootdir}/var/run/ndc" /var/run/ndc
-
-}
 
 named_precmd()
 {
-       ! checkyesno named_rcng && return 0
        # Is the user using a sandbox?
        if [ -z "$named_chrootdir" ]; then
-               rc_flags="-u $nuser -g $ngroup $rc_flags"
+               rc_flags="-u $nuser $rc_flags"
                return 0
        fi
-       # Do the following checks only if the user wants them done
-       checkyesno named_chroot_autoupdate && chroot_autoupdate
-        checkyesno named_symlink_enable && make_symlinks
 
        #       Change run_rc_commands()'s internal copy of $named_flags
        #
-       ! checkyesno named_rcng && return
-       rc_flags="-u $nuser -g $ngroup -t ${named_chrootdir} $rc_flags"
+       rc_flags="-u $nuser -t ${named_chrootdir} $rc_flags"
 }
 
 load_rc_config $name
index af2474b..e95bba1 100644 (file)
@@ -1,93 +1,67 @@
 # $FreeBSD: src/lib/libbind/Makefile,v 1.5.2.2 2002/07/19 18:46:25 ru Exp $
-# $DragonFly: src/lib/libbind/Makefile,v 1.4 2004/02/03 05:12:51 dillon Exp $
+# $DragonFly: src/lib/libbind/Makefile,v 1.5 2004/05/27 18:15:40 dillon Exp $
 
-BIND_DIR=${.CURDIR}/../../contrib/bind
+BIND_DIR=${.CURDIR}/../../contrib/bind-9.2.4rc4
 
-LIB=   bind
-WANT_IRS=      for now
-
-# Required to avoid a setpwent() prototype conflict.  This is normally
-# set in the freebsd port subdir header files in contrib/bind, but it's
-# conditionalized on __FreeBSD__.
+# note: lib/bind/include/isc/list.h must come before lib/isc/include/isc/list.h
 #
-CFLAGS += -DSETPWENT_VOID
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named \
+       -I${BIND_DIR}/lib/bind/include
+
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+.include "${BIND_DIR}/lib/bind/api"
+
+LIB= bind
+WANT_IRS= for now
 
 # This may or may not work yet.  It's not compatible with the core
 # system components since it overrides the master.passwd handling etc.
 .if defined(WANT_IRS)
-.PATH: ${BIND_DIR}/lib/irs
-SRCS+= dns.c dns_gr.c dns_ho.c dns_nw.c dns_pr.c dns_pw.c \
-       dns_sv.c gai_strerror.c gen.c gen_gr.c gen_ho.c \
-       gen_ng.c gen_nw.c gen_pr.c gen_pw.c gen_sv.c \
-       getaddrinfo.c getgrent.c getgrent_r.c gethostent.c \
-       gethostent_r.c getnameinfo.c getnetent.c getnetent_r.c \
-       getnetgrent.c getnetgrent_r.c getprotoent.c \
-       getprotoent_r.c getpwent.c getpwent_r.c getservent.c \
-       getservent_r.c hesiod.c irs_data.c \
-       irp.c irp_gr.c irp_ho.c irp_ng.c irp_nw.c \
-       irp_pr.c irp_pw.c irp_sv.c irpmarshall.c \
-       lcl.c lcl_gr.c \
-       lcl_ho.c lcl_ng.c lcl_nw.c lcl_pr.c lcl_pw.c \
-       lcl_sv.c nis.c nis_gr.c nis_ho.c nis_ng.c nis_nw.c \
-       nis_pr.c nis_pw.c nis_sv.c nul_ng.c util.c
+.PATH: ${BIND_DIR}/lib/bind/irs
+SRCS+= gethostent_r.c getnetgrent_r.c getprotoent_r.c getservent_r.c \
+       dns_gr.c irp_gr.c lcl_gr.c gen_gr.c getgrent.c getpwent_r.c \
+       nis_pw.c irp_pw.c lcl_pw.c dns_pw.c gen_pw.c getpwent.c \
+       nis_ho.c nis_ng.c nis_nw.c nis_pr.c nis_sv.c \
+       dns.c dns_ho.c dns_nw.c dns_pr.c \
+       dns_sv.c gai_strerror.c gen.c gen_ho.c \
+       gen_ng.c gen_nw.c gen_pr.c gen_sv.c \
+       getaddrinfo.c gethostent.c  getnameinfo.c \
+       getnetent.c getnetent_r.c getnetgrent.c \
+       getprotoent.c getservent.c hesiod.c \
+       irp.c irp_ho.c irp_ng.c irp_nw.c \
+       irp_pr.c irp_sv.c irpmarshall.c irs_data.c \
+       lcl.c lcl_ho.c lcl_ng.c lcl_nw.c \
+       lcl_pr.c lcl_sv.c nis.c nul_ng.c util.c \
+       getgrent_r.c \
 
-.PATH: ${BIND_DIR}/lib/nameser
-SRCS+= ns_parse.c ns_print.c ns_netint.c ns_ttl.c ns_name.c \
-       ns_sign.c ns_verify.c ns_date.c ns_samedomain.c
+.PATH: ${BIND_DIR}/lib/bind/nameser
+SRCS+= ns_date.c ns_name.c ns_netint.c \
+       ns_parse.c ns_print.c  ns_samedomain.c \
+       ns_sign.c ns_ttl.c ns_verify.c
 
-.PATH: ${BIND_DIR}/lib/resolv
-SRCS+= herror.c res_debug.c res_data.c res_comp.c res_init.c \
-       res_mkquery.c res_query.c res_send.c res_sendsigned.c \
-       res_mkupdate.c res_update.c res_findzonecut.c
-.endif
+.PATH: ${BIND_DIR}/lib/bind/resolv
+SRCS+= herror.c res_comp.c res_data.c \
+       res_debug.c res_findzonecut.c res_init.c \
+       res_mkquery.c res_mkupdate.c res_query.c \
+       res_send.c res_sendsigned.c res_update.c
 
-.if defined(WANT_CYLINK) && exists(${BIND_DIR}/lib/cylink)
-.PATH: ${BIND_DIR}/lib/cylink
-CFLAGS+=-DCYLINK_DSS -I${BIND_DIR}/lib/cylink
-SRCS+= bn.c bn00.c lbn00.c lbnmem.c legal.c \
-       bits.c dss.c math.c ctk_prime.c rand.c sha.c swap.c
 .endif
 
-.if defined(WANT_DNSSAFE) && exists(${BIND_DIR}/lib/dnssafe)
-.PATH: ${BIND_DIR}/lib/dnssafe
-CFLAGS+=-DDNSSAFE -I${BIND_DIR}/lib/dnssafe
-SRCS+= bgclrbit.c bgmdmpyx.c bgmdsqx.c bgmodexp.c \
-       bgpegcd.c big2exp.c bigabs.c bigacc.c bigarith.c \
-       bigcmp.c bigconst.c biginv.c biglen.c bigmodx.c \
-       bigmpy.c bigpdiv.c bigpmpy.c bigpmpyh.c bigpmpyl.c \
-       bigpsq.c bigqrx.c bigsmod.c bigtocan.c bigu.c \
-       bigunexp.c cantobig.c crt2.c \
-       digrand.c intbits.c md5.c md5rand.c prime.c \
-       rsa.c rsakeygn.c seccbcd.c seccbce.c surrendr.c \
-       ahchdig.c ahchencr.c ahchgen.c ahchrand.c ahdigest.c \
-       ahencryp.c ahgen.c ahrandom.c ahrsaenc.c ahrsaepr.c \
-       ahrsaepu.c aichdig.c aichenc8.c aichencn.c aichencr.c \
-       aichgen.c aichrand.c aimd5.c \
-       aimd5ran.c ainfotyp.c ainull.c airsaepr.c airsaepu.c \
-       airsakgn.c airsaprv.c airsapub.c algchoic.c algobj.c \
-       amcrte.c ammd5.c ammd5r.c \
-       amrkg.c amrsae.c balg.c binfocsh.c bkey.c bmempool.c \
-       digest.c encrypt.c generate.c intitem.c \
-       keyobj.c ki8byte.c kiitem.c kinfotyp.c \
-       kifulprv.c kipkcrpr.c kirsacrt.c kirsapub.c random.c
-.endif
-
-.PATH: ${BIND_DIR}/lib/dst
+.PATH: ${BIND_DIR}/lib/bind/dst
 CFLAGS+=-DHMAC_MD5 -DUSE_MD5
-SRCS+= dst_api.c prandom.c rsaref_link.c support.c bsafe_link.c \
-       cylink_link.c hmac_link.c md5_dgst.c eay_dss_link.c
+SRCS+= dst_api.c hmac_link.c md5_dgst.c support.c
+
+.PATH: ${BIND_DIR}/lib/bind/isc
+SRCS+= assertions.c base64.c bitncmp.c ctl_clnt.c \
+       ctl_p.c ctl_srvr.c ev_connects.c ev_files.c \
+       ev_streams.c ev_timers.c ev_waits.c \
+       eventlib.c heap.c hex.c logging.c \
+       memcluster.c movefile.c tree.c
 
-.PATH: ${BIND_DIR}/lib/isc
-SRCS+= tree.c bitncmp.c assertions.c \
-       memcluster.c logging.c heap.c \
-       ctl_p.c ctl_srvr.c ctl_clnt.c \
-       eventlib.c ev_connects.c ev_files.c \
-       ev_timers.c ev_streams.c ev_waits.c
-#      base64.c
+.PATH: ${BIND_DIR}/lib/bind/bsd
+SRCS+= gettimeofday.c
 
 INTERNALLIB=           true
 
 .include <bsd.lib.mk>
 
-# XXX contrib/bind/include/* must not override any real system includes
-CFLAGS:= -I${BIND_DIR}/port/freebsd/include -I${BIND_DIR}/include ${CFLAGS}
diff --git a/lib/libbind/port_after.h b/lib/libbind/port_after.h
new file mode 100644 (file)
index 0000000..32bcaca
--- /dev/null
@@ -0,0 +1,395 @@
+/* $DragonFly: src/lib/libbind/port_after.h,v 1.1 2004/05/27 18:15:40 dillon Exp $ */
+#ifndef port_after_h
+#define port_after_h
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/param.h>
+#if (!defined(BSD)) || (BSD < 199306)
+#include <sys/bitypes.h>
+#endif
+
+#define NEED_PSELECT
+#define HAVE_SA_LEN 1
+#define HAVE_MINIMUM_IFREQ 1
+#undef NEED_DAEMON
+#undef NEED_STRSEP
+#undef NEED_STRERROR
+#define HAS_INET6_STRUCTS 1
+#define HAVE_SIN6_SCOPE_ID 1
+#undef NEED_IN6ADDR_ANY
+#undef HAS_IN_ADDR6
+#define HAVE_SOCKADDR_STORAGE 1
+#undef NEED_GETTIMEOFDAY
+#undef HAVE_STRNDUP
+#undef USE_FIONBIO_IOCTL
+#undef USE_SYSERROR_LIST
+#undef INNETGR_ARGS
+#undef SETNETGRENT_ARGS
+
+/* XXX sunos and cygwin needs O_NDELAY */
+#define PORT_NONBLOCK O_NONBLOCK
+
+/*
+ * We need to know the IPv6 address family number even on IPv4-only systems.
+ * Note that this is NOT a protocol constant, and that if the system has its
+ * own AF_INET6, different from ours below, all of BIND's libraries and
+ * executables will need to be recompiled after the system <sys/socket.h>
+ * has had this type added.  The type number below is correct on most BSD-
+ * derived systems for which AF_INET6 is defined.
+ */
+#ifndef AF_INET6
+#define AF_INET6        24
+#endif
+
+#ifndef PF_INET6
+#define PF_INET6        AF_INET6
+#endif
+
+#ifdef HAS_IN_ADDR6
+/* Map to pre-RFC structure. */
+#define in6_addr in_addr6
+#endif
+
+#ifndef HAS_INET6_STRUCTS
+/* Replace with structure from later rev of O/S if known. */
+struct in6_addr {
+        u_int8_t        s6_addr[16];
+};
+
+#define IN6ADDR_ANY_INIT \
+       {{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}
+
+#define IN6ADDR_LOOPBACK_INIT \
+       {{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}
+
+/* Replace with structure from later rev of O/S if known. */
+struct sockaddr_in6 {
+#ifdef  HAVE_SA_LEN
+        u_int8_t        sin6_len;       /* length of this struct */
+        u_int8_t        sin6_family;    /* AF_INET6 */
+#else
+        u_int16_t       sin6_family;    /* AF_INET6 */
+#endif
+        u_int16_t       sin6_port;      /* transport layer port # */
+        u_int32_t       sin6_flowinfo;  /* IPv6 flow information */
+        struct in6_addr sin6_addr;      /* IPv6 address */
+        u_int32_t       sin6_scope_id;  /* set of interfaces for a scope */
+};
+#endif  /* HAS_INET6_STRUCTS */
+
+#ifdef BROKEN_IN6ADDR_INIT_MACROS
+#undef IN6ADDR_ANY_INIT
+#undef IN6ADDR_LOOPBACK_INIT
+#endif
+
+#ifndef IN6ADDR_ANY_INIT
+#ifdef s6_addr
+#define IN6ADDR_ANY_INIT \
+       {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
+#else
+#define IN6ADDR_ANY_INIT \
+       {{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}
+#endif
+
+#endif
+#ifndef IN6ADDR_LOOPBACK_INIT
+#ifdef s6_addr
+#define IN6ADDR_LOOPBACK_INIT \
+       {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#else
+#define IN6ADDR_LOOPBACK_INIT \
+       {{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}
+#endif
+#endif
+
+#ifndef HAVE_SOCKADDR_STORAGE
+#define __SS_MAXSIZE 128 
+#define __SS_ALLIGSIZE (sizeof (long)) 
+
+struct sockaddr_storage {
+#ifdef  HAVE_SA_LEN
+        u_int8_t        ss_len;       /* address length */
+        u_int8_t        ss_family;    /* address family */
+        char            __ss_pad1[__SS_ALLIGSIZE - 2 * sizeof(u_int8_t)];
+        long            __ss_align;
+        char            __ss_pad2[__SS_MAXSIZE - 2 * __SS_ALLIGSIZE];
+#else   
+        u_int16_t       ss_family;    /* address family */
+        char            __ss_pad1[__SS_ALLIGSIZE - sizeof(u_int16_t)];
+        long            __ss_align;
+        char            __ss_pad2[__SS_MAXSIZE - 2 * __SS_ALLIGSIZE];
+#endif
+};
+#endif
+
+
+#if !defined(HAS_INET6_STRUCTS) || defined(NEED_IN6ADDR_ANY)
+#define in6addr_any isc_in6addr_any
+extern const struct in6_addr in6addr_any;
+#endif
+
+/*
+ * IN6_ARE_ADDR_EQUAL, IN6_IS_ADDR_UNSPECIFIED, IN6_IS_ADDR_V4COMPAT and
+ * IN6_IS_ADDR_V4MAPPED are broken in glibc 2.1.
+ */
+#ifdef __GLIBC__
+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
+#undef IN6_ARE_ADDR_EQUAL
+#undef IN6_IS_ADDR_UNSPECIFIED
+#undef IN6_IS_ADDR_V4COMPAT
+#undef IN6_IS_ADDR_V4MAPPED
+#endif
+#endif
+
+#ifndef IN6_ARE_ADDR_EQUAL
+#define IN6_ARE_ADDR_EQUAL(a,b) \
+   (memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)
+#endif
+
+#ifndef IN6_IS_ADDR_UNSPECIFIED
+#define IN6_IS_ADDR_UNSPECIFIED(a)      \
+       IN6_ARE_ADDR_EQUAL(a, &in6addr_any)
+#endif
+
+#ifndef IN6_IS_ADDR_LOOPBACK
+extern const struct in6_addr isc_in6addr_loopback;
+#define IN6_IS_ADDR_LOOPBACK(a) \
+       IN6_ARE_ADDR_EQUAL(a, &isc_in6addr_loopback)
+#endif
+
+#ifndef IN6_IS_ADDR_V4MAPPED
+#define IN6_IS_ADDR_V4MAPPED(a)        \
+       ((a)->s6_addr[0] == 0x00 && (a)->s6_addr[1] == 0x00 && \
+       (a)->s6_addr[2] == 0x00 && (a)->s6_addr[3] == 0x00 && \
+       (a)->s6_addr[4] == 0x00 && (a)->s6_addr[5] == 0x00 && \
+       (a)->s6_addr[6] == 0x00 && (a)->s6_addr[9] == 0x00 && \
+       (a)->s6_addr[8] == 0x00 && (a)->s6_addr[9] == 0x00 && \
+       (a)->s6_addr[10] == 0xff && (a)->s6_addr[11] == 0xff)
+#endif
+
+#ifndef IN6_IS_ADDR_SITELOCAL
+#define IN6_IS_ADDR_SITELOCAL(a)        \
+       (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
+#endif
+
+#ifndef IN6_IS_ADDR_LINKLOCAL
+#define IN6_IS_ADDR_LINKLOCAL(a)        \
+       (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
+#endif
+
+#ifndef IN6_IS_ADDR_MULTICAST
+#define IN6_IS_ADDR_MULTICAST(a)        ((a)->s6_addr[0] == 0xff)
+#endif
+
+#ifndef __IPV6_ADDR_MC_SCOPE
+#define __IPV6_ADDR_MC_SCOPE(a)         ((a)->s6_addr[1] & 0x0f)
+#endif
+
+#ifndef __IPV6_ADDR_SCOPE_SITELOCAL
+#define __IPV6_ADDR_SCOPE_SITELOCAL 0x05
+#endif
+#ifndef __IPV6_ADDR_SCOPE_ORGLOCAL
+#define __IPV6_ADDR_SCOPE_ORGLOCAL  0x08
+#endif
+
+#ifndef IN6_IS_ADDR_MC_SITELOCAL
+#define IN6_IS_ADDR_MC_SITELOCAL(a)     \
+       (IN6_IS_ADDR_MULTICAST(a) &&    \
+        (__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL))
+#endif
+
+#ifndef IN6_IS_ADDR_MC_ORGLOCAL
+#define IN6_IS_ADDR_MC_ORGLOCAL(a)      \
+       (IN6_IS_ADDR_MULTICAST(a) &&    \
+        (__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL))
+#endif
+
+#ifndef INADDR_NONE
+#define INADDR_NONE 0xffffffff
+#endif
+
+#ifndef MAXHOSTNAMELEN
+#define MAXHOSTNAMELEN 256
+#endif
+
+#ifndef INET6_ADDRSTRLEN
+/* sizeof("aaaa:bbbb:cccc:dddd:eeee:ffff:123.123.123.123") */
+#define INET6_ADDRSTRLEN 46
+#endif
+
+#ifndef MIN
+#define MIN(x,y) (((x) <= (y)) ? (x) : (y))
+#endif
+
+#ifndef MAX
+#define MAX(x,y) (((x) >= (y)) ? (x) : (y))
+#endif
+
+#ifdef NEED_DAEMON
+int daemon(int nochdir, int noclose);
+#endif
+  
+#ifdef NEED_STRSEP
+char * strsep(char **stringp, const char *delim);
+#endif
+
+#ifndef ALIGN
+#define ALIGN(p) (((unsigned int)(p) + (sizeof(int) - 1)) & ~(sizeof(int) - 1))
+#endif
+
+#ifdef NEED_SETGROUPENT
+int setgroupent(int stayopen);
+#endif
+
+#ifdef NEED_GETGROUPLIST
+int getgrouplist(GETGROUPLIST_ARGS);
+#endif
+
+#ifdef POSIX_GETGRNAM_R
+int
+__posix_getgrnam_r(const char *, struct group *, char *, int, struct group **);
+#endif
+
+#ifdef NEED_GETGRNAM_R
+int
+getgrnam_r(const char *,  struct group *, char *, size_t, struct group **);
+#endif
+
+#ifdef POSIX_GETGRGID_R
+int
+__posix_getgrgid_r(gid_t, struct group *, char *, int, struct group **) ;
+#endif
+
+#ifdef NEED_GETGRGID_R
+int
+getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
+#endif
+
+#ifdef NEED_GETGRENT_R
+GROUP_R_RETURN getgrent_r(struct group *gptr, GROUP_R_ARGS);
+#endif
+
+#ifdef NEED_SETGRENT_R
+GROUP_R_SET_RETURN setgrent_r(GROUP_R_ENT_ARGS);
+#endif
+
+#ifdef NEED_ENDGRENT_R
+GROUP_R_END_RETURN endgrent_r(GROUP_R_ENT_ARGS);
+#endif
+
+#ifdef NEED_INNETGR_R
+NGR_R_RETURN
+innetgr_r(const char *, const char *, const char *, const char *);
+#endif
+
+#ifdef NEED_SETNETGRENT_R
+#ifdef NGR_R_ENT_ARGS
+NGR_R_SET_RETURN setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS);
+#else
+NGR_R_SET_RETURN setnetgrent_r(const char *netgroup);
+#endif
+#endif
+
+#ifdef NEED_ENDNETGRENT_R
+#ifdef NGR_R_ENT_ARGS
+NGR_R_END_RETURN endnetgrent_r(NGR_R_ENT_ARGS);
+#else
+NGR_R_END_RETURN endnetgrent_r(void);
+#endif
+#endif
+
+#ifdef POSIX_GETPWNAM_R
+int
+__posix_getpwnam_r(const char *login,  struct passwd *pwptr,
+                char *buf, size_t buflen, struct passwd **result);
+#endif
+
+#ifdef NEED_GETPWNAM_R
+int
+getpwnam_r(const char *login,  struct passwd *pwptr,
+                char *buf, size_t buflen, struct passwd **result);
+#endif
+
+#ifdef POSIX_GETPWUID_R
+int
+__posix_getpwuid_r(uid_t uid, struct passwd *pwptr,
+                char *buf, int buflen, struct passwd **result);
+#endif
+
+#ifdef NEED_GETPWUID_R
+int
+getpwuid_r(uid_t uid, struct passwd *pwptr,
+                char *buf, size_t buflen, struct passwd **result);
+#endif
+
+#ifdef NEED_SETPWENT_R
+#ifdef PASS_R_ENT_ARGS
+PASS_R_SET_RETURN setpwent_r(PASS_R_ENT_ARGS);
+#else
+PASS_R_SET_RETURN setpwent_r(void);
+#endif
+
+#endif
+
+#ifdef NEED_SETPASSENT_R
+#ifdef PASS_R_ENT_ARGS
+PASS_R_SET_RETURN setpassent_r(int stayopen, PASS_R_ENT_ARGS);
+#else
+PASS_R_SET_RETURN setpassent_r(int stayopen);
+#endif
+#endif
+
+#ifdef NEED_GETPWENT_R
+PASS_R_RETURN getpwent_r(struct passwd *pwptr, PASS_R_ARGS);
+#endif
+
+#ifdef NEED_ENDPWENT_R
+void endpwent_r(void);
+#endif
+
+#ifdef NEED_SETPASSENT
+int setpassent(int stayopen);
+#endif
+
+#define gettimeofday isc__gettimeofday
+#ifdef NEED_GETTIMEOFDAY
+int isc__gettimeofday(struct timeval *tvp, struct _TIMEZONE *tzp);
+#else
+int isc__gettimeofday(struct timeval *tp, struct timezone *tzp);
+#endif
+
+int getnetgrent(char **machinep, char **userp, char **domainp);
+
+int getnetgrent_r(char **machinep, char **userp, char **domainp, NGR_R_ARGS);
+
+#ifdef SETNETGRENT_ARGS
+void setnetgrent(SETNETGRENT_ARGS);
+#else
+void setnetgrent(const char *netgroup);
+#endif
+
+void endnetgrent(void);
+
+#ifdef INNETGR_ARGS
+int innetgr(INNETGR_ARGS);
+#else
+int innetgr(const char *netgroup, const char *machine,
+           const char *user, const char *domain);
+#endif
+
+#ifdef NGR_R_ENT_ARGS
+NGR_R_SET_RETURN
+setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS);
+#else
+NGR_R_SET_RETURN
+setnetgrent_r(const char *netgroup);
+#endif
+#endif
diff --git a/lib/libbind/port_before.h b/lib/libbind/port_before.h
new file mode 100644 (file)
index 0000000..b0ba3ab
--- /dev/null
@@ -0,0 +1,139 @@
+/* $DragonFly: src/lib/libbind/port_before.h,v 1.1 2004/05/27 18:15:40 dillon Exp $ */
+#ifndef port_before_h
+#define port_before_h
+#include <config.h>
+
+struct group;           /* silence warning */
+struct passwd;          /* silence warning */
+struct timeval;         /* silence warning */
+struct timezone;        /* silence warning */
+
+#ifdef HAVE_SYS_TIMERS_H
+#include <sys/timers.h>
+#endif
+#include <limits.h>
+
+
+#undef WANT_IRS_GR
+#undef WANT_IRS_NIS
+#undef WANT_IRS_PW
+
+#undef BSD_COMP
+
+#undef DO_PTHREADS
+#define GETGROUPLIST_ARGS const char *name, int basegid, int *groups, int *ngroups
+#define GETNETBYADDR_ADDR_T long
+#define SETPWENT_VOID 1
+#undef SETGRENT_VOID
+
+#define NET_R_ARGS char *buf, int buflen
+#define NET_R_BAD NULL
+#define NET_R_COPY buf, buflen
+#define NET_R_COPY_ARGS NET_R_ARGS
+#define NET_R_END_RESULT(x) /*empty*/
+#define NET_R_END_RETURN void
+#undef NET_R_ENT_ARGS /*empty*/
+#define NET_R_OK nptr
+#define NET_R_RETURN struct netent *
+#undef NET_R_SET_RESULT /*empty*/
+#undef NET_R_SETANSWER
+#define NET_R_SET_RETURN void
+#undef NETENT_DATA
+
+#define GROUP_R_RETURN struct group *
+#define GROUP_R_SET_RETURN void
+#undef GROUP_R_SET_RESULT /*empty*/
+#define GROUP_R_END_RETURN void
+#define GROUP_R_END_RESULT(x) /*empty*/
+#define GROUP_R_ARGS char *buf, int buflen
+#define GROUP_R_ENT_ARGS void
+#define GROUP_R_OK gptr
+#define GROUP_R_BAD NULL
+
+#define HOST_R_ARGS char *buf, int buflen, int *h_errnop
+#define HOST_R_BAD NULL
+#define HOST_R_COPY buf, buflen
+#define HOST_R_COPY_ARGS char *buf, int buflen
+#define HOST_R_END_RESULT(x) /*empty*/
+#define HOST_R_END_RETURN void
+#undef HOST_R_ENT_ARGS /*empty*/
+#define HOST_R_ERRNO *h_errnop = h_errno
+#define HOST_R_OK hptr
+#define HOST_R_RETURN struct hostent *
+#undef HOST_R_SETANSWER
+#undef HOST_R_SET_RESULT
+#define HOST_R_SET_RETURN void
+#undef HOSTENT_DATA
+
+#define NGR_R_ARGS char *buf, int buflen
+#define NGR_R_BAD (0)
+#define NGR_R_COPY buf, buflen
+#define NGR_R_COPY_ARGS NGR_R_ARGS
+#define NGR_R_END_RESULT(x)  /*empty*/
+#define NGR_R_END_RETURN void
+#undef NGR_R_ENT_ARGS /*empty*/
+#define NGR_R_OK 1
+#define NGR_R_RETURN int
+#undef NGR_R_SET_RESULT /*empty*/
+#define NGR_R_SET_RETURN void
+
+
+#define PROTO_R_ARGS char *buf, int buflen
+#define PROTO_R_BAD NULL
+#define PROTO_R_COPY buf, buflen
+#define PROTO_R_COPY_ARGS PROTO_R_ARGS
+#define PROTO_R_END_RESULT(x) /*empty*/
+#define PROTO_R_END_RETURN void
+#undef PROTO_R_ENT_ARGS /*empty*/
+#define PROTO_R_OK pptr
+#undef PROTO_R_SETANSWER
+#define PROTO_R_RETURN struct protoent *
+#undef PROTO_R_SET_RESULT
+#define PROTO_R_SET_RETURN void
+
+#define PASS_R_ARGS char *buf, int buflen
+#define PASS_R_BAD NULL
+#define PASS_R_COPY buf, buflen
+#define PASS_R_COPY_ARGS PASS_R_ARGS
+#define PASS_R_END_RESULT(x) /*empty*/
+#define PASS_R_END_RETURN void
+#undef PASS_R_ENT_ARGS
+#define PASS_R_OK pwptr
+#define PASS_R_RETURN struct passwd *
+#undef PASS_R_SET_RESULT /*empty*/
+#define PASS_R_SET_RETURN void
+
+#define SERV_R_ARGS char *buf, int buflen
+#define SERV_R_BAD NULL
+#define SERV_R_COPY buf, buflen
+#define SERV_R_COPY_ARGS SERV_R_ARGS
+#define SERV_R_END_RESULT(x) /*empty*/
+#define SERV_R_END_RETURN void 
+#undef SERV_R_ENT_ARGS /*empty*/
+#define SERV_R_OK sptr
+#undef SERV_R_SETANSWER
+#define SERV_R_RETURN struct servent *
+#undef SERV_R_SET_RESULT
+#define SERV_R_SET_RETURN void
+
+
+#define DE_CONST(konst, var) \
+        do { \
+                union { const void *k; void *v; } _u; \
+                _u.k = konst; \
+                var = _u.v; \
+        } while (0)
+
+#define UNUSED(x) (x) = (x)
+
+#undef NEED_SOLARIS_BITTYPES
+#define ISC_SOCKLEN_T socklen_t
+
+#ifdef __GNUC__
+#define ISC_FORMAT_PRINTF(fmt, args) \
+       __attribute__((__format__(__printf__, fmt, args)))
+#else
+#define ISC_FORMAT_PRINTF(fmt, args)
+#endif
+
+#endif
index 696305b..1d61d48 100644 (file)
 # $FreeBSD: src/lib/libisc/Makefile,v 1.1.2.6 2002/07/22 14:21:49 ru Exp $
-# $DragonFly: src/lib/libisc/Makefile,v 1.2 2003/06/17 04:26:49 dillon Exp $
+# $DragonFly: src/lib/libisc/Makefile,v 1.3 2004/05/27 18:15:41 dillon Exp $
 
-BIND_DIR=      ${.CURDIR}/../../contrib/bind
+BIND_DIR=      ${.CURDIR}/../../contrib/bind-9.2.4rc4
+
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+.include "${BIND_DIR}/lib/isc/api"
 
 LIB=           isc
 SHLIB_MAJOR=   1
 SHLIB_MINOR=   0
 
-.PATH:         ${BIND_DIR}/lib/isc
-SRCS=          assertions.c ev_connects.c ev_files.c ev_streams.c \
-               ev_timers.c ev_waits.c eventlib.c heap.c hex.c tree.c \
-               logging.c memcluster.c bitncmp.c ctl_clnt.c ctl_p.c \
-               ctl_srvr.c movefile.c
+.PATH:         ${BIND_DIR}/lib
+SRCS+=         isc/nls/msgcat.c
+
+SRCS+=         isc/unix/app.c isc/unix/dir.c isc/unix/entropy.c \
+               isc/unix/errno2result.c isc/unix/file.c isc/unix/fsaccess.c \
+               isc/unix/interfaceiter.c isc/unix/keyboard.c isc/unix/net.c \
+               isc/unix/os.c isc/unix/resource.c isc/unix/socket.c \
+               isc/unix/stdio.c isc/unix/stdtime.c isc/unix/strerror.c \
+               isc/unix/syslog.c isc/unix/time.c
+
+SRCS+=         isc/assertions.c isc/base64.c isc/bitstring.c isc/buffer.c \
+               isc/bufferlist.c isc/commandline.c isc/error.c isc/event.c \
+               isc/hash.c isc/heap.c isc/hex.c isc/hmacmd5.c \
+               isc/inet_pton.c \
+               isc/lex.c isc/lfsr.c isc/lib.c isc/log.c \
+               isc/md5.c isc/mem.c isc/mutexblock.c isc/netaddr.c \
+               isc/ondestroy.c isc/quota.c isc/random.c \
+               isc/ratelimiter.c isc/result.c isc/rwlock.c \
+               isc/serial.c isc/sha1.c isc/sockaddr.c isc/string.c \
+               isc/symtab.c isc/task.c isc/taskpool.c isc/timer.c \
+               isc/version.c
+
+SRCS+=         isccfg/check.c isccfg/log.c isccfg/parser.c
+
+SRCS+=         dns/a6.c dns/acl.c dns/adb.c dns/byaddr.c \
+               dns/cache.c dns/callbacks.c dns/compress.c \
+               dns/db.c dns/dbiterator.c dns/dbtable.c dns/diff.c \
+               dns/dispatch.c dns/dnssec.c dns/forward.c dns/journal.c \
+               dns/keytable.c dns/lib.c dns/log.c dns/lookup.c \
+               dns/master.c dns/masterdump.c dns/message.c \
+               dns/name.c dns/ncache.c dns/nxt.c dns/peer.c \
+               dns/rbt.c dns/rbtdb.c dns/rbtdb64.c dns/rdata.c \
+               dns/rdatalist.c dns/rdataset.c dns/rdatasetiter.c \
+               dns/rdataslab.c dns/request.c dns/resolver.c dns/result.c \
+               dns/rootns.c dns/sdb.c dns/soa.c dns/ssu.c \
+               dns/stats.c dns/tcpmsg.c dns/time.c dns/timer.c dns/tkey.c \
+               dns/tsig.c dns/ttl.c dns/validator.c \
+               dns/version.c dns/view.c dns/xfrin.c dns/zone.c \
+               dns/zonekey.c dns/zt.c
+
+SRCS+=         dns/sec/dst/dst_api.c dns/sec/dst/dst_lib.c \
+               dns/sec/dst/dst_parse.c dns/sec/dst/dst_result.c \
+               dns/sec/dst/gssapi_link.c dns/sec/dst/gssapictx.c \
+               dns/sec/dst/hmac_link.c dns/sec/dst/key.c \
+               dns/sec/dst/openssl_link.c dns/sec/dst/openssldh_link.c \
+               dns/sec/dst/openssldsa_link.c dns/sec/dst/opensslrsa_link.c
+
+SRCS+=         isccc/alist.c isccc/base64.c isccc/cc.c isccc/ccmsg.c \
+               isccc/lib.c isccc/result.c isccc/sexpr.c isccc/symtab.c \
+               isccc/version.c
+
+SRCS+=         lwres/context.c lwres/gai_strerror.c lwres/getaddrinfo.c \
+               lwres/gethost.c lwres/getipnode.c lwres/getnameinfo.c \
+               lwres/getrrset.c lwres/herror.c lwres/lwbuffer.c \
+               lwres/lwconfig.c lwres/lwpacket.c lwres/lwresutil.c \
+               lwres/lwres_gabn.c lwres/lwres_gnba.c lwres/lwres_grbn.c \
+               lwres/lwres_noop.c lwres/lwinetaton.c lwres/lwinetpton.c \
+               lwres/lwinetntop.c
 
 # contrib/bind/include/* must not override any real system includes
-CFLAGS+=       -I${BIND_DIR}/port/freebsd/include -I${BIND_DIR}/include
+CFLAGS+=       -I${.CURDIR}/../../usr.sbin/named
+
 CFLAGS+=       -Wall -Wmissing-prototypes
 
-INCS=          ${BIND_DIR}/include/isc/assertions.h \
-               ${BIND_DIR}/include/isc/ctl.h \
-               ${BIND_DIR}/include/isc/dst.h \
-               ${BIND_DIR}/include/isc/eventlib.h \
-               ${BIND_DIR}/include/isc/heap.h \
-               ${BIND_DIR}/include/isc/irpmarshall.h \
-               ${BIND_DIR}/include/isc/list.h \
-               ${BIND_DIR}/include/isc/logging.h \
-               ${BIND_DIR}/include/isc/memcluster.h \
-               ${BIND_DIR}/include/isc/misc.h \
-               ${BIND_DIR}/include/isc/tree.h
+CFLAGS+=       -DLIBINTERFACE=${LIBINTERFACE} \
+               -DLIBREVISION=${LIBREVISION} \
+               -DLIBAGE=${LIBAGE}
+
+HEADERS =      app.h assertions.h base64.h bitstring.h boolean.h buffer.h \
+               bufferlist.h commandline.h entropy.h error.h event.h \
+               eventclass.h \
+               file.h formatcheck.h fsaccess.h heap.h hex.h hmacmd5.h \
+               interfaceiter.h ipv6.h lang.h lex.h \
+               lfsr.h lib.h list.h log.h magic.h md5.h mem.h msgcat.h msgs.h \
+               mutexblock.h netaddr.h ondestroy.h os.h \
+               print.h quota.h random.h ratelimiter.h \
+               refcount.h region.h resource.h \
+               result.h resultclass.h rwlock.h serial.h sha1.h sockaddr.h \
+               socket.h stdio.h string.h symtab.h task.h taskpool.h timer.h \
+               types.h util.h
+
+INCS=          ${HEADERS:S/^/${BIND_DIR}\/lib\/isc\/include\/isc\//g}
 INCSDIR=       ${INCLUDEDIR}/isc
 
-MAN=           assertions.3 bitncmp.3 eventlib.3 heap.3 \
-               logging.3 memcluster.3 tree.3
-CLEANFILES+=   ${MAN}
-
-MLINKS+=       assertions.3 ENSURE.3 \
-               assertions.3 ENSURE_ERR.3 \
-               assertions.3 INSIST.3 \
-               assertions.3 INSIST_ERR.3 \
-               assertions.3 INVARIANT.3 \
-               assertions.3 INVARIANT_ERR.3 \
-               assertions.3 REQUIRE.3 \
-               assertions.3 REQUIRE_ERR.3 \
-               assertions.3 assertion_type_to_text.3 \
-               assertions.3 set_assertion_failure_callback.3 \
-               eventlib.3 evAddTime.3 \
-               eventlib.3 evCancelConn.3 \
-               eventlib.3 evCancelRW.3 \
-               eventlib.3 evClearIdleTimer.3 \
-               eventlib.3 evClearTimer.3 \
-               eventlib.3 evCmpTime.3 \
-               eventlib.3 evConnFunc.3 \
-               eventlib.3 evConnect.3 \
-               eventlib.3 evConsIovec.3 \
-               eventlib.3 evConsTime.3 \
-               eventlib.3 evCreate.3 \
-               eventlib.3 evDefer.3 \
-               eventlib.3 evDeselectFD.3 \
-               eventlib.3 evDestroy.3 \
-               eventlib.3 evDispatch.3 \
-               eventlib.3 evDo.3 \
-               eventlib.3 evDrop.3 \
-               eventlib.3 evFileFunc.3 \
-               eventlib.3 evGetNext.3 \
-               eventlib.3 evHold.3 \
-               eventlib.3 evInitID.3 \
-               eventlib.3 evLastEventTime.3 \
-               eventlib.3 evListen.3 \
-               eventlib.3 evMainLoop.3 \
-               eventlib.3 evNowTime.3 \
-               eventlib.3 evPrintf.3 \
-               eventlib.3 evRead.3 \
-               eventlib.3 evResetTimer.3 \
-               eventlib.3 evSelectFD.3 \
-               eventlib.3 evSetDebug.3 \
-               eventlib.3 evSetIdleTimer.3 \
-               eventlib.3 evSetTimer.3 \
-               eventlib.3 evStreamFunc.3 \
-               eventlib.3 evSubTime.3 \
-               eventlib.3 evTestID.3 \
-               eventlib.3 evTimeRW.3 \
-               eventlib.3 evTimeSpec.3 \
-               eventlib.3 evTimeVal.3 \
-               eventlib.3 evTimerFunc.3 \
-               eventlib.3 evTouchIdleTimer.3 \
-               eventlib.3 evTryAccept.3 \
-               eventlib.3 evUnhold.3 \
-               eventlib.3 evUntimeRW.3 \
-               eventlib.3 evUnwait.3 \
-               eventlib.3 evWaitFor.3 \
-               eventlib.3 evWaitFunc.3 \
-               eventlib.3 evWrite.3 \
-               heap.3 heap_decreased.3 \
-               heap.3 heap_delete.3 \
-               heap.3 heap_element.3 \
-               heap.3 heap_for_each.3 \
-               heap.3 heap_free.3 \
-               heap.3 heap_increased.3 \
-               heap.3 heap_insert.3 \
-               heap.3 heap_new.3 \
-               logging.3 log_add_channel.3 \
-               logging.3 log_category_is_active.3 \
-               logging.3 log_close_stream.3 \
-               logging.3 log_dec_references.3 \
-               logging.3 log_free_channel.3 \
-               logging.3 log_free_context.3 \
-               logging.3 log_get_filename.3 \
-               logging.3 log_get_stream.3 \
-               logging.3 log_inc_references.3 \
-               logging.3 log_new_context.3 \
-               logging.3 log_new_file_channel.3 \
-               logging.3 log_new_null_channel.3 \
-               logging.3 log_new_syslog_channel.3 \
-               logging.3 log_open_stream.3 \
-               logging.3 log_option.3 \
-               logging.3 log_remove_channel.3 \
-               logging.3 log_set_file_owner.3 \
-               logging.3 log_vwrite.3 \
-               logging.3 log_write.3 \
-               memcluster.3 memget.3 \
-               memcluster.3 memput.3 \
-               memcluster.3 memstats.3 \
-               tree.3 tree_add.3 \
-               tree.3 tree_delete.3 \
-               tree.3 tree_init.3 \
-               tree.3 tree_mung.3 \
-               tree.3 tree_srch.3 \
-               tree.3 tree_trav.3
+# there are a lot of duplicate names in the libraries we are combining,
+# give each library its own subdirectory.
+#
+beforedepend: isc isccc dns dns/sec/dst isc/nls isc/unix isccfg lwres
+
+isc isccc dns dns/sec/dst isc/nls isc/unix isccfg lwres:
+               mkdir -p ${.TARGET}
+
+CLEANDIRS+=    isc isccc dns isc/nls isc/unix isccfg lwres
+
+#MAN=          assertions.3 bitncmp.3 eventlib.3 heap.3 \
+#              logging.3 memcluster.3 tree.3
+#CLEANFILES+=  ${MAN}
+
+#MLINKS+=      assertions.3 ENSURE.3 \
+#              assertions.3 ENSURE_ERR.3 \
+#              assertions.3 INSIST.3 \
+#              assertions.3 INSIST_ERR.3 \
+#              assertions.3 INVARIANT.3 \
+#              assertions.3 INVARIANT_ERR.3 \
+#              assertions.3 REQUIRE.3 \
+#              assertions.3 REQUIRE_ERR.3 \
+#              assertions.3 assertion_type_to_text.3 \
+#              assertions.3 set_assertion_failure_callback.3 \
+#              eventlib.3 evAddTime.3 \
+#              eventlib.3 evCancelConn.3 \
+#              eventlib.3 evCancelRW.3 \
+#              eventlib.3 evClearIdleTimer.3 \
+#              eventlib.3 evClearTimer.3 \
+#              eventlib.3 evCmpTime.3 \
+#              eventlib.3 evConnFunc.3 \
+#              eventlib.3 evConnect.3 \
+#              eventlib.3 evConsIovec.3 \
+#              eventlib.3 evConsTime.3 \
+#              eventlib.3 evCreate.3 \
+#              eventlib.3 evDefer.3 \
+#              eventlib.3 evDeselectFD.3 \
+#              eventlib.3 evDestroy.3 \
+#              eventlib.3 evDispatch.3 \
+#              eventlib.3 evDo.3 \
+#              eventlib.3 evDrop.3 \
+#              eventlib.3 evFileFunc.3 \
+#              eventlib.3 evGetNext.3 \
+#              eventlib.3 evHold.3 \
+#              eventlib.3 evInitID.3 \
+#              eventlib.3 evLastEventTime.3 \
+#              eventlib.3 evListen.3 \
+#              eventlib.3 evMainLoop.3 \
+#              eventlib.3 evNowTime.3 \
+#              eventlib.3 evPrintf.3 \
+#              eventlib.3 evRead.3 \
+#              eventlib.3 evResetTimer.3 \
+#              eventlib.3 evSelectFD.3 \
+#              eventlib.3 evSetDebug.3 \
+#              eventlib.3 evSetIdleTimer.3 \
+#              eventlib.3 evSetTimer.3 \
+#              eventlib.3 evStreamFunc.3 \
+#              eventlib.3 evSubTime.3 \
+#              eventlib.3 evTestID.3 \
+#              eventlib.3 evTimeRW.3 \
+#              eventlib.3 evTimeSpec.3 \
+#              eventlib.3 evTimeVal.3 \
+#              eventlib.3 evTimerFunc.3 \
+#              eventlib.3 evTouchIdleTimer.3 \
+#              eventlib.3 evTryAccept.3 \
+#              eventlib.3 evUnhold.3 \
+#              eventlib.3 evUntimeRW.3 \
+#              eventlib.3 evUnwait.3 \
+#              eventlib.3 evWaitFor.3 \
+#              eventlib.3 evWaitFunc.3 \
+#              eventlib.3 evWrite.3 \
+#              heap.3 heap_decreased.3 \
+#              heap.3 heap_delete.3 \
+#              heap.3 heap_element.3 \
+#              heap.3 heap_for_each.3 \
+#              heap.3 heap_free.3 \
+#              heap.3 heap_increased.3 \
+#              heap.3 heap_insert.3 \
+#              heap.3 heap_new.3 \
+#              logging.3 log_add_channel.3 \
+#              logging.3 log_category_is_active.3 \
+#              logging.3 log_close_stream.3 \
+#              logging.3 log_dec_references.3 \
+#              logging.3 log_free_channel.3 \
+#              logging.3 log_free_context.3 \
+#              logging.3 log_get_filename.3 \
+#              logging.3 log_get_stream.3 \
+#              logging.3 log_inc_references.3 \
+#              logging.3 log_new_context.3 \
+#              logging.3 log_new_file_channel.3 \
+#              logging.3 log_new_null_channel.3 \
+#              logging.3 log_new_syslog_channel.3 \
+#              logging.3 log_open_stream.3 \
+#              logging.3 log_option.3 \
+#              logging.3 log_remove_channel.3 \
+#              logging.3 log_set_file_owner.3 \
+#              logging.3 log_vwrite.3 \
+#              logging.3 log_write.3 \
+#              memcluster.3 memget.3 \
+#              memcluster.3 memput.3 \
+#              memcluster.3 memstats.3 \
+#              tree.3 tree_add.3 \
+#              tree.3 tree_delete.3 \
+#              tree.3 tree_init.3 \
+#              tree.3 tree_mung.3 \
+#              tree.3 tree_srch.3 \
+#              tree.3 tree_trav.3
 
 .include <bsd.lib.mk>
 
index 2d1be39..61b7294 100644 (file)
@@ -1,6 +1,6 @@
 #      @(#)Makefile    8.1 (Berkeley) 6/4/93
 # $FreeBSD: src/libexec/Makefile,v 1.42.2.5 2002/11/12 17:32:48 obrien Exp $
-# $DragonFly: src/libexec/Makefile,v 1.7 2004/03/25 18:05:48 joerg Exp $
+# $DragonFly: src/libexec/Makefile,v 1.8 2004/05/27 18:15:41 dillon Exp $
 
 # Present but disabled: kpasswdd
 SUBDIR=        atrun \
@@ -31,10 +31,6 @@ SUBDIR=      atrun \
        xtend \
        ypxfr
 
-.if !defined(NO_BIND)
-SUBDIR+=named-xfer
-.endif
-
 .if !defined(NO_SENDMAIL)
 SUBDIR+=mail.local smrsh
 .endif
diff --git a/libexec/named-xfer/Makefile b/libexec/named-xfer/Makefile
deleted file mode 100644 (file)
index 9fe301c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# $FreeBSD: src/libexec/named-xfer/Makefile,v 1.9.2.2 2001/04/25 10:40:53 ru Exp $
-# $DragonFly: src/libexec/named-xfer/Attic/Makefile,v 1.2 2003/06/17 04:27:07 dillon Exp $
-
-USE_LIBBIND=   true
-.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
-
-.PATH: ${BIND_DIR}/bin/named-xfer
-.PATH: ${BIND_DIR}/bin/named
-.PATH: ${BIND_DIR}/doc/man
-
-PROG=  named-xfer
-SRCS=  pathnames.h \
-       named-xfer.c db_glue.c ns_glue.c tmp_version.c 
-
-.if exists(${.OBJDIR}/../../lib/libisc)
-LIBISCDIR:=    ${.OBJDIR}/../../lib/libisc
-.else
-LIBISCDIR!=    cd ${.CURDIR}/../../lib/libisc; make -V .OBJDIR
-.endif
-LIBISC:=       ${LIBISCDIR}/libisc.a
-
-DPADD+=                ${LIBISC}
-LDADD+=                ${LIBISC}
-
-MAN=   named-xfer.8
-
-.include <bsd.prog.mk>
diff --git a/share/doc/smm/10.named/Makefile b/share/doc/smm/10.named/Makefile
deleted file mode 100644 (file)
index 9e088e2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# $FreeBSD: src/share/doc/smm/10.named/Makefile,v 1.4.2.1 2000/12/01 13:52:21 ru Exp $
-# $DragonFly: src/share/doc/smm/10.named/Attic/Makefile,v 1.2 2003/06/17 04:36:57 dillon Exp $
-
-SRCDIR=        ${.CURDIR}/../../../../contrib/bind/doc/bog
-
-VOLUME=        smm/10.named
-SRCS=  00macs.me 00title.me intro.me ns.me types.me \
-       files.me named.boot.primary \
-       named.boot.secondary named.boot.cache resolv.conf \
-       root.cache named.local ucbhosts.rev ucbhosts \
-       setup.me manage.me build.me ack.me
-
-MACROS=        -me
-USE_TBL=yes
-
-.include <bsd.doc.mk>
index edc00cb..1a6ff27 100644 (file)
@@ -1,6 +1,6 @@
 #      From: @(#)Makefile      8.3 (Berkeley) 1/7/94
 # $FreeBSD: src/usr.bin/Makefile,v 1.144.2.17 2003/01/04 17:17:07 obrien Exp $
-# $DragonFly: src/usr.bin/Makefile,v 1.11 2004/03/25 18:05:48 joerg Exp $
+# $DragonFly: src/usr.bin/Makefile,v 1.12 2004/05/27 18:15:41 dillon Exp $
 
 # XXX MISSING:         deroff diction graph learn plot
 #                      spell spline struct xsend
@@ -216,9 +216,11 @@ SUBDIR+=telnet
 
 .if !defined(NO_BIND)
 SUBDIR+=dig \
-       dnskeygen \
-       dnsquery \
-       host
+       host \
+       dnssec-keygen \
+       dnssec-makekeyset \
+       dnssec-signkey \
+       dnssec-signzone
 .endif
 
 .if !defined(NO_SENDMAIL)
index 9710ea2..1433cfa 100644 (file)
@@ -1,14 +1,17 @@
 # $FreeBSD: src/usr.bin/dig/Makefile,v 1.7 1999/11/30 06:25:16 peter Exp $
-# $DragonFly: src/usr.bin/dig/Makefile,v 1.2 2003/06/17 04:29:25 dillon Exp $
+# $DragonFly: src/usr.bin/dig/Makefile,v 1.3 2004/05/27 18:15:41 dillon Exp $
 
 USE_LIBBIND=   yes
+USE_LIBISC=    yes
 .include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
 
 .PATH: ${BIND_DIR}/bin/dig
-.PATH: ${BIND_DIR}/bin/nslookup
 .PATH: ${BIND_DIR}/doc/man
 
 PROG=  dig
-SRCS=  dig.c list.c subr.c debug.c send.c
+SRCS=  dig.c dighost.c
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named \
+       -I${BIND_DIR}/bin/dig/include
 
 .include <bsd.prog.mk>
diff --git a/usr.bin/dnskeygen/Makefile b/usr.bin/dnskeygen/Makefile
deleted file mode 100644 (file)
index f696f55..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# $FreeBSD: src/usr.bin/dnskeygen/Makefile,v 1.1.4.1 2001/04/25 11:29:18 ru Exp $
-# $DragonFly: src/usr.bin/dnskeygen/Attic/Makefile,v 1.2 2003/06/17 04:29:25 dillon Exp $
-
-USE_LIBBIND=   true
-.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
-
-.PATH: ${BIND_DIR}/bin/dnskeygen
-.PATH: ${BIND_DIR}/doc/man
-
-PROG=  dnskeygen
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/dnsquery/Makefile b/usr.bin/dnsquery/Makefile
deleted file mode 100644 (file)
index 65e4aab..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# $FreeBSD: src/usr.bin/dnsquery/Makefile,v 1.7 1999/11/30 06:25:18 peter Exp $
-# $DragonFly: src/usr.bin/dnsquery/Attic/Makefile,v 1.2 2003/06/17 04:29:25 dillon Exp $
-
-USE_LIBBIND=   yes
-.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
-
-.PATH: ${BIND_DIR}/bin/dnsquery
-.PATH: ${BIND_DIR}/doc/man
-
-PROG=  dnsquery
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/dnssec-keygen/Makefile b/usr.bin/dnssec-keygen/Makefile
new file mode 100644 (file)
index 0000000..afc5ec4
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# $DragonFly: src/usr.bin/dnssec-keygen/Makefile,v 1.1 2004/05/27 18:15:41 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/dnssec
+
+PROG=  dnssec-keygen
+SRCS=  dnssec-keygen.c dnssectool.c
+MAN=   dnssec-keygen.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/dnssec-makekeyset/Makefile b/usr.bin/dnssec-makekeyset/Makefile
new file mode 100644 (file)
index 0000000..18c92cc
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# $DragonFly: src/usr.bin/dnssec-makekeyset/Attic/Makefile,v 1.1 2004/05/27 18:15:41 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/dnssec
+
+PROG=  dnssec-makekeyset
+SRCS=  dnssec-makekeyset.c dnssectool.c
+MAN=   dnssec-makekeyset.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/dnssec-signkey/Makefile b/usr.bin/dnssec-signkey/Makefile
new file mode 100644 (file)
index 0000000..fc3a517
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# $DragonFly: src/usr.bin/dnssec-signkey/Attic/Makefile,v 1.1 2004/05/27 18:15:42 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/dnssec
+
+PROG=  dnssec-signkey
+SRCS=  dnssec-signkey.c dnssectool.c
+MAN=   dnssec-signkey.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/dnssec-signzone/Makefile b/usr.bin/dnssec-signzone/Makefile
new file mode 100644 (file)
index 0000000..57922fb
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# $DragonFly: src/usr.bin/dnssec-signzone/Makefile,v 1.1 2004/05/27 18:15:42 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/dnssec
+
+PROG=  dnssec-signzone
+SRCS=  dnssec-signzone.c dnssectool.c
+MAN=   dnssec-signzone.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named
+
+.include <bsd.prog.mk>
index a11033b..795e365 100644 (file)
@@ -1,12 +1,17 @@
-# $FreeBSD: src/usr.bin/host/Makefile,v 1.7 1999/11/30 06:25:19 peter Exp $
-# $DragonFly: src/usr.bin/host/Makefile,v 1.2 2003/06/17 04:29:27 dillon Exp $
+# $FreeBSD: src/usr.bin/dig/Makefile,v 1.7 1999/11/30 06:25:16 peter Exp $
+# $DragonFly: src/usr.bin/host/Makefile,v 1.3 2004/05/27 18:15:42 dillon Exp $
 
 USE_LIBBIND=   yes
+USE_LIBISC=    yes
 .include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
 
-.PATH: ${BIND_DIR}/bin/host
+.PATH: ${BIND_DIR}/bin/dig
 .PATH: ${BIND_DIR}/doc/man
 
 PROG=  host
+SRCS=  host.c dighost.c
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named \
+       -I${BIND_DIR}/bin/dig/include
 
 .include <bsd.prog.mk>
index 2787494..15cf7db 100644 (file)
@@ -1,6 +1,6 @@
 #      From: @(#)Makefile      5.20 (Berkeley) 6/12/93
 # $FreeBSD: src/usr.sbin/Makefile,v 1.183.2.14 2003/04/16 11:01:51 ru Exp $
-# $DragonFly: src/usr.sbin/Makefile,v 1.8 2004/05/20 19:09:27 cpressey Exp $
+# $DragonFly: src/usr.sbin/Makefile,v 1.9 2004/05/27 18:15:42 dillon Exp $
 
 # XXX MISSING:         mkproto
 SUBDIR=        IPXrouted \
@@ -132,7 +132,10 @@ SUBDIR+=ipftest \
 SUBDIR+=named \
        named.reload \
        named.restart \
-       ndc \
+       named-checkconf \
+       named-checkzone \
+       rndc \
+       rndc-confgen \
        nslookup \
        nsupdate
 .endif
diff --git a/usr.sbin/named-checkconf/Makefile b/usr.sbin/named-checkconf/Makefile
new file mode 100644 (file)
index 0000000..4478c87
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# $DragonFly: src/usr.sbin/named-checkconf/Makefile,v 1.1 2004/05/27 18:15:43 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/check
+
+PROG=  named-checkconf
+SRCS=  named-checkconf.c check-tool.c
+MAN=   named-checkconf.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named \
+       -I${BIND_DIR}/bin/check \
+       -DNAMED_CONFFILE=\"${DESTETC}/named.conf\"
+
+.include <bsd.prog.mk>
diff --git a/usr.sbin/named-checkzone/Makefile b/usr.sbin/named-checkzone/Makefile
new file mode 100644 (file)
index 0000000..6a0d044
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# $DragonFly: src/usr.sbin/named-checkzone/Makefile,v 1.1 2004/05/27 18:15:43 dillon Exp $
+
+USE_LIBBIND=   yes
+USE_LIBISC=    yes
+.include "${.CURDIR}/../../usr.sbin/named/Makefile.inc"
+
+.PATH: ${BIND_DIR}/bin/check
+
+PROG=  named-checkzone
+SRCS=  named-checkzone.c check-tool.c
+MAN=   named-checkzone.8
+
+CFLAGS+= -I${.CURDIR}/../../usr.sbin/named \
+       -I${BIND_DIR}/bin/check \
+       -DNAMED_CONFFILE=\"${DESTETC}/named.conf\"
+
+.include <bsd.prog.mk>
index 6e3685b..352238d 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/usr.sbin/named.reload/Makefile,v 1.6.2.2 2001/04/25 14:04:54 ru Exp $
-# $DragonFly: src/usr.sbin/named.reload/Makefile,v 1.2 2003/06/17 04:29:57 dillon Exp $
+# $DragonFly: src/usr.sbin/named.reload/Makefile,v 1.3 2004/05/27 18:15:43 dillon Exp $
 
 .include "${.CURDIR}/../named/Makefile.inc"
 
@@ -8,7 +8,7 @@ MAN=            named.reload.8
 CLEANFILES+=   ${SCRIPTS}
 SCRIPTSNAME=   ${SCRIPTS}
 
-named.reload:  named.reload.sh ${BIND_DIR}/Makefile
+named.reload:  named.reload.sh
        sed -e "s|%INDOT%|${INDOT}|" \
            -e "s|%DESTSBIN%|${DESTSBIN}|" \
            < ${.CURDIR}/named.reload.sh > ${.TARGET}
index bd812ab..717bb30 100644 (file)
@@ -2,7 +2,7 @@
 #
 #      from named.reload       5.2 (Berkeley) 6/27/89
 # $FreeBSD: src/usr.sbin/named.reload/named.reload.sh,v 1.2 1999/08/28 01:17:23 peter Exp $
-# $DragonFly: src/usr.sbin/named.reload/named.reload.sh,v 1.2 2003/06/17 04:29:57 dillon Exp $
+# $DragonFly: src/usr.sbin/named.reload/named.reload.sh,v 1.3 2004/05/27 18:15:43 dillon Exp $
 #
 
-exec %DESTSBIN%/%INDOT%ndc reload
+exec %DESTSBIN%/%INDOT%rndc reload
index 57a7b37..8de89cd 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/usr.sbin/named.restart/Makefile,v 1.6.2.2 2001/04/25 14:04:55 ru Exp $
-# $DragonFly: src/usr.sbin/named.restart/Makefile,v 1.2 2003/06/17 04:29:57 dillon Exp $
+# $DragonFly: src/usr.sbin/named.restart/Makefile,v 1.3 2004/05/27 18:15:43 dillon Exp $
 
 .include "${.CURDIR}/../named/Makefile.inc"
 
@@ -8,7 +8,7 @@ MAN=            named.restart.8
 CLEANFILES+=   ${SCRIPTS}
 SCRIPTSNAME=   ${SCRIPTS}
 
-named.restart: named.restart.sh ${BIND_DIR}/Makefile
+named.restart: named.restart.sh
        sed -e "s|%INDOT%|${INDOT}|" \
            -e "s|%DESTSBIN%|${DESTSBIN}|" \
            < ${.CURDIR}/named.restart.sh > named.restart
index 6a78369..b584a6d 100644 (file)
@@ -2,7 +2,7 @@
 #
 #      from named.restart      5.4 (Berkeley) 6/27/89
 # $FreeBSD: src/usr.sbin/named.restart/named.restart.sh,v 1.2.2.1 2001/07/19 05:11:06 kris Exp $
-# $DragonFly: src/usr.sbin/named.restart/named.restart.sh,v 1.2 2003/06/17 04:29:57 dillon Exp $
+# $DragonFly: src/usr.sbin/named.restart/named.restart.sh,v 1.3 2004/05/27 18:15:43 dillon Exp $
 #
 
 if [ -r /etc/defaults/rc.conf ]; then
@@ -11,4 +11,4 @@ if [ -r /etc/defaults/rc.conf ]; then
 elif [ -r /etc/rc.conf ]; then
         . /etc/rc.conf
 fi
-exec %DESTSBIN%/%INDOT%ndc -n ${named_program} restart ${named_flags}
+exec %DESTSBIN%/%INDOT%rndc -n ${named_program} restart ${named_flags}
index 1a0702b..e06874a 100644 (file)
@@ -1,24 +1,28 @@
 # $FreeBSD: src/usr.sbin/named/Makefile,v 1.25.2.5 2002/07/07 08:17:07 dougb Exp $
-# $DragonFly: src/usr.sbin/named/Makefile,v 1.3 2004/01/24 20:16:24 joerg Exp $
+# $DragonFly: src/usr.sbin/named/Makefile,v 1.4 2004/05/27 18:15:42 dillon Exp $
 
 USE_LIBBIND=   true
 .include "${.CURDIR}/Makefile.inc"
 
 .PATH: ${BIND_DIR}/bin/named
+.PATH: ${BIND_DIR}/bin/nsupdate
 .PATH: ${BIND_DIR}/doc/man
 
 PROG=  named
-MAN=   named.conf.5 named.8 named-bootconf.8 nsupdate.8
-SRCS=  tmp_version.c pathnames.h \
-       db_dump.c db_load.c db_lookup.c db_save.c db_update.c \
-       db_glue.c db_ixfr.c db_sec.c db_tsig.c \
-       ns_parser.y ns_lexer.c ns_parseutil.c ns_ctl.c \
-       ns_forw.c ns_init.c ns_main.c ns_maint.c ns_req.c \
-       ns_resp.c ns_stats.c ns_ncache.c ns_xfr.c ns_glue.c \
-       ns_udp.c ns_config.c ns_update.c ns_ixfr.c ns_signal.c \
-       ns_sort.c ns_notify.c
-
-CFLAGS+=       -I${BIND_DIR}/bin/named
+# named.conf.5 named-bootconf.8
+MAN=   named.8 nsupdate.8
+SRCS=  aclconf.c client.c config.c control.c controlconf.c interfacemgr.c \
+       listenlist.c log.c logconf.c main.c notify.c \
+       query.c server.c sortlist.c \
+       tkeyconf.c tsigconf.c update.c xfrout.c \
+       zoneconf.c \
+       lwaddr.c lwresd.c lwdclient.c lwderror.c lwdgabn.c \
+       lwdgnba.c lwdgrbn.c lwdnoop.c lwsearch.c \
+
+.PATH: ${BIND_DIR}/bin/named/unix
+SRCS+= os.c
+
+CFLAGS+= -I${BIND_DIR}/bin/named/include
 
 .if exists(${.OBJDIR}/../../lib/libisc)
 LIBISCDIR:=    ${.OBJDIR}/../../lib/libisc
@@ -30,11 +34,13 @@ LIBISC:=       ${LIBISCDIR}/libisc.a
 DPADD+=         ${LIBISC}
 LDADD+=         ${LIBISC}
 
-HTMLS= acl.html address_list.html comments.html config.html controls.html \
-       docdef.html example.html include.html index.html key.html \
-       logging.html master.html options.html server.html trusted-keys.html \
-       zone.html
-MISCS= DynamicUpdate FAQ.1of2 FAQ.2of2 rfc2317-notes.txt style.txt
+#HTMLS=        acl.html address_list.html comments.html config.html controls.html \
+#      docdef.html example.html include.html index.html key.html \
+#      logging.html master.html options.html server.html trusted-keys.html \
+#      zone.html
+HTMLS=
+#MISCS=        DynamicUpdate FAQ.1of2 FAQ.2of2 rfc2317-notes.txt style.txt
+MISCS=
 FILES= ${HTMLS} ${MISCS}
 .PATH: ${BIND_DIR}/doc/html ${BIND_DIR}/doc/misc
 
index aba195d..3c62e23 100644 (file)
@@ -1,13 +1,13 @@
 # From: Id: Makefile.inc,v 8.4 1996/03/03 17:42:43 vixie Exp
 # $FreeBSD: src/usr.sbin/named/Makefile.inc,v 1.12.2.3 2001/07/22 18:57:06 dillon Exp $
-# $DragonFly: src/usr.sbin/named/Makefile.inc,v 1.3 2004/01/25 22:16:45 drhodus Exp $
+# $DragonFly: src/usr.sbin/named/Makefile.inc,v 1.4 2004/05/27 18:15:42 dillon Exp $
 
 .ifndef (Mk.Inc)
 Mk.Inc?=defined
 
-BIND_DIR=      ${.CURDIR}/../../contrib/bind
+BIND_DIR?=     ${.CURDIR}/../../contrib/bind-9.2.4rc4
 
-VER!=          cat ${BIND_DIR}/Version
+VER=           9.2.4rc4
 
 PS=            ps
 PIDDIR=                /var/run
@@ -17,13 +17,30 @@ DESTRUN=    /var/run
 DESTSBIN=      /usr/sbin
 DESTHELP=      /usr/share/misc
 
-CFLAGS+=       -I${BIND_DIR}/port/freebsd/include
+# note: lib/bind/include not included here because we may want to
+# use the system resolv.h and friends instead of the one in libbind.
+#
+CFLAGS+=       -I${BIND_DIR}/port/freebsd/include \
+               -I${BIND_DIR}/lib/dns/include \
+               -I${BIND_DIR}/lib/isc/nothreads/include \
+               -I${BIND_DIR}/lib/isc/unix/include \
+               -I${BIND_DIR}/lib/isc/include \
+               -I${BIND_DIR}/lib/isccc/include \
+               -I${BIND_DIR}/lib/lwres/unix/include \
+               -I${BIND_DIR}/lib/lwres/include \
+               -I${BIND_DIR}/lib/isccfg/include \
+               -I${BIND_DIR}/lib/dns/sec/dst/include \
+               -I${BIND_DIR}/lib/dns
 
-# This is mostly for named and named-xfer
+CFLAGS+=       -I. -I${.CURDIR}
+
+CFLAGS+=       -DVERSION=\"${VER}\" \
+               -DNS_LOCALSTATEDIR=\"/var\" \
+               -DNS_SYSCONFDIR=\"${DESTETC}\"
+
+# This is for dig and other utilities
+#
 .if defined(USE_LIBBIND)
-# Sadly, mkdep doesn't know about -idirafter, which would be ideal here.
-#CFLAGS+=      -I${.CURDIR}/../../include -I${BIND_DIR}/include
-CFLAGS+=       -I${BIND_DIR}/include
 
 .if exists(${.OBJDIR}/../../lib/libbind)
 LIBBINDDIR:=   ${.OBJDIR}/../../lib/libbind
@@ -35,23 +52,23 @@ LIBBIND:=   ${LIBBINDDIR}/libbind.a
 DPADD+=                ${LIBBIND}
 LDADD+=                ${LIBBIND}
 
-CLEANFILES+=   tmp_version.c pathnames.h
-CFLAGS+=       -I.
-
-tmp_version.c: version.c ${BIND_DIR}/Version
-       (u=$${USER-root} d=`pwd` h=`hostname` t=`LC_ALL=C date`; \
-       sed -e "s|%WHEN%|$${t}|" -e "s|%VERSION%|"${VER}"|" \
-           -e "s|%WHOANDWHERE%|$${u}@$${h}:$${d}|" \
-           < ${BIND_DIR}/bin/named/version.c > tmp_version.c)
-       
-pathnames.h:   ${BIND_DIR}/bin/named/pathtemplate.h \
-               ${.CURDIR}/../../usr.sbin/named/Makefile.inc
-       rm -f pathnames.h
-       sed -e "s|%DESTSBIN%|${DESTSBIN}|" \
-           -e "s|%DESTEXEC%|${DESTEXEC}|" \
-           -e "s|%DESTETC%|${DESTETC}|" \
-           -e "s|%DESTRUN%|${DESTRUN}|" \
-           < ${BIND_DIR}/bin/named/pathtemplate.h > pathnames.h
+CLEANFILES+=
+
+.endif
+
+.if defined(USE_LIBISC)
+
+.if exists(${.OBJDIR}/../../lib/libisc)
+LIBISCDIR:=    ${.OBJDIR}/../../lib/libisc
+.else
+LIBISCDIR!=    cd ${.CURDIR}/../../lib/libisc; make -V .OBJDIR
+.endif
+LIBISC:=       ${LIBISCDIR}/libisc.a
+
+DPADD+=                ${LIBISC}
+LDADD+=                ${LIBISC}
+
+CLEANFILES+=
 
 .endif
 
diff --git a/usr.sbin/named/code.h b/usr.sbin/named/code.h
new file mode 100644 (file)
index 0000000..f8db0bb
--- /dev/null
@@ -0,0 +1,1398 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/* $DragonFly: src/usr.sbin/named/code.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+#ifndef DNS_CODE_H
+#define DNS_CODE_H 1
+
+#include <isc/boolean.h>
+#include <isc/result.h>
+
+#include <dns/name.h>
+
+#include "./rdata/in_1/a_1.c"
+#include "./rdata/hs_4/a_1.c"
+#include "./rdata/generic/ns_2.c"
+#include "./rdata/generic/md_3.c"
+#include "./rdata/generic/mf_4.c"
+#include "./rdata/generic/cname_5.c"
+#include "./rdata/generic/soa_6.c"
+#include "./rdata/generic/mb_7.c"
+#include "./rdata/generic/mg_8.c"
+#include "./rdata/generic/mr_9.c"
+#include "./rdata/generic/null_10.c"
+#include "./rdata/in_1/wks_11.c"
+#include "./rdata/generic/ptr_12.c"
+#include "./rdata/generic/hinfo_13.c"
+#include "./rdata/generic/minfo_14.c"
+#include "./rdata/generic/mx_15.c"
+#include "./rdata/generic/txt_16.c"
+#include "./rdata/generic/rp_17.c"
+#include "./rdata/generic/afsdb_18.c"
+#include "./rdata/generic/x25_19.c"
+#include "./rdata/generic/isdn_20.c"
+#include "./rdata/generic/rt_21.c"
+#include "./rdata/in_1/nsap_22.c"
+#include "./rdata/in_1/nsap-ptr_23.c"
+#include "./rdata/generic/sig_24.c"
+#include "./rdata/generic/key_25.c"
+#include "./rdata/in_1/px_26.c"
+#include "./rdata/generic/gpos_27.c"
+#include "./rdata/in_1/aaaa_28.c"
+#include "./rdata/generic/loc_29.c"
+#include "./rdata/generic/nxt_30.c"
+#include "./rdata/in_1/srv_33.c"
+#include "./rdata/in_1/naptr_35.c"
+#include "./rdata/in_1/kx_36.c"
+#include "./rdata/generic/cert_37.c"
+#include "./rdata/in_1/a6_38.c"
+#include "./rdata/generic/dname_39.c"
+#include "./rdata/generic/opt_41.c"
+#include "./rdata/generic/unspec_103.c"
+#include "./rdata/generic/tkey_249.c"
+#include "./rdata/any_255/tsig_250.c"
+
+
+
+#define FROMTEXTSWITCH \
+       switch (type) { \
+       case 1: switch (rdclass) { \
+               case 1: result = fromtext_in_a(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               case 4: result = fromtext_hs_a(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 2: result = fromtext_ns(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 3: result = fromtext_md(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 4: result = fromtext_mf(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 5: result = fromtext_cname(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 6: result = fromtext_soa(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 7: result = fromtext_mb(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 8: result = fromtext_mg(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 9: result = fromtext_mr(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 10: result = fromtext_null(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 11: switch (rdclass) { \
+               case 1: result = fromtext_in_wks(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 12: result = fromtext_ptr(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 13: result = fromtext_hinfo(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 14: result = fromtext_minfo(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 15: result = fromtext_mx(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 16: result = fromtext_txt(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 17: result = fromtext_rp(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 18: result = fromtext_afsdb(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 19: result = fromtext_x25(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 20: result = fromtext_isdn(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 21: result = fromtext_rt(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 22: switch (rdclass) { \
+               case 1: result = fromtext_in_nsap(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 23: switch (rdclass) { \
+               case 1: result = fromtext_in_nsap_ptr(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 24: result = fromtext_sig(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 25: result = fromtext_key(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 26: switch (rdclass) { \
+               case 1: result = fromtext_in_px(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 27: result = fromtext_gpos(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 28: switch (rdclass) { \
+               case 1: result = fromtext_in_aaaa(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 29: result = fromtext_loc(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 30: result = fromtext_nxt(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 33: switch (rdclass) { \
+               case 1: result = fromtext_in_srv(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 35: switch (rdclass) { \
+               case 1: result = fromtext_in_naptr(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 36: switch (rdclass) { \
+               case 1: result = fromtext_in_kx(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 37: result = fromtext_cert(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 38: switch (rdclass) { \
+               case 1: result = fromtext_in_a6(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       case 39: result = fromtext_dname(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 41: result = fromtext_opt(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 103: result = fromtext_unspec(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 249: result = fromtext_tkey(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+       case 250: switch (rdclass) { \
+               case 255: result = fromtext_any_tsig(rdclass, type, lexer, origin, downcase, target, callbacks); break; \
+               default: result = DNS_R_UNKNOWN; break; \
+               } \
+               break; \
+       default: result = DNS_R_UNKNOWN; break; \
+       }
+
+#define TOTEXTSWITCH \
+       switch (rdata->type) { \
+       case 1: switch (rdata->rdclass) { \
+               case 1: result = totext_in_a(rdata, tctx, target); break; \
+               case 4: result = totext_hs_a(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = totext_ns(rdata, tctx, target); break; \
+       case 3: result = totext_md(rdata, tctx, target); break; \
+       case 4: result = totext_mf(rdata, tctx, target); break; \
+       case 5: result = totext_cname(rdata, tctx, target); break; \
+       case 6: result = totext_soa(rdata, tctx, target); break; \
+       case 7: result = totext_mb(rdata, tctx, target); break; \
+       case 8: result = totext_mg(rdata, tctx, target); break; \
+       case 9: result = totext_mr(rdata, tctx, target); break; \
+       case 10: result = totext_null(rdata, tctx, target); break; \
+       case 11: switch (rdata->rdclass) { \
+               case 1: result = totext_in_wks(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = totext_ptr(rdata, tctx, target); break; \
+       case 13: result = totext_hinfo(rdata, tctx, target); break; \
+       case 14: result = totext_minfo(rdata, tctx, target); break; \
+       case 15: result = totext_mx(rdata, tctx, target); break; \
+       case 16: result = totext_txt(rdata, tctx, target); break; \
+       case 17: result = totext_rp(rdata, tctx, target); break; \
+       case 18: result = totext_afsdb(rdata, tctx, target); break; \
+       case 19: result = totext_x25(rdata, tctx, target); break; \
+       case 20: result = totext_isdn(rdata, tctx, target); break; \
+       case 21: result = totext_rt(rdata, tctx, target); break; \
+       case 22: switch (rdata->rdclass) { \
+               case 1: result = totext_in_nsap(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata->rdclass) { \
+               case 1: result = totext_in_nsap_ptr(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = totext_sig(rdata, tctx, target); break; \
+       case 25: result = totext_key(rdata, tctx, target); break; \
+       case 26: switch (rdata->rdclass) { \
+               case 1: result = totext_in_px(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = totext_gpos(rdata, tctx, target); break; \
+       case 28: switch (rdata->rdclass) { \
+               case 1: result = totext_in_aaaa(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = totext_loc(rdata, tctx, target); break; \
+       case 30: result = totext_nxt(rdata, tctx, target); break; \
+       case 33: switch (rdata->rdclass) { \
+               case 1: result = totext_in_srv(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata->rdclass) { \
+               case 1: result = totext_in_naptr(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata->rdclass) { \
+               case 1: result = totext_in_kx(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = totext_cert(rdata, tctx, target); break; \
+       case 38: switch (rdata->rdclass) { \
+               case 1: result = totext_in_a6(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = totext_dname(rdata, tctx, target); break; \
+       case 41: result = totext_opt(rdata, tctx, target); break; \
+       case 103: result = totext_unspec(rdata, tctx, target); break; \
+       case 249: result = totext_tkey(rdata, tctx, target); break; \
+       case 250: switch (rdata->rdclass) { \
+               case 255: result = totext_any_tsig(rdata, tctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define FROMWIRESWITCH \
+       switch (type) { \
+       case 1: switch (rdclass) { \
+               case 1: result = fromwire_in_a(rdclass, type, source, dctx, downcase, target); break; \
+               case 4: result = fromwire_hs_a(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = fromwire_ns(rdclass, type, source, dctx, downcase, target); break; \
+       case 3: result = fromwire_md(rdclass, type, source, dctx, downcase, target); break; \
+       case 4: result = fromwire_mf(rdclass, type, source, dctx, downcase, target); break; \
+       case 5: result = fromwire_cname(rdclass, type, source, dctx, downcase, target); break; \
+       case 6: result = fromwire_soa(rdclass, type, source, dctx, downcase, target); break; \
+       case 7: result = fromwire_mb(rdclass, type, source, dctx, downcase, target); break; \
+       case 8: result = fromwire_mg(rdclass, type, source, dctx, downcase, target); break; \
+       case 9: result = fromwire_mr(rdclass, type, source, dctx, downcase, target); break; \
+       case 10: result = fromwire_null(rdclass, type, source, dctx, downcase, target); break; \
+       case 11: switch (rdclass) { \
+               case 1: result = fromwire_in_wks(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = fromwire_ptr(rdclass, type, source, dctx, downcase, target); break; \
+       case 13: result = fromwire_hinfo(rdclass, type, source, dctx, downcase, target); break; \
+       case 14: result = fromwire_minfo(rdclass, type, source, dctx, downcase, target); break; \
+       case 15: result = fromwire_mx(rdclass, type, source, dctx, downcase, target); break; \
+       case 16: result = fromwire_txt(rdclass, type, source, dctx, downcase, target); break; \
+       case 17: result = fromwire_rp(rdclass, type, source, dctx, downcase, target); break; \
+       case 18: result = fromwire_afsdb(rdclass, type, source, dctx, downcase, target); break; \
+       case 19: result = fromwire_x25(rdclass, type, source, dctx, downcase, target); break; \
+       case 20: result = fromwire_isdn(rdclass, type, source, dctx, downcase, target); break; \
+       case 21: result = fromwire_rt(rdclass, type, source, dctx, downcase, target); break; \
+       case 22: switch (rdclass) { \
+               case 1: result = fromwire_in_nsap(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdclass) { \
+               case 1: result = fromwire_in_nsap_ptr(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = fromwire_sig(rdclass, type, source, dctx, downcase, target); break; \
+       case 25: result = fromwire_key(rdclass, type, source, dctx, downcase, target); break; \
+       case 26: switch (rdclass) { \
+               case 1: result = fromwire_in_px(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = fromwire_gpos(rdclass, type, source, dctx, downcase, target); break; \
+       case 28: switch (rdclass) { \
+               case 1: result = fromwire_in_aaaa(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = fromwire_loc(rdclass, type, source, dctx, downcase, target); break; \
+       case 30: result = fromwire_nxt(rdclass, type, source, dctx, downcase, target); break; \
+       case 33: switch (rdclass) { \
+               case 1: result = fromwire_in_srv(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdclass) { \
+               case 1: result = fromwire_in_naptr(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdclass) { \
+               case 1: result = fromwire_in_kx(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = fromwire_cert(rdclass, type, source, dctx, downcase, target); break; \
+       case 38: switch (rdclass) { \
+               case 1: result = fromwire_in_a6(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = fromwire_dname(rdclass, type, source, dctx, downcase, target); break; \
+       case 41: result = fromwire_opt(rdclass, type, source, dctx, downcase, target); break; \
+       case 103: result = fromwire_unspec(rdclass, type, source, dctx, downcase, target); break; \
+       case 249: result = fromwire_tkey(rdclass, type, source, dctx, downcase, target); break; \
+       case 250: switch (rdclass) { \
+               case 255: result = fromwire_any_tsig(rdclass, type, source, dctx, downcase, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define TOWIRESWITCH \
+       switch (rdata->type) { \
+       case 1: switch (rdata->rdclass) { \
+               case 1: result = towire_in_a(rdata, cctx, target); break; \
+               case 4: result = towire_hs_a(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = towire_ns(rdata, cctx, target); break; \
+       case 3: result = towire_md(rdata, cctx, target); break; \
+       case 4: result = towire_mf(rdata, cctx, target); break; \
+       case 5: result = towire_cname(rdata, cctx, target); break; \
+       case 6: result = towire_soa(rdata, cctx, target); break; \
+       case 7: result = towire_mb(rdata, cctx, target); break; \
+       case 8: result = towire_mg(rdata, cctx, target); break; \
+       case 9: result = towire_mr(rdata, cctx, target); break; \
+       case 10: result = towire_null(rdata, cctx, target); break; \
+       case 11: switch (rdata->rdclass) { \
+               case 1: result = towire_in_wks(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = towire_ptr(rdata, cctx, target); break; \
+       case 13: result = towire_hinfo(rdata, cctx, target); break; \
+       case 14: result = towire_minfo(rdata, cctx, target); break; \
+       case 15: result = towire_mx(rdata, cctx, target); break; \
+       case 16: result = towire_txt(rdata, cctx, target); break; \
+       case 17: result = towire_rp(rdata, cctx, target); break; \
+       case 18: result = towire_afsdb(rdata, cctx, target); break; \
+       case 19: result = towire_x25(rdata, cctx, target); break; \
+       case 20: result = towire_isdn(rdata, cctx, target); break; \
+       case 21: result = towire_rt(rdata, cctx, target); break; \
+       case 22: switch (rdata->rdclass) { \
+               case 1: result = towire_in_nsap(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata->rdclass) { \
+               case 1: result = towire_in_nsap_ptr(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = towire_sig(rdata, cctx, target); break; \
+       case 25: result = towire_key(rdata, cctx, target); break; \
+       case 26: switch (rdata->rdclass) { \
+               case 1: result = towire_in_px(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = towire_gpos(rdata, cctx, target); break; \
+       case 28: switch (rdata->rdclass) { \
+               case 1: result = towire_in_aaaa(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = towire_loc(rdata, cctx, target); break; \
+       case 30: result = towire_nxt(rdata, cctx, target); break; \
+       case 33: switch (rdata->rdclass) { \
+               case 1: result = towire_in_srv(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata->rdclass) { \
+               case 1: result = towire_in_naptr(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata->rdclass) { \
+               case 1: result = towire_in_kx(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = towire_cert(rdata, cctx, target); break; \
+       case 38: switch (rdata->rdclass) { \
+               case 1: result = towire_in_a6(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = towire_dname(rdata, cctx, target); break; \
+       case 41: result = towire_opt(rdata, cctx, target); break; \
+       case 103: result = towire_unspec(rdata, cctx, target); break; \
+       case 249: result = towire_tkey(rdata, cctx, target); break; \
+       case 250: switch (rdata->rdclass) { \
+               case 255: result = towire_any_tsig(rdata, cctx, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define COMPARESWITCH \
+       switch (rdata1->type) { \
+       case 1: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_a(rdata1, rdata2); break; \
+               case 4: result = compare_hs_a(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = compare_ns(rdata1, rdata2); break; \
+       case 3: result = compare_md(rdata1, rdata2); break; \
+       case 4: result = compare_mf(rdata1, rdata2); break; \
+       case 5: result = compare_cname(rdata1, rdata2); break; \
+       case 6: result = compare_soa(rdata1, rdata2); break; \
+       case 7: result = compare_mb(rdata1, rdata2); break; \
+       case 8: result = compare_mg(rdata1, rdata2); break; \
+       case 9: result = compare_mr(rdata1, rdata2); break; \
+       case 10: result = compare_null(rdata1, rdata2); break; \
+       case 11: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_wks(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = compare_ptr(rdata1, rdata2); break; \
+       case 13: result = compare_hinfo(rdata1, rdata2); break; \
+       case 14: result = compare_minfo(rdata1, rdata2); break; \
+       case 15: result = compare_mx(rdata1, rdata2); break; \
+       case 16: result = compare_txt(rdata1, rdata2); break; \
+       case 17: result = compare_rp(rdata1, rdata2); break; \
+       case 18: result = compare_afsdb(rdata1, rdata2); break; \
+       case 19: result = compare_x25(rdata1, rdata2); break; \
+       case 20: result = compare_isdn(rdata1, rdata2); break; \
+       case 21: result = compare_rt(rdata1, rdata2); break; \
+       case 22: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_nsap(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_nsap_ptr(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = compare_sig(rdata1, rdata2); break; \
+       case 25: result = compare_key(rdata1, rdata2); break; \
+       case 26: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_px(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = compare_gpos(rdata1, rdata2); break; \
+       case 28: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_aaaa(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = compare_loc(rdata1, rdata2); break; \
+       case 30: result = compare_nxt(rdata1, rdata2); break; \
+       case 33: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_srv(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_naptr(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_kx(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = compare_cert(rdata1, rdata2); break; \
+       case 38: switch (rdata1->rdclass) { \
+               case 1: result = compare_in_a6(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = compare_dname(rdata1, rdata2); break; \
+       case 41: result = compare_opt(rdata1, rdata2); break; \
+       case 103: result = compare_unspec(rdata1, rdata2); break; \
+       case 249: result = compare_tkey(rdata1, rdata2); break; \
+       case 250: switch (rdata1->rdclass) { \
+               case 255: result = compare_any_tsig(rdata1, rdata2); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define FROMSTRUCTSWITCH \
+       switch (type) { \
+       case 1: switch (rdclass) { \
+               case 1: result = fromstruct_in_a(rdclass, type, source, target); break; \
+               case 4: result = fromstruct_hs_a(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = fromstruct_ns(rdclass, type, source, target); break; \
+       case 3: result = fromstruct_md(rdclass, type, source, target); break; \
+       case 4: result = fromstruct_mf(rdclass, type, source, target); break; \
+       case 5: result = fromstruct_cname(rdclass, type, source, target); break; \
+       case 6: result = fromstruct_soa(rdclass, type, source, target); break; \
+       case 7: result = fromstruct_mb(rdclass, type, source, target); break; \
+       case 8: result = fromstruct_mg(rdclass, type, source, target); break; \
+       case 9: result = fromstruct_mr(rdclass, type, source, target); break; \
+       case 10: result = fromstruct_null(rdclass, type, source, target); break; \
+       case 11: switch (rdclass) { \
+               case 1: result = fromstruct_in_wks(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = fromstruct_ptr(rdclass, type, source, target); break; \
+       case 13: result = fromstruct_hinfo(rdclass, type, source, target); break; \
+       case 14: result = fromstruct_minfo(rdclass, type, source, target); break; \
+       case 15: result = fromstruct_mx(rdclass, type, source, target); break; \
+       case 16: result = fromstruct_txt(rdclass, type, source, target); break; \
+       case 17: result = fromstruct_rp(rdclass, type, source, target); break; \
+       case 18: result = fromstruct_afsdb(rdclass, type, source, target); break; \
+       case 19: result = fromstruct_x25(rdclass, type, source, target); break; \
+       case 20: result = fromstruct_isdn(rdclass, type, source, target); break; \
+       case 21: result = fromstruct_rt(rdclass, type, source, target); break; \
+       case 22: switch (rdclass) { \
+               case 1: result = fromstruct_in_nsap(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdclass) { \
+               case 1: result = fromstruct_in_nsap_ptr(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = fromstruct_sig(rdclass, type, source, target); break; \
+       case 25: result = fromstruct_key(rdclass, type, source, target); break; \
+       case 26: switch (rdclass) { \
+               case 1: result = fromstruct_in_px(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = fromstruct_gpos(rdclass, type, source, target); break; \
+       case 28: switch (rdclass) { \
+               case 1: result = fromstruct_in_aaaa(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = fromstruct_loc(rdclass, type, source, target); break; \
+       case 30: result = fromstruct_nxt(rdclass, type, source, target); break; \
+       case 33: switch (rdclass) { \
+               case 1: result = fromstruct_in_srv(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdclass) { \
+               case 1: result = fromstruct_in_naptr(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdclass) { \
+               case 1: result = fromstruct_in_kx(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = fromstruct_cert(rdclass, type, source, target); break; \
+       case 38: switch (rdclass) { \
+               case 1: result = fromstruct_in_a6(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = fromstruct_dname(rdclass, type, source, target); break; \
+       case 41: result = fromstruct_opt(rdclass, type, source, target); break; \
+       case 103: result = fromstruct_unspec(rdclass, type, source, target); break; \
+       case 249: result = fromstruct_tkey(rdclass, type, source, target); break; \
+       case 250: switch (rdclass) { \
+               case 255: result = fromstruct_any_tsig(rdclass, type, source, target); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define TOSTRUCTSWITCH \
+       switch (rdata->type) { \
+       case 1: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_a(rdata, target, mctx); break; \
+               case 4: result = tostruct_hs_a(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = tostruct_ns(rdata, target, mctx); break; \
+       case 3: result = tostruct_md(rdata, target, mctx); break; \
+       case 4: result = tostruct_mf(rdata, target, mctx); break; \
+       case 5: result = tostruct_cname(rdata, target, mctx); break; \
+       case 6: result = tostruct_soa(rdata, target, mctx); break; \
+       case 7: result = tostruct_mb(rdata, target, mctx); break; \
+       case 8: result = tostruct_mg(rdata, target, mctx); break; \
+       case 9: result = tostruct_mr(rdata, target, mctx); break; \
+       case 10: result = tostruct_null(rdata, target, mctx); break; \
+       case 11: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_wks(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = tostruct_ptr(rdata, target, mctx); break; \
+       case 13: result = tostruct_hinfo(rdata, target, mctx); break; \
+       case 14: result = tostruct_minfo(rdata, target, mctx); break; \
+       case 15: result = tostruct_mx(rdata, target, mctx); break; \
+       case 16: result = tostruct_txt(rdata, target, mctx); break; \
+       case 17: result = tostruct_rp(rdata, target, mctx); break; \
+       case 18: result = tostruct_afsdb(rdata, target, mctx); break; \
+       case 19: result = tostruct_x25(rdata, target, mctx); break; \
+       case 20: result = tostruct_isdn(rdata, target, mctx); break; \
+       case 21: result = tostruct_rt(rdata, target, mctx); break; \
+       case 22: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_nsap(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_nsap_ptr(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = tostruct_sig(rdata, target, mctx); break; \
+       case 25: result = tostruct_key(rdata, target, mctx); break; \
+       case 26: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_px(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = tostruct_gpos(rdata, target, mctx); break; \
+       case 28: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_aaaa(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = tostruct_loc(rdata, target, mctx); break; \
+       case 30: result = tostruct_nxt(rdata, target, mctx); break; \
+       case 33: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_srv(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_naptr(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_kx(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = tostruct_cert(rdata, target, mctx); break; \
+       case 38: switch (rdata->rdclass) { \
+               case 1: result = tostruct_in_a6(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = tostruct_dname(rdata, target, mctx); break; \
+       case 41: result = tostruct_opt(rdata, target, mctx); break; \
+       case 103: result = tostruct_unspec(rdata, target, mctx); break; \
+       case 249: result = tostruct_tkey(rdata, target, mctx); break; \
+       case 250: switch (rdata->rdclass) { \
+               case 255: result = tostruct_any_tsig(rdata, target, mctx); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define FREESTRUCTSWITCH \
+       switch (common->rdtype) { \
+       case 1: switch (common->rdclass) { \
+               case 1: freestruct_in_a(source); break; \
+               case 4: freestruct_hs_a(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 2: freestruct_ns(source); break; \
+       case 3: freestruct_md(source); break; \
+       case 4: freestruct_mf(source); break; \
+       case 5: freestruct_cname(source); break; \
+       case 6: freestruct_soa(source); break; \
+       case 7: freestruct_mb(source); break; \
+       case 8: freestruct_mg(source); break; \
+       case 9: freestruct_mr(source); break; \
+       case 10: freestruct_null(source); break; \
+       case 11: switch (common->rdclass) { \
+               case 1: freestruct_in_wks(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 12: freestruct_ptr(source); break; \
+       case 13: freestruct_hinfo(source); break; \
+       case 14: freestruct_minfo(source); break; \
+       case 15: freestruct_mx(source); break; \
+       case 16: freestruct_txt(source); break; \
+       case 17: freestruct_rp(source); break; \
+       case 18: freestruct_afsdb(source); break; \
+       case 19: freestruct_x25(source); break; \
+       case 20: freestruct_isdn(source); break; \
+       case 21: freestruct_rt(source); break; \
+       case 22: switch (common->rdclass) { \
+               case 1: freestruct_in_nsap(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 23: switch (common->rdclass) { \
+               case 1: freestruct_in_nsap_ptr(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 24: freestruct_sig(source); break; \
+       case 25: freestruct_key(source); break; \
+       case 26: switch (common->rdclass) { \
+               case 1: freestruct_in_px(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 27: freestruct_gpos(source); break; \
+       case 28: switch (common->rdclass) { \
+               case 1: freestruct_in_aaaa(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 29: freestruct_loc(source); break; \
+       case 30: freestruct_nxt(source); break; \
+       case 33: switch (common->rdclass) { \
+               case 1: freestruct_in_srv(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 35: switch (common->rdclass) { \
+               case 1: freestruct_in_naptr(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 36: switch (common->rdclass) { \
+               case 1: freestruct_in_kx(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 37: freestruct_cert(source); break; \
+       case 38: switch (common->rdclass) { \
+               case 1: freestruct_in_a6(source); break; \
+               default: break; \
+               } \
+               break; \
+       case 39: freestruct_dname(source); break; \
+       case 41: freestruct_opt(source); break; \
+       case 103: freestruct_unspec(source); break; \
+       case 249: freestruct_tkey(source); break; \
+       case 250: switch (common->rdclass) { \
+               case 255: freestruct_any_tsig(source); break; \
+               default: break; \
+               } \
+               break; \
+       default: break; \
+       }
+
+#define ADDITIONALDATASWITCH \
+       switch (rdata->type) { \
+       case 1: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_a(rdata, add, arg); break; \
+               case 4: result = additionaldata_hs_a(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = additionaldata_ns(rdata, add, arg); break; \
+       case 3: result = additionaldata_md(rdata, add, arg); break; \
+       case 4: result = additionaldata_mf(rdata, add, arg); break; \
+       case 5: result = additionaldata_cname(rdata, add, arg); break; \
+       case 6: result = additionaldata_soa(rdata, add, arg); break; \
+       case 7: result = additionaldata_mb(rdata, add, arg); break; \
+       case 8: result = additionaldata_mg(rdata, add, arg); break; \
+       case 9: result = additionaldata_mr(rdata, add, arg); break; \
+       case 10: result = additionaldata_null(rdata, add, arg); break; \
+       case 11: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_wks(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = additionaldata_ptr(rdata, add, arg); break; \
+       case 13: result = additionaldata_hinfo(rdata, add, arg); break; \
+       case 14: result = additionaldata_minfo(rdata, add, arg); break; \
+       case 15: result = additionaldata_mx(rdata, add, arg); break; \
+       case 16: result = additionaldata_txt(rdata, add, arg); break; \
+       case 17: result = additionaldata_rp(rdata, add, arg); break; \
+       case 18: result = additionaldata_afsdb(rdata, add, arg); break; \
+       case 19: result = additionaldata_x25(rdata, add, arg); break; \
+       case 20: result = additionaldata_isdn(rdata, add, arg); break; \
+       case 21: result = additionaldata_rt(rdata, add, arg); break; \
+       case 22: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_nsap(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_nsap_ptr(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = additionaldata_sig(rdata, add, arg); break; \
+       case 25: result = additionaldata_key(rdata, add, arg); break; \
+       case 26: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_px(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = additionaldata_gpos(rdata, add, arg); break; \
+       case 28: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_aaaa(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = additionaldata_loc(rdata, add, arg); break; \
+       case 30: result = additionaldata_nxt(rdata, add, arg); break; \
+       case 33: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_srv(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_naptr(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_kx(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = additionaldata_cert(rdata, add, arg); break; \
+       case 38: switch (rdata->rdclass) { \
+               case 1: result = additionaldata_in_a6(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = additionaldata_dname(rdata, add, arg); break; \
+       case 41: result = additionaldata_opt(rdata, add, arg); break; \
+       case 103: result = additionaldata_unspec(rdata, add, arg); break; \
+       case 249: result = additionaldata_tkey(rdata, add, arg); break; \
+       case 250: switch (rdata->rdclass) { \
+               case 255: result = additionaldata_any_tsig(rdata, add, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+#define DIGESTSWITCH \
+       switch (rdata->type) { \
+       case 1: switch (rdata->rdclass) { \
+               case 1: result = digest_in_a(rdata, digest, arg); break; \
+               case 4: result = digest_hs_a(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 2: result = digest_ns(rdata, digest, arg); break; \
+       case 3: result = digest_md(rdata, digest, arg); break; \
+       case 4: result = digest_mf(rdata, digest, arg); break; \
+       case 5: result = digest_cname(rdata, digest, arg); break; \
+       case 6: result = digest_soa(rdata, digest, arg); break; \
+       case 7: result = digest_mb(rdata, digest, arg); break; \
+       case 8: result = digest_mg(rdata, digest, arg); break; \
+       case 9: result = digest_mr(rdata, digest, arg); break; \
+       case 10: result = digest_null(rdata, digest, arg); break; \
+       case 11: switch (rdata->rdclass) { \
+               case 1: result = digest_in_wks(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 12: result = digest_ptr(rdata, digest, arg); break; \
+       case 13: result = digest_hinfo(rdata, digest, arg); break; \
+       case 14: result = digest_minfo(rdata, digest, arg); break; \
+       case 15: result = digest_mx(rdata, digest, arg); break; \
+       case 16: result = digest_txt(rdata, digest, arg); break; \
+       case 17: result = digest_rp(rdata, digest, arg); break; \
+       case 18: result = digest_afsdb(rdata, digest, arg); break; \
+       case 19: result = digest_x25(rdata, digest, arg); break; \
+       case 20: result = digest_isdn(rdata, digest, arg); break; \
+       case 21: result = digest_rt(rdata, digest, arg); break; \
+       case 22: switch (rdata->rdclass) { \
+               case 1: result = digest_in_nsap(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 23: switch (rdata->rdclass) { \
+               case 1: result = digest_in_nsap_ptr(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 24: result = digest_sig(rdata, digest, arg); break; \
+       case 25: result = digest_key(rdata, digest, arg); break; \
+       case 26: switch (rdata->rdclass) { \
+               case 1: result = digest_in_px(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 27: result = digest_gpos(rdata, digest, arg); break; \
+       case 28: switch (rdata->rdclass) { \
+               case 1: result = digest_in_aaaa(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 29: result = digest_loc(rdata, digest, arg); break; \
+       case 30: result = digest_nxt(rdata, digest, arg); break; \
+       case 33: switch (rdata->rdclass) { \
+               case 1: result = digest_in_srv(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 35: switch (rdata->rdclass) { \
+               case 1: result = digest_in_naptr(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 36: switch (rdata->rdclass) { \
+               case 1: result = digest_in_kx(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 37: result = digest_cert(rdata, digest, arg); break; \
+       case 38: switch (rdata->rdclass) { \
+               case 1: result = digest_in_a6(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       case 39: result = digest_dname(rdata, digest, arg); break; \
+       case 41: result = digest_opt(rdata, digest, arg); break; \
+       case 103: result = digest_unspec(rdata, digest, arg); break; \
+       case 249: result = digest_tkey(rdata, digest, arg); break; \
+       case 250: switch (rdata->rdclass) { \
+               case 255: result = digest_any_tsig(rdata, digest, arg); break; \
+               default: use_default = ISC_TRUE; break; \
+               } \
+               break; \
+       default: use_default = ISC_TRUE; break; \
+       }
+
+typedef struct {
+       const char *name;
+       unsigned int flags;
+} typeattr_t;
+static typeattr_t typeattr[] = {
+       { "RESERVED0", DNS_RDATATYPEATTR_RESERVED },
+       { "A", RRTYPE_A_ATTRIBUTES },
+       { "NS", RRTYPE_NS_ATTRIBUTES },
+       { "MD", RRTYPE_MD_ATTRIBUTES },
+       { "MF", RRTYPE_MF_ATTRIBUTES },
+       { "CNAME", RRTYPE_CNAME_ATTRIBUTES },
+       { "SOA", RRTYPE_SOA_ATTRIBUTES },
+       { "MB", RRTYPE_MB_ATTRIBUTES },
+       { "MG", RRTYPE_MG_ATTRIBUTES },
+       { "MR", RRTYPE_MR_ATTRIBUTES },
+       { "NULL", RRTYPE_NULL_ATTRIBUTES },
+       { "WKS", RRTYPE_WKS_ATTRIBUTES },
+       { "PTR", RRTYPE_PTR_ATTRIBUTES },
+       { "HINFO", RRTYPE_HINFO_ATTRIBUTES },
+       { "MINFO", RRTYPE_MINFO_ATTRIBUTES },
+       { "MX", RRTYPE_MX_ATTRIBUTES },
+       { "TXT", RRTYPE_TXT_ATTRIBUTES },
+       { "RP", RRTYPE_RP_ATTRIBUTES },
+       { "AFSDB", RRTYPE_AFSDB_ATTRIBUTES },
+       { "X25", RRTYPE_X25_ATTRIBUTES },
+       { "ISDN", RRTYPE_ISDN_ATTRIBUTES },
+       { "RT", RRTYPE_RT_ATTRIBUTES },
+       { "NSAP", RRTYPE_NSAP_ATTRIBUTES },
+       { "NSAP-PTR", RRTYPE_NSAP_PTR_ATTRIBUTES },
+       { "SIG", RRTYPE_SIG_ATTRIBUTES },
+       { "KEY", RRTYPE_KEY_ATTRIBUTES },
+       { "PX", RRTYPE_PX_ATTRIBUTES },
+       { "GPOS", RRTYPE_GPOS_ATTRIBUTES },
+       { "AAAA", RRTYPE_AAAA_ATTRIBUTES },
+       { "LOC", RRTYPE_LOC_ATTRIBUTES },
+       { "NXT", RRTYPE_NXT_ATTRIBUTES },
+       { "EID", DNS_RDATATYPEATTR_RESERVED },
+       { "NIMLOC", DNS_RDATATYPEATTR_RESERVED },
+       { "SRV", RRTYPE_SRV_ATTRIBUTES },
+       { "ATMA", DNS_RDATATYPEATTR_RESERVED },
+       { "NAPTR", RRTYPE_NAPTR_ATTRIBUTES },
+       { "KX", RRTYPE_KX_ATTRIBUTES },
+       { "CERT", RRTYPE_CERT_ATTRIBUTES },
+       { "A6", RRTYPE_A6_ATTRIBUTES },
+       { "DNAME", RRTYPE_DNAME_ATTRIBUTES },
+       { "TYPE40", DNS_RDATATYPEATTR_UNKNOWN},
+       { "OPT", RRTYPE_OPT_ATTRIBUTES },
+       { "TYPE42", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE43", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE44", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE45", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE46", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE47", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE48", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE49", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE50", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE51", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE52", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE53", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE54", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE55", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE56", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE57", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE58", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE59", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE60", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE61", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE62", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE63", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE64", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE65", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE66", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE67", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE68", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE69", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE70", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE71", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE72", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE73", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE74", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE75", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE76", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE77", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE78", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE79", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE80", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE81", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE82", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE83", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE84", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE85", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE86", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE87", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE88", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE89", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE90", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE91", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE92", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE93", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE94", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE95", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE96", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE97", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE98", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE99", DNS_RDATATYPEATTR_UNKNOWN},
+       { "UINFO", DNS_RDATATYPEATTR_RESERVED },
+       { "UID", DNS_RDATATYPEATTR_RESERVED },
+       { "GID", DNS_RDATATYPEATTR_RESERVED },
+       { "UNSPEC", RRTYPE_UNSPEC_ATTRIBUTES },
+       { "TYPE104", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE105", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE106", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE107", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE108", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE109", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE110", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE111", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE112", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE113", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE114", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE115", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE116", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE117", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE118", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE119", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE120", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE121", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE122", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE123", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE124", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE125", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE126", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE127", DNS_RDATATYPEATTR_UNKNOWN},
+       { "TYPE128", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE129", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE130", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE131", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE132", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE133", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE134", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE135", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE136", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE137", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE138", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE139", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE140", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE141", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE142", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE143", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE144", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE145", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE146", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE147", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE148", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE149", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE150", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE151", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE152", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE153", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE154", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE155", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE156", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE157", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE158", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE159", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE160", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE161", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE162", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE163", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE164", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE165", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE166", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE167", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE168", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE169", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE170", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE171", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE172", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE173", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE174", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE175", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE176", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE177", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE178", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE179", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE180", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE181", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE182", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE183", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE184", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE185", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE186", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE187", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE188", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE189", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE190", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE191", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE192", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE193", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE194", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE195", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE196", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE197", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE198", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE199", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE200", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE201", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE202", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE203", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE204", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE205", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE206", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE207", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE208", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE209", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE210", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE211", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE212", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE213", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE214", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE215", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE216", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE217", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE218", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE219", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE220", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE221", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE222", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE223", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE224", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE225", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE226", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE227", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE228", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE229", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE230", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE231", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE232", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE233", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE234", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE235", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE236", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE237", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE238", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE239", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE240", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE241", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE242", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE243", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE244", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE245", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE246", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE247", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TYPE248", DNS_RDATATYPEATTR_UNKNOWN | DNS_RDATATYPEATTR_META},
+       { "TKEY", RRTYPE_TKEY_ATTRIBUTES },
+       { "TSIG", RRTYPE_TSIG_ATTRIBUTES },
+       { "IXFR", DNS_RDATATYPEATTR_META | DNS_RDATATYPEATTR_QUESTIONONLY },
+       { "AXFR", DNS_RDATATYPEATTR_META | DNS_RDATATYPEATTR_QUESTIONONLY },
+       { "MAILB", DNS_RDATATYPEATTR_META | DNS_RDATATYPEATTR_QUESTIONONLY },
+       { "MAILA", DNS_RDATATYPEATTR_META | DNS_RDATATYPEATTR_QUESTIONONLY },
+       { "ANY", DNS_RDATATYPEATTR_META | DNS_RDATATYPEATTR_QUESTIONONLY }
+};
+#define RDATATYPE_COMPARE(_s, _d, _tn, _n, _tp) \
+       do { \
+               if (sizeof(_s) - 1 == _n && \
+                   strncasecmp(_s,(_tn),(sizeof(_s) - 1)) == 0) { \
+                       if ((typeattr[_d].flags & DNS_RDATATYPEATTR_RESERVED) != 0) \
+                               return (ISC_R_NOTIMPLEMENTED); \
+                       *(_tp) = _d; \
+                       return (ISC_R_SUCCESS); \
+               } \
+       } while (0)
+
+#define RDATATYPE_FROMTEXT_SW(_hash,_typename,_length,_typep) \
+       switch (_hash) { \
+               case 16: \
+                       RDATATYPE_COMPARE("reserved0", 0, _typename, _length, _typep); \
+                       break; \
+               case 34: \
+                       RDATATYPE_COMPARE("a", 1, _typename, _length, _typep); \
+                       break; \
+               case 80: \
+                       RDATATYPE_COMPARE("ns", 2, _typename, _length, _typep); \
+                       break; \
+               case 92: \
+                       RDATATYPE_COMPARE("md", 3, _typename, _length, _typep); \
+                       break; \
+               case 58: \
+                       RDATATYPE_COMPARE("mf", 4, _typename, _length, _typep); \
+                       break; \
+               case 8: \
+                       RDATATYPE_COMPARE("cname", 5, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("mx", 15, _typename, _length, _typep); \
+                       break; \
+               case 182: \
+                       RDATATYPE_COMPARE("soa", 6, _typename, _length, _typep); \
+                       break; \
+               case 126: \
+                       RDATATYPE_COMPARE("mb", 7, _typename, _length, _typep); \
+                       break; \
+               case 169: \
+                       RDATATYPE_COMPARE("mg", 8, _typename, _length, _typep); \
+                       break; \
+               case 110: \
+                       RDATATYPE_COMPARE("mr", 9, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("minfo", 14, _typename, _length, _typep); \
+                       break; \
+               case 24: \
+                       RDATATYPE_COMPARE("null", 10, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("kx", 36, _typename, _length, _typep); \
+                       break; \
+               case 206: \
+                       RDATATYPE_COMPARE("wks", 11, _typename, _length, _typep); \
+                       break; \
+               case 54: \
+                       RDATATYPE_COMPARE("ptr", 12, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("naptr", 35, _typename, _length, _typep); \
+                       break; \
+               case 67: \
+                       RDATATYPE_COMPARE("hinfo", 13, _typename, _length, _typep); \
+                       break; \
+               case 236: \
+                       RDATATYPE_COMPARE("txt", 16, _typename, _length, _typep); \
+                       break; \
+               case 192: \
+                       RDATATYPE_COMPARE("rp", 17, _typename, _length, _typep); \
+                       break; \
+               case 12: \
+                       RDATATYPE_COMPARE("afsdb", 18, _typename, _length, _typep); \
+                       break; \
+               case 119: \
+                       RDATATYPE_COMPARE("x25", 19, _typename, _length, _typep); \
+                       break; \
+               case 214: \
+                       RDATATYPE_COMPARE("isdn", 20, _typename, _length, _typep); \
+                       break; \
+               case 144: \
+                       RDATATYPE_COMPARE("rt", 21, _typename, _length, _typep); \
+                       break; \
+               case 224: \
+                       RDATATYPE_COMPARE("nsap", 22, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("uid", 101, _typename, _length, _typep); \
+                       break; \
+               case 140: \
+                       RDATATYPE_COMPARE("nsap-ptr", 23, _typename, _length, _typep); \
+                       break; \
+               case 122: \
+                       RDATATYPE_COMPARE("sig", 24, _typename, _length, _typep); \
+                       break; \
+               case 254: \
+                       RDATATYPE_COMPARE("key", 25, _typename, _length, _typep); \
+                       break; \
+               case 112: \
+                       RDATATYPE_COMPARE("px", 26, _typename, _length, _typep); \
+                       break; \
+               case 17: \
+                       RDATATYPE_COMPARE("gpos", 27, _typename, _length, _typep); \
+                       break; \
+               case 69: \
+                       RDATATYPE_COMPARE("aaaa", 28, _typename, _length, _typep); \
+                       RDATATYPE_COMPARE("atma", 34, _typename, _length, _typep); \
+                       break; \
+               case 237: \
+                       RDATATYPE_COMPARE("loc", 29, _typename, _length, _typep); \
+                       break; \
+               case 52: \
+                       RDATATYPE_COMPARE("nxt", 30, _typename, _length, _typep); \
+                       break; \
+               case 160: \
+                       RDATATYPE_COMPARE("eid", 31, _typename, _length, _typep); \
+                       break; \
+               case 220: \
+                       RDATATYPE_COMPARE("nimloc", 32, _typename, _length, _typep); \
+                       break; \
+               case 100: \
+                       RDATATYPE_COMPARE("srv", 33, _typename, _length, _typep); \
+                       break; \
+               case 172: \
+                       RDATATYPE_COMPARE("cert", 37, _typename, _length, _typep); \
+                       break; \
+               case 226: \
+                       RDATATYPE_COMPARE("a6", 38, _typename, _length, _typep); \
+                       break; \
+               case 109: \
+                       RDATATYPE_COMPARE("dname", 39, _typename, _length, _typep); \
+                       break; \
+               case 168: \
+                       RDATATYPE_COMPARE("opt", 41, _typename, _length, _typep); \
+                       break; \
+               case 230: \
+                       RDATATYPE_COMPARE("uinfo", 100, _typename, _length, _typep); \
+                       break; \
+               case 104: \
+                       RDATATYPE_COMPARE("gid", 102, _typename, _length, _typep); \
+                       break; \
+               case 145: \
+                       RDATATYPE_COMPARE("unspec", 103, _typename, _length, _typep); \
+                       break; \
+               case 184: \
+                       RDATATYPE_COMPARE("tkey", 249, _typename, _length, _typep); \
+                       break; \
+               case 72: \
+                       RDATATYPE_COMPARE("tsig", 250, _typename, _length, _typep); \
+                       break; \
+               case 138: \
+                       RDATATYPE_COMPARE("ixfr", 251, _typename, _length, _typep); \
+                       break; \
+               case 250: \
+                       RDATATYPE_COMPARE("axfr", 252, _typename, _length, _typep); \
+                       break; \
+               case 164: \
+                       RDATATYPE_COMPARE("mailb", 253, _typename, _length, _typep); \
+                       break; \
+               case 50: \
+                       RDATATYPE_COMPARE("maila", 254, _typename, _length, _typep); \
+                       break; \
+               case 68: \
+                       RDATATYPE_COMPARE("any", 255, _typename, _length, _typep); \
+                       break; \
+       }
+#endif /* DNS_CODE_H */
diff --git a/usr.sbin/named/config.h b/usr.sbin/named/config.h
new file mode 100644 (file)
index 0000000..874034a
--- /dev/null
@@ -0,0 +1,243 @@
+/* config.h.  Generated by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+/*
+ * Copyright (C) 1999-2001, 2003  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: config.h.in,v 1.47.2.4 2003/08/05 00:44:43 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/config.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***
+ *** This file is not to be included by any public header files, because
+ *** it does not get installed.
+ ***/
+
+/* define to `int' if <sys/types.h> doesn't define.  */
+/* #undef ssize_t */
+
+/* define on DEC OSF to enable 4.4BSD style sa_len support */
+/* #undef _SOCKADDR_LEN */
+
+/* define if your system needs pthread_init() before using pthreads */
+/* #undef NEED_PTHREAD_INIT */
+
+/* define if your system has sigwait() */
+/* #undef HAVE_SIGWAIT */
+
+/* define if sigwait() is the UnixWare flavor */
+/* #undef HAVE_UNIXWARE_SIGWAIT */
+
+/* define on Solaris to get sigwait() to work using pthreads semantics */
+/* #undef _POSIX_PTHREAD_SEMANTICS */
+
+/* define if LinuxThreads is in use */
+/* #undef HAVE_LINUXTHREADS */
+
+/* define if sysconf() is available */
+/* #undef HAVE_SYSCONF */
+
+/* define if sysctlbyname() is available */
+#define HAVE_SYSCTLBYNAME 1
+
+/* define if catgets() is available */
+#define HAVE_CATGETS 1
+
+/* define if you have the NET_RT_IFLIST sysctl variable and sys/sysctl.h */
+#define HAVE_IFLIST_SYSCTL 1
+
+/* define if you need to #define _XPG4_2 before including sys/socket.h */
+/* #undef NEED_XPG4_2_BEFORE_SOCKET_H */
+
+/* define if you need to #define _XOPEN_SOURCE_ENTENDED before including
+ * sys/socket.h
+ */
+/* #undef NEED_XSE_BEFORE_SOCKET_H */
+
+/* define if chroot() is available */
+#define HAVE_CHROOT 1
+
+/* define if struct addrinfo exists */
+#define HAVE_ADDRINFO 1
+
+/* define if getaddrinfo() exists */
+#define HAVE_GETADDRINFO 1
+
+/* define if gai_strerror() exists */
+#define HAVE_GAISTRERROR 1
+
+/* define if arc4random() exists */
+#define HAVE_ARC4RANDOM 1
+
+/* define if pthread_setconcurrency() should be called to tell the
+ * OS how many threads we might want to run.
+ */
+/* #undef CALL_PTHREAD_SETCONCURRENCY */
+
+/* define if IPv6 is not disabled */
+#define WANT_IPV6 1
+
+/* define if flockfile() is available */
+#define HAVE_FLOCKFILE 1
+
+/* define if getc_unlocked() is available */
+/* #undef HAVE_GETCUNLOCKED */
+
+/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */
+/* #undef SHUTUP_SPUTAUX */
+#ifdef SHUTUP_SPUTAUX
+struct __sFILE;
+extern __inline int __sputaux(int _c, struct __sFILE *_p);
+#endif
+
+/* Shut up warnings about missing sigwait prototype on BSD/OS 4.0* */
+/* #undef SHUTUP_SIGWAIT */
+#ifdef SHUTUP_SIGWAIT
+int sigwait(const unsigned int *set, int *sig);
+#endif
+
+/* Shut up warnings from gcc -Wcast-qual on BSD/OS 4.1. */
+/* #undef SHUTUP_STDARG_CAST */
+#if defined(SHUTUP_STDARG_CAST) && defined(__GNUC__)
+#include <stdarg.h>            /* Grr.  Must be included *every time*. */
+/*
+ * The silly continuation line is to keep configure from
+ * commenting out the #undef.
+ */
+#undef \
+       va_start
+#define        va_start(ap, last) \
+       do { \
+               union { const void *konst; long *var; } _u; \
+               _u.konst = &(last); \
+               ap = (va_list)(_u.var + __va_words(__typeof(last))); \
+       } while (0)
+#endif /* SHUTUP_STDARG_CAST && __GNUC__ */
+
+/* define if the system has a random number generating device */
+#define PATH_RANDOMDEV "/dev/urandom"
+
+/* define if pthread_attr_getstacksize() is available */
+/* #undef HAVE_PTHREAD_ATTR_GETSTACKSIZE */
+
+/* define if pthread_attr_setstacksize() is available */
+/* #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE */
+
+/* define if you have strerror in the C library. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `c' library (-lc). */
+/* #undef HAVE_LIBC */
+
+/* Define to 1 if you have the `c_r' library (-lc_r). */
+/* #undef HAVE_LIBC_R */
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+/* #undef HAVE_LIBNSL */
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
+/* #undef HAVE_LIBPTHREAD */
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+/* #undef HAVE_LIBSOCKET */
+
+/* Define to 1 if you have the <linux/capability.h> header file. */
+/* #undef HAVE_LINUX_CAPABILITY_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/prctl.h> header file. */
+/* #undef HAVE_SYS_PRCTL_H */
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#define HAVE_SYS_SOCKIO_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#define HAVE_SYS_SYSCTL_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+/* #undef WORDS_BIGENDIAN */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define as `__inline' if that's what the C compiler calls it, or to nothing
+   if it is not supported. */
+/* #undef inline */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef ssize_t */
diff --git a/usr.sbin/named/dns/enumclass.h b/usr.sbin/named/dns/enumclass.h
new file mode 100644 (file)
index 0000000..4683ade
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/* $DragonFly: src/usr.sbin/named/dns/Attic/enumclass.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+#ifndef DNS_ENUMCLASS_H
+#define DNS_ENUMCLASS_H 1
+
+enum {
+       dns_rdataclass_reserved0 = 0,
+#define dns_rdataclass_reserved0 \
+                               ((dns_rdataclass_t)dns_rdataclass_reserved0)
+       dns_rdataclass_in = 1,
+#define dns_rdataclass_in      ((dns_rdataclass_t)dns_rdataclass_in)
+       dns_rdataclass_ch = 3,
+#define dns_rdataclass_ch      ((dns_rdataclass_t)dns_rdataclass_ch)
+       dns_rdataclass_chaos = 3,
+#define dns_rdataclass_chaos   ((dns_rdataclass_t)dns_rdataclass_chaos)
+       dns_rdataclass_hs = 4,
+#define dns_rdataclass_hs      ((dns_rdataclass_t)dns_rdataclass_hs)
+       dns_rdataclass_none = 254,
+#define dns_rdataclass_none    ((dns_rdataclass_t)dns_rdataclass_none)
+       dns_rdataclass_any = 255
+#define dns_rdataclass_any     ((dns_rdataclass_t)dns_rdataclass_any)
+};
+
+#endif /* DNS_ENUMCLASS_H */
diff --git a/usr.sbin/named/dns/enumtype.h b/usr.sbin/named/dns/enumtype.h
new file mode 100644 (file)
index 0000000..09f4d68
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/* $DragonFly: src/usr.sbin/named/dns/Attic/enumtype.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+#ifndef DNS_ENUMTYPE_H
+#define DNS_ENUMTYPE_H 1
+
+enum {
+       dns_rdatatype_none = 0,
+       dns_rdatatype_a = 1,
+       dns_rdatatype_ns = 2,
+       dns_rdatatype_md = 3,
+       dns_rdatatype_mf = 4,
+       dns_rdatatype_cname = 5,
+       dns_rdatatype_soa = 6,
+       dns_rdatatype_mb = 7,
+       dns_rdatatype_mg = 8,
+       dns_rdatatype_mr = 9,
+       dns_rdatatype_null = 10,
+       dns_rdatatype_wks = 11,
+       dns_rdatatype_ptr = 12,
+       dns_rdatatype_hinfo = 13,
+       dns_rdatatype_minfo = 14,
+       dns_rdatatype_mx = 15,
+       dns_rdatatype_txt = 16,
+       dns_rdatatype_rp = 17,
+       dns_rdatatype_afsdb = 18,
+       dns_rdatatype_x25 = 19,
+       dns_rdatatype_isdn = 20,
+       dns_rdatatype_rt = 21,
+       dns_rdatatype_nsap = 22,
+       dns_rdatatype_nsap_ptr = 23,
+       dns_rdatatype_sig = 24,
+       dns_rdatatype_key = 25,
+       dns_rdatatype_px = 26,
+       dns_rdatatype_gpos = 27,
+       dns_rdatatype_aaaa = 28,
+       dns_rdatatype_loc = 29,
+       dns_rdatatype_nxt = 30,
+       dns_rdatatype_srv = 33,
+       dns_rdatatype_naptr = 35,
+       dns_rdatatype_kx = 36,
+       dns_rdatatype_cert = 37,
+       dns_rdatatype_a6 = 38,
+       dns_rdatatype_dname = 39,
+       dns_rdatatype_opt = 41,
+       dns_rdatatype_unspec = 103,
+       dns_rdatatype_tkey = 249,
+       dns_rdatatype_tsig = 250,
+       dns_rdatatype_ixfr = 251,
+       dns_rdatatype_axfr = 252,
+       dns_rdatatype_mailb = 253,
+       dns_rdatatype_maila = 254,
+       dns_rdatatype_any = 255
+};
+
+#define dns_rdatatype_none     ((dns_rdatatype_t)dns_rdatatype_none)
+#define dns_rdatatype_a                ((dns_rdatatype_t)dns_rdatatype_a)
+#define dns_rdatatype_ns       ((dns_rdatatype_t)dns_rdatatype_ns)
+#define dns_rdatatype_md       ((dns_rdatatype_t)dns_rdatatype_md)
+#define dns_rdatatype_mf       ((dns_rdatatype_t)dns_rdatatype_mf)
+#define dns_rdatatype_cname    ((dns_rdatatype_t)dns_rdatatype_cname)
+#define dns_rdatatype_soa      ((dns_rdatatype_t)dns_rdatatype_soa)
+#define dns_rdatatype_mb       ((dns_rdatatype_t)dns_rdatatype_mb)
+#define dns_rdatatype_mg       ((dns_rdatatype_t)dns_rdatatype_mg)
+#define dns_rdatatype_mr       ((dns_rdatatype_t)dns_rdatatype_mr)
+#define dns_rdatatype_null     ((dns_rdatatype_t)dns_rdatatype_null)
+#define dns_rdatatype_wks      ((dns_rdatatype_t)dns_rdatatype_wks)
+#define dns_rdatatype_ptr      ((dns_rdatatype_t)dns_rdatatype_ptr)
+#define dns_rdatatype_hinfo    ((dns_rdatatype_t)dns_rdatatype_hinfo)
+#define dns_rdatatype_minfo    ((dns_rdatatype_t)dns_rdatatype_minfo)
+#define dns_rdatatype_mx       ((dns_rdatatype_t)dns_rdatatype_mx)
+#define dns_rdatatype_txt      ((dns_rdatatype_t)dns_rdatatype_txt)
+#define dns_rdatatype_rp       ((dns_rdatatype_t)dns_rdatatype_rp)
+#define dns_rdatatype_afsdb    ((dns_rdatatype_t)dns_rdatatype_afsdb)
+#define dns_rdatatype_x25      ((dns_rdatatype_t)dns_rdatatype_x25)
+#define dns_rdatatype_isdn     ((dns_rdatatype_t)dns_rdatatype_isdn)
+#define dns_rdatatype_rt       ((dns_rdatatype_t)dns_rdatatype_rt)
+#define dns_rdatatype_nsap     ((dns_rdatatype_t)dns_rdatatype_nsap)
+#define dns_rdatatype_nsap_ptr ((dns_rdatatype_t)dns_rdatatype_nsap_ptr)
+#define dns_rdatatype_sig      ((dns_rdatatype_t)dns_rdatatype_sig)
+#define dns_rdatatype_key      ((dns_rdatatype_t)dns_rdatatype_key)
+#define dns_rdatatype_px       ((dns_rdatatype_t)dns_rdatatype_px)
+#define dns_rdatatype_gpos     ((dns_rdatatype_t)dns_rdatatype_gpos)
+#define dns_rdatatype_aaaa     ((dns_rdatatype_t)dns_rdatatype_aaaa)
+#define dns_rdatatype_loc      ((dns_rdatatype_t)dns_rdatatype_loc)
+#define dns_rdatatype_nxt      ((dns_rdatatype_t)dns_rdatatype_nxt)
+#define dns_rdatatype_srv      ((dns_rdatatype_t)dns_rdatatype_srv)
+#define dns_rdatatype_naptr    ((dns_rdatatype_t)dns_rdatatype_naptr)
+#define dns_rdatatype_kx       ((dns_rdatatype_t)dns_rdatatype_kx)
+#define dns_rdatatype_cert     ((dns_rdatatype_t)dns_rdatatype_cert)
+#define dns_rdatatype_a6       ((dns_rdatatype_t)dns_rdatatype_a6)
+#define dns_rdatatype_dname    ((dns_rdatatype_t)dns_rdatatype_dname)
+#define dns_rdatatype_opt      ((dns_rdatatype_t)dns_rdatatype_opt)
+#define dns_rdatatype_unspec   ((dns_rdatatype_t)dns_rdatatype_unspec)
+#define dns_rdatatype_tkey     ((dns_rdatatype_t)dns_rdatatype_tkey)
+#define dns_rdatatype_tsig     ((dns_rdatatype_t)dns_rdatatype_tsig)
+#define dns_rdatatype_ixfr     ((dns_rdatatype_t)dns_rdatatype_ixfr)
+#define dns_rdatatype_axfr     ((dns_rdatatype_t)dns_rdatatype_axfr)
+#define dns_rdatatype_mailb    ((dns_rdatatype_t)dns_rdatatype_mailb)
+#define dns_rdatatype_maila    ((dns_rdatatype_t)dns_rdatatype_maila)
+#define dns_rdatatype_any      ((dns_rdatatype_t)dns_rdatatype_any)
+
+#endif /* DNS_ENUMTYPE_H */
diff --git a/usr.sbin/named/dns/rdatastruct.h b/usr.sbin/named/dns/rdatastruct.h
new file mode 100644 (file)
index 0000000..73c0401
--- /dev/null
@@ -0,0 +1,1467 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: rdatastructpre.h,v 1.13 2001/01/09 21:53:45 bwelling Exp $ */
+/* $DragonFly: src/usr.sbin/named/dns/Attic/rdatastruct.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef DNS_RDATASTRUCT_H
+#define DNS_RDATASTRUCT_H 1
+
+#include <isc/lang.h>
+#include <isc/sockaddr.h>
+
+#include <dns/name.h>
+#include <dns/types.h>
+
+ISC_LANG_BEGINDECLS
+
+typedef struct dns_rdatacommon {
+       dns_rdataclass_t                        rdclass;
+       dns_rdatatype_t                         rdtype;
+       ISC_LINK(struct dns_rdatacommon)        link;
+} dns_rdatacommon_t;
+
+#define DNS_RDATACOMMON_INIT(_data, _rdtype, _rdclass) \
+       do { \
+               (_data)->common.rdtype = (_rdtype); \
+               (_data)->common.rdclass = (_rdclass); \
+               ISC_LINK_INIT(&(_data)->common, link); \
+       } while (0)
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_A_1_H
+#define IN_1_A_1_H 1
+
+/* $Id: a_1.h,v 1.23 2001/01/09 21:55:04 bwelling Exp $ */
+
+typedef struct dns_rdata_in_a {
+       dns_rdatacommon_t       common;
+       struct in_addr          in_addr;
+} dns_rdata_in_a_t;
+
+#endif /* IN_1_A_1_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef HS_4_A_1_H
+#define HS_4_A_1_H 1
+
+/* $Id: a_1.h,v 1.7 2001/01/09 21:54:59 bwelling Exp $ */
+
+typedef struct dns_rdata_hs_a {
+       dns_rdatacommon_t       common;
+       struct in_addr          in_addr;
+} dns_rdata_hs_a_t;
+
+#endif /* HS_4_A_1_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NS_2_H
+#define GENERIC_NS_2_H 1
+
+/* $Id: ns_2.h,v 1.22 2001/01/09 21:54:27 bwelling Exp $ */
+
+typedef struct dns_rdata_ns {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              name;
+} dns_rdata_ns_t;
+
+
+#endif /* GENERIC_NS_2_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MD_3_H
+#define GENERIC_MD_3_H 1
+
+/* $Id: md_3.h,v 1.23 2001/01/09 21:54:14 bwelling Exp $ */
+
+typedef struct dns_rdata_md {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              md;
+} dns_rdata_md_t;
+
+
+#endif /* GENERIC_MD_3_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MF_4_H
+#define GENERIC_MF_4_H 1
+
+/* $Id: mf_4.h,v 1.21 2001/01/09 21:54:16 bwelling Exp $ */
+
+typedef struct dns_rdata_mf {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mf;
+} dns_rdata_mf_t;
+
+#endif /* GENERIC_MF_4_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: cname_5.h,v 1.23 2001/01/09 21:53:56 bwelling Exp $ */
+
+#ifndef GENERIC_CNAME_5_H
+#define GENERIC_CNAME_5_H 1
+
+typedef struct dns_rdata_cname {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              cname;
+} dns_rdata_cname_t;
+
+#endif /* GENERIC_CNAME_5_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_SOA_6_H
+#define GENERIC_SOA_6_H 1
+
+/* $Id: soa_6.h,v 1.27 2001/07/30 01:09:12 marka Exp $ */
+
+typedef struct dns_rdata_soa {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              origin;
+       dns_name_t              contact;
+       isc_uint32_t            serial;         /* host order */
+       isc_uint32_t            refresh;        /* host order */
+       isc_uint32_t            retry;          /* host order */
+       isc_uint32_t            expire;         /* host order */
+       isc_uint32_t            minimum;        /* host order */
+} dns_rdata_soa_t;
+
+
+#endif /* GENERIC_SOA_6_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MB_7_H
+#define GENERIC_MB_7_H 1
+
+/* $Id: mb_7.h,v 1.22 2001/01/09 21:54:11 bwelling Exp $ */
+
+typedef struct dns_rdata_mb {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mb;
+} dns_rdata_mb_t;
+
+#endif /* GENERIC_MB_7_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MG_8_H
+#define GENERIC_MG_8_H 1
+
+/* $Id: mg_8.h,v 1.21 2001/01/09 21:54:18 bwelling Exp $ */
+
+typedef struct dns_rdata_mg {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mg;
+} dns_rdata_mg_t;
+
+#endif /* GENERIC_MG_8_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MR_9_H
+#define GENERIC_MR_9_H 1
+
+/* $Id: mr_9.h,v 1.21 2001/01/09 21:54:23 bwelling Exp $ */
+
+typedef struct dns_rdata_mr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mr;
+} dns_rdata_mr_t;
+
+#endif /* GENERIC_MR_9_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NULL_10_H
+#define GENERIC_NULL_10_H 1
+
+/* $Id: null_10.h,v 1.20 2001/01/09 21:54:30 bwelling Exp $ */
+
+typedef struct dns_rdata_null {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            length;
+       unsigned char           *data;
+} dns_rdata_null_t;
+
+
+#endif /* GENERIC_NULL_10_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_WKS_11_H
+#define IN_1_WKS_11_H 1
+
+/* $Id: wks_11.h,v 1.19 2001/01/09 21:55:22 bwelling Exp $ */
+
+typedef        struct dns_rdata_in_wks {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       struct in_addr          in_addr;
+       isc_uint16_t            protocol;
+       unsigned char           *map;
+       isc_uint16_t            map_len;
+} dns_rdata_in_wks_t;
+
+#endif /* IN_1_WKS_11_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_PTR_12_H
+#define GENERIC_PTR_12_H 1
+
+/* $Id: ptr_12.h,v 1.22 2001/01/09 21:54:39 bwelling Exp $ */
+
+typedef struct dns_rdata_ptr {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        dns_name_t              ptr;
+} dns_rdata_ptr_t;
+
+#endif /* GENERIC_PTR_12_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_HINFO_13_H
+#define GENERIC_HINFO_13_H 1
+
+/* $Id: hinfo_13.h,v 1.22 2001/01/09 21:54:03 bwelling Exp $ */
+
+typedef struct dns_rdata_hinfo {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *cpu;
+       char                    *os;
+       isc_uint8_t             cpu_len;
+       isc_uint8_t             os_len;
+} dns_rdata_hinfo_t;
+
+#endif /* GENERIC_HINFO_13_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MINFO_14_H
+#define GENERIC_MINFO_14_H 1
+
+/* $Id: minfo_14.h,v 1.22 2001/01/09 21:54:21 bwelling Exp $ */
+
+typedef struct dns_rdata_minfo {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              rmailbox;
+       dns_name_t              emailbox;
+} dns_rdata_minfo_t;
+
+#endif /* GENERIC_MINFO_14_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MX_15_H
+#define GENERIC_MX_15_H 1
+
+/* $Id: mx_15.h,v 1.24 2001/01/09 21:54:25 bwelling Exp $ */
+
+typedef struct dns_rdata_mx {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            pref;
+       dns_name_t              mx;
+} dns_rdata_mx_t;
+
+#endif /* GENERIC_MX_15_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_TXT_16_H
+#define GENERIC_TXT_16_H 1
+
+/* $Id: txt_16.h,v 1.23 2001/01/09 21:54:52 bwelling Exp $ */
+
+typedef struct dns_rdata_txt_string {
+                isc_uint8_t    length;
+                unsigned char   *data;
+} dns_rdata_txt_string_t;
+
+typedef struct dns_rdata_txt {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        unsigned char           *txt;
+        isc_uint16_t            txt_len;
+        /* private */
+        isc_uint16_t            offset;
+} dns_rdata_txt_t;
+
+/*
+ * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
+ * via rdatastructpre.h and rdatastructsuf.h.
+ */
+
+isc_result_t
+dns_rdata_txt_first(dns_rdata_txt_t *);
+
+isc_result_t
+dns_rdata_txt_next(dns_rdata_txt_t *);
+
+isc_result_t
+dns_rdata_txt_current(dns_rdata_txt_t *, dns_rdata_txt_string_t *);
+
+#endif /* GENERIC_TXT_16_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_RP_17_H
+#define GENERIC_RP_17_H 1
+
+/* $Id: rp_17.h,v 1.16 2001/01/09 21:54:41 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_rp {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        dns_name_t              mail;
+        dns_name_t              text;
+} dns_rdata_rp_t;
+
+
+#endif /* GENERIC_RP_17_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_AFSDB_18_H
+#define GENERIC_AFSDB_18_H 1
+
+/* $Id: afsdb_18.h,v 1.15 2001/01/09 21:53:51 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_afsdb {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            subtype;
+       dns_name_t              server;
+} dns_rdata_afsdb_t;
+
+#endif /* GENERIC_AFSDB_18_H */
+
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_X25_19_H
+#define GENERIC_X25_19_H 1
+
+/* $Id: x25_19.h,v 1.13 2001/01/09 21:54:57 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_x25 {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *x25;
+       isc_uint8_t             x25_len;
+} dns_rdata_x25_t;
+
+#endif /* GENERIC_X25_19_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_ISDN_20_H
+#define GENERIC_ISDN_20_H 1
+
+/* $Id: isdn_20.h,v 1.13 2001/01/09 21:54:05 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_isdn {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *isdn;
+       char                    *subaddress;
+       isc_uint8_t             isdn_len;
+       isc_uint8_t             subaddress_len;
+} dns_rdata_isdn_t;
+
+#endif /* GENERIC_ISDN_20_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_RT_21_H
+#define GENERIC_RT_21_H 1
+
+/* $Id: rt_21.h,v 1.16 2001/01/09 21:54:43 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_rt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              host;
+} dns_rdata_rt_t;
+
+#endif /* GENERIC_RT_21_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NSAP_22_H
+#define IN_1_NSAP_22_H 1
+
+/* $Id: nsap_22.h,v 1.13 2001/01/09 21:55:15 bwelling Exp $ */
+
+/* RFC 1706 */
+
+typedef struct dns_rdata_in_nsap {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *nsap;
+       isc_uint16_t            nsap_len;
+} dns_rdata_in_nsap_t;
+
+#endif /* IN_1_NSAP_22_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NSAP_PTR_23_H
+#define IN_1_NSAP_PTR_23_H 1
+
+/* $Id: nsap-ptr_23.h,v 1.14 2001/01/09 21:55:13 bwelling Exp $ */
+
+/* RFC 1348.  Obsoleted in RFC 1706 - use PTR instead. */
+
+typedef struct dns_rdata_in_nsap_ptr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              owner;
+} dns_rdata_in_nsap_ptr_t;
+
+#endif /* IN_1_NSAP_PTR_23_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_SIG_24_H
+#define GENERIC_SIG_24_H 1
+
+/* $Id: sig_24.h,v 1.21 2001/01/09 21:54:45 bwelling Exp $ */
+
+/* RFC 2535 */
+
+typedef struct dns_rdata_sig_t {
+       dns_rdatacommon_t       common;
+       isc_mem_t *             mctx;
+       dns_rdatatype_t         covered;
+       dns_secalg_t            algorithm;
+       isc_uint8_t             labels;
+       isc_uint32_t            originalttl;
+       isc_uint32_t            timeexpire;
+       isc_uint32_t            timesigned;
+       isc_uint16_t            keyid;
+        dns_name_t             signer;
+       isc_uint16_t            siglen;
+       unsigned char *         signature;
+} dns_rdata_sig_t;
+
+
+#endif /* GENERIC_SIG_24_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_KEY_25_H
+#define GENERIC_KEY_25_H 1
+
+/* $Id: key_25.h,v 1.14 2001/01/09 21:54:07 bwelling Exp $ */
+
+/* RFC 2535 */
+
+typedef struct dns_rdata_key_t {
+        dns_rdatacommon_t      common;
+        isc_mem_t *            mctx;
+        isc_uint16_t           flags;
+        isc_uint8_t            protocol;
+        isc_uint8_t            algorithm;
+        isc_uint16_t           datalen;
+        unsigned char *                data;
+} dns_rdata_key_t;
+
+
+#endif /* GENERIC_KEY_25_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_PX_26_H
+#define IN_1_PX_26_H 1
+
+/* $Id: px_26.h,v 1.14 2001/01/09 21:55:17 bwelling Exp $ */
+
+/* RFC 2163 */
+
+typedef struct dns_rdata_in_px {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              map822;
+       dns_name_t              mapx400;
+} dns_rdata_in_px_t;
+
+#endif /* IN_1_PX_26_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_GPOS_27_H
+#define GENERIC_GPOS_27_H 1
+
+/* $Id: gpos_27.h,v 1.12 2001/01/09 21:54:00 bwelling Exp $ */
+
+/* RFC 1712 */
+
+typedef struct dns_rdata_gpos {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *longitude;
+       char                    *latitude;
+       char                    *altitude;
+       isc_uint8_t             long_len;
+       isc_uint8_t             lat_len;
+       isc_uint8_t             alt_len;
+} dns_rdata_gpos_t;
+
+#endif /* GENERIC_GPOS_27_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_AAAA_28_H
+#define IN_1_AAAA_28_H 1
+
+/* $Id: aaaa_28.h,v 1.16 2001/01/09 21:55:06 bwelling Exp $ */
+
+/* RFC 1886 */
+
+typedef struct dns_rdata_in_aaaa {
+       dns_rdatacommon_t       common;
+       struct in6_addr         in6_addr;
+} dns_rdata_in_aaaa_t;
+
+#endif /* IN_1_AAAA_28_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_LOC_29_H
+#define GENERIC_LOC_29_H 1
+
+/* $Id: loc_29.h,v 1.14 2001/01/09 21:54:09 bwelling Exp $ */
+
+/* RFC 1876 */
+
+typedef struct dns_rdata_loc_0 {
+       isc_uint8_t     version;        /* must be first and zero */
+       isc_uint8_t     size;
+       isc_uint8_t     horizontal;
+       isc_uint8_t     vertical;
+       isc_uint32_t    latitude;
+       isc_uint32_t    longitude;
+       isc_uint32_t    altitude;
+} dns_rdata_loc_0_t;
+
+typedef struct dns_rdata_loc {
+       dns_rdatacommon_t       common;
+       union {
+               dns_rdata_loc_0_t v0;
+       } v;
+} dns_rdata_loc_t;
+
+#endif /* GENERIC_LOC_29_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NXT_30_H
+#define GENERIC_NXT_30_H 1
+
+/* $Id: nxt_30.h,v 1.18 2001/01/09 21:54:32 bwelling Exp $ */
+
+/* RFC 2065 */
+
+typedef struct dns_rdata_nxt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              next;
+       unsigned char           *typebits;
+       isc_uint16_t            len;
+} dns_rdata_nxt_t;
+
+#endif /* GENERIC_NXT_30_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_SRV_33_H
+#define IN_1_SRV_33_H 1
+
+/* $Id: srv_33.h,v 1.14 2001/01/09 21:55:20 bwelling Exp $ */
+
+/* Reviewed: Fri Mar 17 13:01:00 PST 2000 by bwelling */
+
+/* RFC 2782 */
+
+typedef struct dns_rdata_in_srv {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            priority;
+       isc_uint16_t            weight;
+       isc_uint16_t            port;
+       dns_name_t              target;
+} dns_rdata_in_srv_t;
+
+#endif /* IN_1_SRV_33_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NAPTR_35_H
+#define IN_1_NAPTR_35_H 1
+
+/* $Id: naptr_35.h,v 1.18 2001/01/18 22:05:41 bwelling Exp $ */
+
+/* RFC 2915 */
+
+typedef struct dns_rdata_in_naptr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            order;
+       isc_uint16_t            preference;
+       char                    *flags;
+       isc_uint8_t             flags_len;
+       char                    *service;
+       isc_uint8_t             service_len;
+       char                    *regexp;
+       isc_uint8_t             regexp_len;
+       dns_name_t              replacement;
+} dns_rdata_in_naptr_t;
+
+#endif /* IN_1_NAPTR_35_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_KX_36_H
+#define IN_1_KX_36_H 1
+
+/* $Id: kx_36.h,v 1.15 2001/01/09 21:55:08 bwelling Exp $ */
+
+/* RFC 2230 */
+
+typedef struct dns_rdata_in_kx {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              exchange;
+} dns_rdata_in_kx_t;
+
+#endif /* IN_1_KX_36_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: cert_37.h,v 1.15 2001/01/09 21:53:53 bwelling Exp $ */
+
+/* RFC 2538 */
+#ifndef GENERIC_CERT_37_H
+#define GENERIC_CERT_37_H 1
+
+typedef struct dns_rdata_cert {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            type;
+       isc_uint16_t            key_tag;
+       isc_uint8_t             algorithm;
+       isc_uint16_t            length;
+       unsigned char           *certificate;
+} dns_rdata_cert_t;
+
+#endif /* GENERIC_CERT_37_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_A6_38_H
+#define IN_1_A6_38_H 1
+
+/* $Id: a6_38.h,v 1.19 2001/07/26 21:34:02 gson Exp $ */
+
+/* RFC2874 */
+
+typedef struct dns_rdata_in_a6 {
+        dns_rdatacommon_t      common;
+       isc_mem_t               *mctx;
+       dns_name_t              prefix;
+       isc_uint8_t             prefixlen;
+       struct in6_addr         in6_addr;
+} dns_rdata_in_a6_t;
+
+#endif /* IN_1_A6_38_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_DNAME_39_H
+#define GENERIC_DNAME_39_H 1
+
+/* $Id: dname_39.h,v 1.16 2001/04/27 21:02:01 gson Exp $ */
+
+/* RFC2672 */
+
+typedef struct dns_rdata_dname {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              dname;
+} dns_rdata_dname_t;
+
+#endif /* GENERIC_DNAME_39_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_OPT_41_H
+#define GENERIC_OPT_41_H 1
+
+/* $Id: opt_41.h,v 1.13 2001/01/09 21:54:34 bwelling Exp $ */
+
+/* RFC 2671 */
+
+typedef struct dns_rdata_opt_opcode {
+               isc_uint16_t    opcode;
+               isc_uint16_t    length;
+               unsigned char   *data;
+} dns_rdata_opt_opcode_t;
+
+typedef struct dns_rdata_opt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *options;
+       isc_uint16_t            length;
+       /* private */
+       isc_uint16_t            offset;
+} dns_rdata_opt_t;
+
+/*
+ * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
+ * via rdatastructpre.h and rdatastructsuf.h.
+ */
+
+isc_result_t
+dns_rdata_opt_first(dns_rdata_opt_t *);
+
+isc_result_t
+dns_rdata_opt_next(dns_rdata_opt_t *);
+
+isc_result_t
+dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
+
+#endif /* GENERIC_OPT_41_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_UNSPEC_103_H
+#define GENERIC_UNSPEC_103_H 1
+
+/* $Id: unspec_103.h,v 1.12 2001/01/09 21:54:54 bwelling Exp $ */
+
+typedef struct dns_rdata_unspec_t {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *data;
+       isc_uint16_t            datalen;
+} dns_rdata_unspec_t;
+
+#endif /* GENERIC_UNSPEC_103_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_TKEY_249_H
+#define GENERIC_TKEY_249_H 1
+
+/* $Id: tkey_249.h,v 1.18 2001/01/09 21:54:50 bwelling Exp $ */
+
+/* draft-ietf-dnsind-tkey-00.txt */
+
+typedef struct dns_rdata_key {
+        dns_rdatacommon_t      common;
+        isc_mem_t *            mctx;
+        dns_name_t             algorithm;
+        isc_uint32_t           inception;
+        isc_uint32_t           expire;
+        isc_uint16_t           mode;
+        isc_uint16_t           error;
+        isc_uint16_t           keylen;
+        unsigned char *                key;
+        isc_uint16_t           otherlen;
+        unsigned char *                other;
+} dns_rdata_tkey_t;
+
+
+#endif /* GENERIC_TKEY_249_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: tsig_250.h,v 1.20 2001/01/09 21:53:49 bwelling Exp $ */
+
+/* RFC 2845 */
+
+#ifndef ANY_255_TSIG_250_H
+#define ANY_255_TSIG_250_H 1
+
+typedef struct dns_rdata_any_tsig {
+       dns_rdatacommon_t       common;
+       isc_mem_t *             mctx;
+       dns_name_t              algorithm;
+       isc_uint64_t            timesigned;
+       isc_uint16_t            fudge;
+       isc_uint16_t            siglen;
+       unsigned char *         signature;
+       isc_uint16_t            originalid;
+       isc_uint16_t            error;
+       isc_uint16_t            otherlen;
+       unsigned char *         other;
+} dns_rdata_any_tsig_t;
+
+#endif /* ANY_255_TSIG_250_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: rdatastructsuf.h,v 1.7 2001/01/09 21:53:46 bwelling Exp $ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* DNS_RDATASTRUCT_H */
diff --git a/usr.sbin/named/include/dns/enumclass.h b/usr.sbin/named/include/dns/enumclass.h
new file mode 100644 (file)
index 0000000..89bef01
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/* $DragonFly: src/usr.sbin/named/include/dns/enumclass.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+#ifndef DNS_ENUMCLASS_H
+#define DNS_ENUMCLASS_H 1
+
+enum {
+       dns_rdataclass_reserved0 = 0,
+#define dns_rdataclass_reserved0 \
+                               ((dns_rdataclass_t)dns_rdataclass_reserved0)
+       dns_rdataclass_in = 1,
+#define dns_rdataclass_in      ((dns_rdataclass_t)dns_rdataclass_in)
+       dns_rdataclass_ch = 3,
+#define dns_rdataclass_ch      ((dns_rdataclass_t)dns_rdataclass_ch)
+       dns_rdataclass_chaos = 3,
+#define dns_rdataclass_chaos   ((dns_rdataclass_t)dns_rdataclass_chaos)
+       dns_rdataclass_hs = 4,
+#define dns_rdataclass_hs      ((dns_rdataclass_t)dns_rdataclass_hs)
+       dns_rdataclass_none = 254,
+#define dns_rdataclass_none    ((dns_rdataclass_t)dns_rdataclass_none)
+       dns_rdataclass_any = 255
+#define dns_rdataclass_any     ((dns_rdataclass_t)dns_rdataclass_any)
+};
+
+#endif /* DNS_ENUMCLASS_H */
diff --git a/usr.sbin/named/include/dns/enumtype.h b/usr.sbin/named/include/dns/enumtype.h
new file mode 100644 (file)
index 0000000..86d9284
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/* $DragonFly: src/usr.sbin/named/include/dns/enumtype.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+#ifndef DNS_ENUMTYPE_H
+#define DNS_ENUMTYPE_H 1
+
+enum {
+       dns_rdatatype_none = 0,
+       dns_rdatatype_a = 1,
+       dns_rdatatype_ns = 2,
+       dns_rdatatype_md = 3,
+       dns_rdatatype_mf = 4,
+       dns_rdatatype_cname = 5,
+       dns_rdatatype_soa = 6,
+       dns_rdatatype_mb = 7,
+       dns_rdatatype_mg = 8,
+       dns_rdatatype_mr = 9,
+       dns_rdatatype_null = 10,
+       dns_rdatatype_wks = 11,
+       dns_rdatatype_ptr = 12,
+       dns_rdatatype_hinfo = 13,
+       dns_rdatatype_minfo = 14,
+       dns_rdatatype_mx = 15,
+       dns_rdatatype_txt = 16,
+       dns_rdatatype_rp = 17,
+       dns_rdatatype_afsdb = 18,
+       dns_rdatatype_x25 = 19,
+       dns_rdatatype_isdn = 20,
+       dns_rdatatype_rt = 21,
+       dns_rdatatype_nsap = 22,
+       dns_rdatatype_nsap_ptr = 23,
+       dns_rdatatype_sig = 24,
+       dns_rdatatype_key = 25,
+       dns_rdatatype_px = 26,
+       dns_rdatatype_gpos = 27,
+       dns_rdatatype_aaaa = 28,
+       dns_rdatatype_loc = 29,
+       dns_rdatatype_nxt = 30,
+       dns_rdatatype_srv = 33,
+       dns_rdatatype_naptr = 35,
+       dns_rdatatype_kx = 36,
+       dns_rdatatype_cert = 37,
+       dns_rdatatype_a6 = 38,
+       dns_rdatatype_dname = 39,
+       dns_rdatatype_opt = 41,
+       dns_rdatatype_unspec = 103,
+       dns_rdatatype_tkey = 249,
+       dns_rdatatype_tsig = 250,
+       dns_rdatatype_ixfr = 251,
+       dns_rdatatype_axfr = 252,
+       dns_rdatatype_mailb = 253,
+       dns_rdatatype_maila = 254,
+       dns_rdatatype_any = 255
+};
+
+#define dns_rdatatype_none     ((dns_rdatatype_t)dns_rdatatype_none)
+#define dns_rdatatype_a                ((dns_rdatatype_t)dns_rdatatype_a)
+#define dns_rdatatype_ns       ((dns_rdatatype_t)dns_rdatatype_ns)
+#define dns_rdatatype_md       ((dns_rdatatype_t)dns_rdatatype_md)
+#define dns_rdatatype_mf       ((dns_rdatatype_t)dns_rdatatype_mf)
+#define dns_rdatatype_cname    ((dns_rdatatype_t)dns_rdatatype_cname)
+#define dns_rdatatype_soa      ((dns_rdatatype_t)dns_rdatatype_soa)
+#define dns_rdatatype_mb       ((dns_rdatatype_t)dns_rdatatype_mb)
+#define dns_rdatatype_mg       ((dns_rdatatype_t)dns_rdatatype_mg)
+#define dns_rdatatype_mr       ((dns_rdatatype_t)dns_rdatatype_mr)
+#define dns_rdatatype_null     ((dns_rdatatype_t)dns_rdatatype_null)
+#define dns_rdatatype_wks      ((dns_rdatatype_t)dns_rdatatype_wks)
+#define dns_rdatatype_ptr      ((dns_rdatatype_t)dns_rdatatype_ptr)
+#define dns_rdatatype_hinfo    ((dns_rdatatype_t)dns_rdatatype_hinfo)
+#define dns_rdatatype_minfo    ((dns_rdatatype_t)dns_rdatatype_minfo)
+#define dns_rdatatype_mx       ((dns_rdatatype_t)dns_rdatatype_mx)
+#define dns_rdatatype_txt      ((dns_rdatatype_t)dns_rdatatype_txt)
+#define dns_rdatatype_rp       ((dns_rdatatype_t)dns_rdatatype_rp)
+#define dns_rdatatype_afsdb    ((dns_rdatatype_t)dns_rdatatype_afsdb)
+#define dns_rdatatype_x25      ((dns_rdatatype_t)dns_rdatatype_x25)
+#define dns_rdatatype_isdn     ((dns_rdatatype_t)dns_rdatatype_isdn)
+#define dns_rdatatype_rt       ((dns_rdatatype_t)dns_rdatatype_rt)
+#define dns_rdatatype_nsap     ((dns_rdatatype_t)dns_rdatatype_nsap)
+#define dns_rdatatype_nsap_ptr ((dns_rdatatype_t)dns_rdatatype_nsap_ptr)
+#define dns_rdatatype_sig      ((dns_rdatatype_t)dns_rdatatype_sig)
+#define dns_rdatatype_key      ((dns_rdatatype_t)dns_rdatatype_key)
+#define dns_rdatatype_px       ((dns_rdatatype_t)dns_rdatatype_px)
+#define dns_rdatatype_gpos     ((dns_rdatatype_t)dns_rdatatype_gpos)
+#define dns_rdatatype_aaaa     ((dns_rdatatype_t)dns_rdatatype_aaaa)
+#define dns_rdatatype_loc      ((dns_rdatatype_t)dns_rdatatype_loc)
+#define dns_rdatatype_nxt      ((dns_rdatatype_t)dns_rdatatype_nxt)
+#define dns_rdatatype_srv      ((dns_rdatatype_t)dns_rdatatype_srv)
+#define dns_rdatatype_naptr    ((dns_rdatatype_t)dns_rdatatype_naptr)
+#define dns_rdatatype_kx       ((dns_rdatatype_t)dns_rdatatype_kx)
+#define dns_rdatatype_cert     ((dns_rdatatype_t)dns_rdatatype_cert)
+#define dns_rdatatype_a6       ((dns_rdatatype_t)dns_rdatatype_a6)
+#define dns_rdatatype_dname    ((dns_rdatatype_t)dns_rdatatype_dname)
+#define dns_rdatatype_opt      ((dns_rdatatype_t)dns_rdatatype_opt)
+#define dns_rdatatype_unspec   ((dns_rdatatype_t)dns_rdatatype_unspec)
+#define dns_rdatatype_tkey     ((dns_rdatatype_t)dns_rdatatype_tkey)
+#define dns_rdatatype_tsig     ((dns_rdatatype_t)dns_rdatatype_tsig)
+#define dns_rdatatype_ixfr     ((dns_rdatatype_t)dns_rdatatype_ixfr)
+#define dns_rdatatype_axfr     ((dns_rdatatype_t)dns_rdatatype_axfr)
+#define dns_rdatatype_mailb    ((dns_rdatatype_t)dns_rdatatype_mailb)
+#define dns_rdatatype_maila    ((dns_rdatatype_t)dns_rdatatype_maila)
+#define dns_rdatatype_any      ((dns_rdatatype_t)dns_rdatatype_any)
+
+#endif /* DNS_ENUMTYPE_H */
diff --git a/usr.sbin/named/include/dns/rdatastruct.h b/usr.sbin/named/include/dns/rdatastruct.h
new file mode 100644 (file)
index 0000000..8d66949
--- /dev/null
@@ -0,0 +1,1467 @@
+/*
+ * Copyright (C) 1998-2004 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/***************
+ ***************
+ ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
+ ***************   DO NOT EDIT!
+ ***************
+ ***************/
+
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: rdatastructpre.h,v 1.13 2001/01/09 21:53:45 bwelling Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/dns/rdatastruct.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef DNS_RDATASTRUCT_H
+#define DNS_RDATASTRUCT_H 1
+
+#include <isc/lang.h>
+#include <isc/sockaddr.h>
+
+#include <dns/name.h>
+#include <dns/types.h>
+
+ISC_LANG_BEGINDECLS
+
+typedef struct dns_rdatacommon {
+       dns_rdataclass_t                        rdclass;
+       dns_rdatatype_t                         rdtype;
+       ISC_LINK(struct dns_rdatacommon)        link;
+} dns_rdatacommon_t;
+
+#define DNS_RDATACOMMON_INIT(_data, _rdtype, _rdclass) \
+       do { \
+               (_data)->common.rdtype = (_rdtype); \
+               (_data)->common.rdclass = (_rdclass); \
+               ISC_LINK_INIT(&(_data)->common, link); \
+       } while (0)
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_A_1_H
+#define IN_1_A_1_H 1
+
+/* $Id: a_1.h,v 1.23 2001/01/09 21:55:04 bwelling Exp $ */
+
+typedef struct dns_rdata_in_a {
+       dns_rdatacommon_t       common;
+       struct in_addr          in_addr;
+} dns_rdata_in_a_t;
+
+#endif /* IN_1_A_1_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef HS_4_A_1_H
+#define HS_4_A_1_H 1
+
+/* $Id: a_1.h,v 1.7 2001/01/09 21:54:59 bwelling Exp $ */
+
+typedef struct dns_rdata_hs_a {
+       dns_rdatacommon_t       common;
+       struct in_addr          in_addr;
+} dns_rdata_hs_a_t;
+
+#endif /* HS_4_A_1_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NS_2_H
+#define GENERIC_NS_2_H 1
+
+/* $Id: ns_2.h,v 1.22 2001/01/09 21:54:27 bwelling Exp $ */
+
+typedef struct dns_rdata_ns {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              name;
+} dns_rdata_ns_t;
+
+
+#endif /* GENERIC_NS_2_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MD_3_H
+#define GENERIC_MD_3_H 1
+
+/* $Id: md_3.h,v 1.23 2001/01/09 21:54:14 bwelling Exp $ */
+
+typedef struct dns_rdata_md {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              md;
+} dns_rdata_md_t;
+
+
+#endif /* GENERIC_MD_3_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MF_4_H
+#define GENERIC_MF_4_H 1
+
+/* $Id: mf_4.h,v 1.21 2001/01/09 21:54:16 bwelling Exp $ */
+
+typedef struct dns_rdata_mf {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mf;
+} dns_rdata_mf_t;
+
+#endif /* GENERIC_MF_4_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: cname_5.h,v 1.23 2001/01/09 21:53:56 bwelling Exp $ */
+
+#ifndef GENERIC_CNAME_5_H
+#define GENERIC_CNAME_5_H 1
+
+typedef struct dns_rdata_cname {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              cname;
+} dns_rdata_cname_t;
+
+#endif /* GENERIC_CNAME_5_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_SOA_6_H
+#define GENERIC_SOA_6_H 1
+
+/* $Id: soa_6.h,v 1.27 2001/07/30 01:09:12 marka Exp $ */
+
+typedef struct dns_rdata_soa {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              origin;
+       dns_name_t              contact;
+       isc_uint32_t            serial;         /* host order */
+       isc_uint32_t            refresh;        /* host order */
+       isc_uint32_t            retry;          /* host order */
+       isc_uint32_t            expire;         /* host order */
+       isc_uint32_t            minimum;        /* host order */
+} dns_rdata_soa_t;
+
+
+#endif /* GENERIC_SOA_6_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MB_7_H
+#define GENERIC_MB_7_H 1
+
+/* $Id: mb_7.h,v 1.22 2001/01/09 21:54:11 bwelling Exp $ */
+
+typedef struct dns_rdata_mb {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mb;
+} dns_rdata_mb_t;
+
+#endif /* GENERIC_MB_7_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MG_8_H
+#define GENERIC_MG_8_H 1
+
+/* $Id: mg_8.h,v 1.21 2001/01/09 21:54:18 bwelling Exp $ */
+
+typedef struct dns_rdata_mg {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mg;
+} dns_rdata_mg_t;
+
+#endif /* GENERIC_MG_8_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MR_9_H
+#define GENERIC_MR_9_H 1
+
+/* $Id: mr_9.h,v 1.21 2001/01/09 21:54:23 bwelling Exp $ */
+
+typedef struct dns_rdata_mr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              mr;
+} dns_rdata_mr_t;
+
+#endif /* GENERIC_MR_9_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NULL_10_H
+#define GENERIC_NULL_10_H 1
+
+/* $Id: null_10.h,v 1.20 2001/01/09 21:54:30 bwelling Exp $ */
+
+typedef struct dns_rdata_null {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            length;
+       unsigned char           *data;
+} dns_rdata_null_t;
+
+
+#endif /* GENERIC_NULL_10_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_WKS_11_H
+#define IN_1_WKS_11_H 1
+
+/* $Id: wks_11.h,v 1.19 2001/01/09 21:55:22 bwelling Exp $ */
+
+typedef        struct dns_rdata_in_wks {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       struct in_addr          in_addr;
+       isc_uint16_t            protocol;
+       unsigned char           *map;
+       isc_uint16_t            map_len;
+} dns_rdata_in_wks_t;
+
+#endif /* IN_1_WKS_11_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_PTR_12_H
+#define GENERIC_PTR_12_H 1
+
+/* $Id: ptr_12.h,v 1.22 2001/01/09 21:54:39 bwelling Exp $ */
+
+typedef struct dns_rdata_ptr {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        dns_name_t              ptr;
+} dns_rdata_ptr_t;
+
+#endif /* GENERIC_PTR_12_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_HINFO_13_H
+#define GENERIC_HINFO_13_H 1
+
+/* $Id: hinfo_13.h,v 1.22 2001/01/09 21:54:03 bwelling Exp $ */
+
+typedef struct dns_rdata_hinfo {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *cpu;
+       char                    *os;
+       isc_uint8_t             cpu_len;
+       isc_uint8_t             os_len;
+} dns_rdata_hinfo_t;
+
+#endif /* GENERIC_HINFO_13_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MINFO_14_H
+#define GENERIC_MINFO_14_H 1
+
+/* $Id: minfo_14.h,v 1.22 2001/01/09 21:54:21 bwelling Exp $ */
+
+typedef struct dns_rdata_minfo {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              rmailbox;
+       dns_name_t              emailbox;
+} dns_rdata_minfo_t;
+
+#endif /* GENERIC_MINFO_14_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_MX_15_H
+#define GENERIC_MX_15_H 1
+
+/* $Id: mx_15.h,v 1.24 2001/01/09 21:54:25 bwelling Exp $ */
+
+typedef struct dns_rdata_mx {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            pref;
+       dns_name_t              mx;
+} dns_rdata_mx_t;
+
+#endif /* GENERIC_MX_15_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_TXT_16_H
+#define GENERIC_TXT_16_H 1
+
+/* $Id: txt_16.h,v 1.23 2001/01/09 21:54:52 bwelling Exp $ */
+
+typedef struct dns_rdata_txt_string {
+                isc_uint8_t    length;
+                unsigned char   *data;
+} dns_rdata_txt_string_t;
+
+typedef struct dns_rdata_txt {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        unsigned char           *txt;
+        isc_uint16_t            txt_len;
+        /* private */
+        isc_uint16_t            offset;
+} dns_rdata_txt_t;
+
+/*
+ * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
+ * via rdatastructpre.h and rdatastructsuf.h.
+ */
+
+isc_result_t
+dns_rdata_txt_first(dns_rdata_txt_t *);
+
+isc_result_t
+dns_rdata_txt_next(dns_rdata_txt_t *);
+
+isc_result_t
+dns_rdata_txt_current(dns_rdata_txt_t *, dns_rdata_txt_string_t *);
+
+#endif /* GENERIC_TXT_16_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_RP_17_H
+#define GENERIC_RP_17_H 1
+
+/* $Id: rp_17.h,v 1.16 2001/01/09 21:54:41 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_rp {
+        dns_rdatacommon_t       common;
+        isc_mem_t               *mctx;
+        dns_name_t              mail;
+        dns_name_t              text;
+} dns_rdata_rp_t;
+
+
+#endif /* GENERIC_RP_17_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_AFSDB_18_H
+#define GENERIC_AFSDB_18_H 1
+
+/* $Id: afsdb_18.h,v 1.15 2001/01/09 21:53:51 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_afsdb {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            subtype;
+       dns_name_t              server;
+} dns_rdata_afsdb_t;
+
+#endif /* GENERIC_AFSDB_18_H */
+
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_X25_19_H
+#define GENERIC_X25_19_H 1
+
+/* $Id: x25_19.h,v 1.13 2001/01/09 21:54:57 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_x25 {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *x25;
+       isc_uint8_t             x25_len;
+} dns_rdata_x25_t;
+
+#endif /* GENERIC_X25_19_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_ISDN_20_H
+#define GENERIC_ISDN_20_H 1
+
+/* $Id: isdn_20.h,v 1.13 2001/01/09 21:54:05 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_isdn {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *isdn;
+       char                    *subaddress;
+       isc_uint8_t             isdn_len;
+       isc_uint8_t             subaddress_len;
+} dns_rdata_isdn_t;
+
+#endif /* GENERIC_ISDN_20_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_RT_21_H
+#define GENERIC_RT_21_H 1
+
+/* $Id: rt_21.h,v 1.16 2001/01/09 21:54:43 bwelling Exp $ */
+
+/* RFC 1183 */
+
+typedef struct dns_rdata_rt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              host;
+} dns_rdata_rt_t;
+
+#endif /* GENERIC_RT_21_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NSAP_22_H
+#define IN_1_NSAP_22_H 1
+
+/* $Id: nsap_22.h,v 1.13 2001/01/09 21:55:15 bwelling Exp $ */
+
+/* RFC 1706 */
+
+typedef struct dns_rdata_in_nsap {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *nsap;
+       isc_uint16_t            nsap_len;
+} dns_rdata_in_nsap_t;
+
+#endif /* IN_1_NSAP_22_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NSAP_PTR_23_H
+#define IN_1_NSAP_PTR_23_H 1
+
+/* $Id: nsap-ptr_23.h,v 1.14 2001/01/09 21:55:13 bwelling Exp $ */
+
+/* RFC 1348.  Obsoleted in RFC 1706 - use PTR instead. */
+
+typedef struct dns_rdata_in_nsap_ptr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              owner;
+} dns_rdata_in_nsap_ptr_t;
+
+#endif /* IN_1_NSAP_PTR_23_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_SIG_24_H
+#define GENERIC_SIG_24_H 1
+
+/* $Id: sig_24.h,v 1.21 2001/01/09 21:54:45 bwelling Exp $ */
+
+/* RFC 2535 */
+
+typedef struct dns_rdata_sig_t {
+       dns_rdatacommon_t       common;
+       isc_mem_t *             mctx;
+       dns_rdatatype_t         covered;
+       dns_secalg_t            algorithm;
+       isc_uint8_t             labels;
+       isc_uint32_t            originalttl;
+       isc_uint32_t            timeexpire;
+       isc_uint32_t            timesigned;
+       isc_uint16_t            keyid;
+        dns_name_t             signer;
+       isc_uint16_t            siglen;
+       unsigned char *         signature;
+} dns_rdata_sig_t;
+
+
+#endif /* GENERIC_SIG_24_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_KEY_25_H
+#define GENERIC_KEY_25_H 1
+
+/* $Id: key_25.h,v 1.14 2001/01/09 21:54:07 bwelling Exp $ */
+
+/* RFC 2535 */
+
+typedef struct dns_rdata_key_t {
+        dns_rdatacommon_t      common;
+        isc_mem_t *            mctx;
+        isc_uint16_t           flags;
+        isc_uint8_t            protocol;
+        isc_uint8_t            algorithm;
+        isc_uint16_t           datalen;
+        unsigned char *                data;
+} dns_rdata_key_t;
+
+
+#endif /* GENERIC_KEY_25_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_PX_26_H
+#define IN_1_PX_26_H 1
+
+/* $Id: px_26.h,v 1.14 2001/01/09 21:55:17 bwelling Exp $ */
+
+/* RFC 2163 */
+
+typedef struct dns_rdata_in_px {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              map822;
+       dns_name_t              mapx400;
+} dns_rdata_in_px_t;
+
+#endif /* IN_1_PX_26_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_GPOS_27_H
+#define GENERIC_GPOS_27_H 1
+
+/* $Id: gpos_27.h,v 1.12 2001/01/09 21:54:00 bwelling Exp $ */
+
+/* RFC 1712 */
+
+typedef struct dns_rdata_gpos {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       char                    *longitude;
+       char                    *latitude;
+       char                    *altitude;
+       isc_uint8_t             long_len;
+       isc_uint8_t             lat_len;
+       isc_uint8_t             alt_len;
+} dns_rdata_gpos_t;
+
+#endif /* GENERIC_GPOS_27_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_AAAA_28_H
+#define IN_1_AAAA_28_H 1
+
+/* $Id: aaaa_28.h,v 1.16 2001/01/09 21:55:06 bwelling Exp $ */
+
+/* RFC 1886 */
+
+typedef struct dns_rdata_in_aaaa {
+       dns_rdatacommon_t       common;
+       struct in6_addr         in6_addr;
+} dns_rdata_in_aaaa_t;
+
+#endif /* IN_1_AAAA_28_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_LOC_29_H
+#define GENERIC_LOC_29_H 1
+
+/* $Id: loc_29.h,v 1.14 2001/01/09 21:54:09 bwelling Exp $ */
+
+/* RFC 1876 */
+
+typedef struct dns_rdata_loc_0 {
+       isc_uint8_t     version;        /* must be first and zero */
+       isc_uint8_t     size;
+       isc_uint8_t     horizontal;
+       isc_uint8_t     vertical;
+       isc_uint32_t    latitude;
+       isc_uint32_t    longitude;
+       isc_uint32_t    altitude;
+} dns_rdata_loc_0_t;
+
+typedef struct dns_rdata_loc {
+       dns_rdatacommon_t       common;
+       union {
+               dns_rdata_loc_0_t v0;
+       } v;
+} dns_rdata_loc_t;
+
+#endif /* GENERIC_LOC_29_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_NXT_30_H
+#define GENERIC_NXT_30_H 1
+
+/* $Id: nxt_30.h,v 1.18 2001/01/09 21:54:32 bwelling Exp $ */
+
+/* RFC 2065 */
+
+typedef struct dns_rdata_nxt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              next;
+       unsigned char           *typebits;
+       isc_uint16_t            len;
+} dns_rdata_nxt_t;
+
+#endif /* GENERIC_NXT_30_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_SRV_33_H
+#define IN_1_SRV_33_H 1
+
+/* $Id: srv_33.h,v 1.14 2001/01/09 21:55:20 bwelling Exp $ */
+
+/* Reviewed: Fri Mar 17 13:01:00 PST 2000 by bwelling */
+
+/* RFC 2782 */
+
+typedef struct dns_rdata_in_srv {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            priority;
+       isc_uint16_t            weight;
+       isc_uint16_t            port;
+       dns_name_t              target;
+} dns_rdata_in_srv_t;
+
+#endif /* IN_1_SRV_33_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_NAPTR_35_H
+#define IN_1_NAPTR_35_H 1
+
+/* $Id: naptr_35.h,v 1.18 2001/01/18 22:05:41 bwelling Exp $ */
+
+/* RFC 2915 */
+
+typedef struct dns_rdata_in_naptr {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            order;
+       isc_uint16_t            preference;
+       char                    *flags;
+       isc_uint8_t             flags_len;
+       char                    *service;
+       isc_uint8_t             service_len;
+       char                    *regexp;
+       isc_uint8_t             regexp_len;
+       dns_name_t              replacement;
+} dns_rdata_in_naptr_t;
+
+#endif /* IN_1_NAPTR_35_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_KX_36_H
+#define IN_1_KX_36_H 1
+
+/* $Id: kx_36.h,v 1.15 2001/01/09 21:55:08 bwelling Exp $ */
+
+/* RFC 2230 */
+
+typedef struct dns_rdata_in_kx {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            preference;
+       dns_name_t              exchange;
+} dns_rdata_in_kx_t;
+
+#endif /* IN_1_KX_36_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: cert_37.h,v 1.15 2001/01/09 21:53:53 bwelling Exp $ */
+
+/* RFC 2538 */
+#ifndef GENERIC_CERT_37_H
+#define GENERIC_CERT_37_H 1
+
+typedef struct dns_rdata_cert {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       isc_uint16_t            type;
+       isc_uint16_t            key_tag;
+       isc_uint8_t             algorithm;
+       isc_uint16_t            length;
+       unsigned char           *certificate;
+} dns_rdata_cert_t;
+
+#endif /* GENERIC_CERT_37_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef IN_1_A6_38_H
+#define IN_1_A6_38_H 1
+
+/* $Id: a6_38.h,v 1.19 2001/07/26 21:34:02 gson Exp $ */
+
+/* RFC2874 */
+
+typedef struct dns_rdata_in_a6 {
+        dns_rdatacommon_t      common;
+       isc_mem_t               *mctx;
+       dns_name_t              prefix;
+       isc_uint8_t             prefixlen;
+       struct in6_addr         in6_addr;
+} dns_rdata_in_a6_t;
+
+#endif /* IN_1_A6_38_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_DNAME_39_H
+#define GENERIC_DNAME_39_H 1
+
+/* $Id: dname_39.h,v 1.16 2001/04/27 21:02:01 gson Exp $ */
+
+/* RFC2672 */
+
+typedef struct dns_rdata_dname {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       dns_name_t              dname;
+} dns_rdata_dname_t;
+
+#endif /* GENERIC_DNAME_39_H */
+/*
+ * Copyright (C) 1998-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_OPT_41_H
+#define GENERIC_OPT_41_H 1
+
+/* $Id: opt_41.h,v 1.13 2001/01/09 21:54:34 bwelling Exp $ */
+
+/* RFC 2671 */
+
+typedef struct dns_rdata_opt_opcode {
+               isc_uint16_t    opcode;
+               isc_uint16_t    length;
+               unsigned char   *data;
+} dns_rdata_opt_opcode_t;
+
+typedef struct dns_rdata_opt {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *options;
+       isc_uint16_t            length;
+       /* private */
+       isc_uint16_t            offset;
+} dns_rdata_opt_t;
+
+/*
+ * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
+ * via rdatastructpre.h and rdatastructsuf.h.
+ */
+
+isc_result_t
+dns_rdata_opt_first(dns_rdata_opt_t *);
+
+isc_result_t
+dns_rdata_opt_next(dns_rdata_opt_t *);
+
+isc_result_t
+dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
+
+#endif /* GENERIC_OPT_41_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_UNSPEC_103_H
+#define GENERIC_UNSPEC_103_H 1
+
+/* $Id: unspec_103.h,v 1.12 2001/01/09 21:54:54 bwelling Exp $ */
+
+typedef struct dns_rdata_unspec_t {
+       dns_rdatacommon_t       common;
+       isc_mem_t               *mctx;
+       unsigned char           *data;
+       isc_uint16_t            datalen;
+} dns_rdata_unspec_t;
+
+#endif /* GENERIC_UNSPEC_103_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef GENERIC_TKEY_249_H
+#define GENERIC_TKEY_249_H 1
+
+/* $Id: tkey_249.h,v 1.18 2001/01/09 21:54:50 bwelling Exp $ */
+
+/* draft-ietf-dnsind-tkey-00.txt */
+
+typedef struct dns_rdata_key {
+        dns_rdatacommon_t      common;
+        isc_mem_t *            mctx;
+        dns_name_t             algorithm;
+        isc_uint32_t           inception;
+        isc_uint32_t           expire;
+        isc_uint16_t           mode;
+        isc_uint16_t           error;
+        isc_uint16_t           keylen;
+        unsigned char *                key;
+        isc_uint16_t           otherlen;
+        unsigned char *                other;
+} dns_rdata_tkey_t;
+
+
+#endif /* GENERIC_TKEY_249_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: tsig_250.h,v 1.20 2001/01/09 21:53:49 bwelling Exp $ */
+
+/* RFC 2845 */
+
+#ifndef ANY_255_TSIG_250_H
+#define ANY_255_TSIG_250_H 1
+
+typedef struct dns_rdata_any_tsig {
+       dns_rdatacommon_t       common;
+       isc_mem_t *             mctx;
+       dns_name_t              algorithm;
+       isc_uint64_t            timesigned;
+       isc_uint16_t            fudge;
+       isc_uint16_t            siglen;
+       unsigned char *         signature;
+       isc_uint16_t            originalid;
+       isc_uint16_t            error;
+       isc_uint16_t            otherlen;
+       unsigned char *         other;
+} dns_rdata_any_tsig_t;
+
+#endif /* ANY_255_TSIG_250_H */
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: rdatastructsuf.h,v 1.7 2001/01/09 21:53:46 bwelling Exp $ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* DNS_RDATASTRUCT_H */
diff --git a/usr.sbin/named/include/isc/os.h b/usr.sbin/named/include/isc/os.h
new file mode 100644 (file)
index 0000000..9dff0aa
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: os.h,v 1.5 2001/01/09 21:57:19 bwelling Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/isc/os.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef ISC_OS_H
+#define ISC_OS_H 1
+
+#include <isc/lang.h>
+
+ISC_LANG_BEGINDECLS
+
+unsigned int
+isc_os_ncpus(void);
+/*
+ * Return the number of CPUs available on the system, or 1 if this cannot
+ * be determined.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_OS_H */
diff --git a/usr.sbin/named/include/isc/platform.h b/usr.sbin/named/include/isc/platform.h
new file mode 100644 (file)
index 0000000..5f4f871
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: platform.h.in,v 1.24.2.1 2001/11/02 00:20:07 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/isc/platform.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef ISC_PLATFORM_H
+#define ISC_PLATFORM_H 1
+
+/*****
+ ***** Platform-dependent defines.
+ *****/
+
+/***
+ *** Network.
+ ***/
+
+/*
+ * Define if this system needs the <netinet/in6.h> header file included
+ * for full IPv6 support (pretty much only UnixWare).
+ */
+#undef ISC_PLATFORM_NEEDNETINETIN6H
+
+/*
+ * Define if this system needs the <netinet6/in6.h> header file included
+ * to support in6_pkinfo (pretty much only BSD/OS).
+ */
+#undef ISC_PLATFORM_NEEDNETINET6IN6H
+
+/*
+ * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
+ * will be defined.
+ */
+#define ISC_PLATFORM_HAVESALEN 1
+
+/*
+ * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
+ * will be defined.
+ */
+#define ISC_PLATFORM_HAVEIPV6 1
+
+/*
+ * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
+ * be defined.
+ */
+#undef ISC_PLATFORM_NEEDIN6ADDRANY
+
+/*
+ * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
+ * will be defined.
+ */
+#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
+
+/*
+ * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
+ * defined.
+ */
+#define ISC_PLATFORM_HAVEIN6PKTINFO 1
+
+/*
+ * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
+ * will be defined.
+ */
+#undef ISC_PLATFORM_HAVEINADDR6
+
+/*
+ * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
+ */
+#undef ISC_PLATFORM_NEEDNTOP
+
+/*
+ * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
+ */
+#define ISC_PLATFORM_NEEDPTON 1
+
+/*
+ * If this system needs inet_aton(), ISC_PLATFORM_NEEDATON will be defined.
+ */
+#undef ISC_PLATFORM_NEEDATON
+
+/*
+ * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
+ */
+#undef ISC_PLATFORM_NEEDPORTT
+
+/*
+ * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
+ */
+#undef ISC_PLATFORM_NEEDSTRSEP
+
+/*
+ * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
+ */
+#define ISC_NET_BSD44MSGHDR 1
+
+/*
+ * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
+ * prevent compiler warnings (such as with gcc on Solaris 2.8).
+ */
+#undef ISC_PLATFORM_BRACEPTHREADONCEINIT
+
+/*
+ * Define on some UnixWare systems to fix erroneous definitions of various
+ * IN6_IS_ADDR_* macros.
+ */
+#undef ISC_PLATFORM_FIXIN6ISADDR
+
+/***
+ *** Printing.
+ ***/
+
+/*
+ * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
+ * will be defined.
+ */
+#undef ISC_PLATFORM_NEEDVSNPRINTF
+
+/*
+ * The printf format string modifier to use with isc_uint64_t values.
+ */
+#define ISC_PLATFORM_QUADFORMAT "ll"
+
+/*
+ * Defined if we are using threads.
+ */
+#undef ISC_PLATFORM_USETHREADS
+
+/*
+ * Defined if unistd.h does not cause fd_set to be delared.
+ */
+#undef ISC_PLATFORM_NEEDSYSSELECTH
+
+/*
+ * Type used for resource limits.
+ */
+#define ISC_PLATFORM_RLIMITTYPE rlim_t
+
+/*
+ * Define if your compiler supports "long long int".
+ */
+#define ISC_PLATFORM_HAVELONGLONG 1
+
+/*
+ * Used to control how extern data is linked; needed for Win32 platforms.
+ */
+#undef ISC_PLATFORM_USEDECLSPEC
+
+#ifndef ISC_PLATFORM_USEDECLSPEC
+#define LIBISC_EXTERNAL_DATA
+#define LIBDNS_EXTERNAL_DATA
+#define LIBISCCC_EXTERNAL_DATA
+#define LIBISCCFG_EXTERNAL_DATA
+#else /* ISC_PLATFORM_USEDECLSPEC */
+#ifdef LIBISC_EXPORTS
+#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBDNS_EXPORTS
+#define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBISCCC_EXPORTS
+#define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBISCCFG_EXPORTS
+#define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#endif /* ISC_PLATFORM_USEDECLSPEC */
+
+/*
+ * Tell emacs to use C mode for this file.
+ *
+ * Local Variables:
+ * mode: c
+ * End:
+ */
+
+#endif /* ISC_PLATFORM_H */
diff --git a/usr.sbin/named/include/lwres/netdb.h b/usr.sbin/named/include/lwres/netdb.h
new file mode 100644 (file)
index 0000000..695fc73
--- /dev/null
@@ -0,0 +1,519 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: netdb.h.in,v 1.34 2001/08/16 06:39:33 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/lwres/netdb.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef LWRES_NETDB_H
+#define LWRES_NETDB_H 1
+
+#include <stddef.h>    /* Required on FreeBSD (and  others?) for size_t. */
+#include <netdb.h>     /* Contractual provision. */
+
+#include <lwres/lang.h>
+
+/*
+ * Define if <netdb.h> does not declare struct addrinfo.
+ */
+#undef ISC_LWRES_NEEDADDRINFO
+
+#ifdef ISC_LWRES_NEEDADDRINFO
+struct addrinfo {
+       int             ai_flags;      /* AI_PASSIVE, AI_CANONNAME */
+       int             ai_family;     /* PF_xxx */
+       int             ai_socktype;   /* SOCK_xxx */
+       int             ai_protocol;   /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+       size_t          ai_addrlen;    /* Length of ai_addr */
+       char            *ai_canonname; /* Canonical name for hostname */
+       struct sockaddr *ai_addr;      /* Binary address */
+       struct addrinfo *ai_next;      /* Next structure in linked list */
+};
+#endif
+
+/*
+ * Undefine all #defines we are interested in as <netdb.h> may or may not have
+ * defined them.
+ */
+
+/*
+ * Error return codes from gethostbyname() and gethostbyaddr()
+ * (left in extern int h_errno).
+ */
+
+#undef NETDB_INTERNAL
+#undef NETDB_SUCCESS
+#undef HOST_NOT_FOUND
+#undef TRY_AGAIN
+#undef NO_RECOVERY
+#undef NO_DATA
+#undef NO_ADDRESS
+
+#define        NETDB_INTERNAL  -1      /* see errno */
+#define        NETDB_SUCCESS   0       /* no problem */
+#define        HOST_NOT_FOUND  1 /* Authoritative Answer Host not found */
+#define        TRY_AGAIN       2 /* Non-Authoritive Host not found, or SERVERFAIL */
+#define        NO_RECOVERY     3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
+#define        NO_DATA         4 /* Valid name, no data record of requested type */
+#define        NO_ADDRESS      NO_DATA         /* no address, look for MX record */
+
+/*
+ * Error return codes from getaddrinfo()
+ */
+
+#undef EAI_ADDRFAMILY
+#undef EAI_AGAIN
+#undef EAI_BADFLAGS
+#undef EAI_FAIL
+#undef EAI_FAMILY
+#undef EAI_MEMORY
+#undef EAI_NODATA
+#undef EAI_NONAME
+#undef EAI_SERVICE
+#undef EAI_SOCKTYPE
+#undef EAI_SYSTEM
+#undef EAI_BADHINTS
+#undef EAI_PROTOCOL
+#undef EAI_MAX
+
+#define        EAI_ADDRFAMILY   1      /* address family for hostname not supported */
+#define        EAI_AGAIN        2      /* temporary failure in name resolution */
+#define        EAI_BADFLAGS     3      /* invalid value for ai_flags */
+#define        EAI_FAIL         4      /* non-recoverable failure in name resolution */
+#define        EAI_FAMILY       5      /* ai_family not supported */
+#define        EAI_MEMORY       6      /* memory allocation failure */
+#define        EAI_NODATA       7      /* no address associated with hostname */
+#define        EAI_NONAME       8      /* hostname nor servname provided, or not known */
+#define        EAI_SERVICE      9      /* servname not supported for ai_socktype */
+#define        EAI_SOCKTYPE    10      /* ai_socktype not supported */
+#define        EAI_SYSTEM      11      /* system error returned in errno */
+#define EAI_BADHINTS   12
+#define EAI_PROTOCOL   13
+#define EAI_MAX                14
+
+/*
+ * Flag values for getaddrinfo()
+ */
+#undef AI_PASSIVE
+#undef AI_CANONNAME
+#undef AI_NUMERICHOST
+
+#define        AI_PASSIVE      0x00000001
+#define        AI_CANONNAME    0x00000002
+#define AI_NUMERICHOST 0x00000004
+
+/*
+ * Flag values for getipnodebyname()
+ */
+#undef AI_V4MAPPED
+#undef AI_ALL
+#undef AI_ADDRCONFIG
+#undef AI_DEFAULT
+
+#define AI_V4MAPPED    0x00000008
+#define AI_ALL         0x00000010
+#define AI_ADDRCONFIG  0x00000020
+#define AI_DEFAULT     (AI_V4MAPPED|AI_ADDRCONFIG)
+
+/*
+ * Constants for lwres_getnameinfo()
+ */
+#undef NI_MAXHOST
+#undef NI_MAXSERV
+
+#define        NI_MAXHOST      1025
+#define        NI_MAXSERV      32
+
+/*
+ * Flag values for lwres_getnameinfo()
+ */
+#undef NI_NOFQDN
+#undef NI_NUMERICHOST
+#undef NI_NAMEREQD
+#undef NI_NUMERICSERV
+#undef NI_DGRAM
+#undef NI_NUMERICSCOPE
+
+#define        NI_NOFQDN       0x00000001
+#define        NI_NUMERICHOST  0x00000002
+#define        NI_NAMEREQD     0x00000004
+#define        NI_NUMERICSERV  0x00000008
+#define        NI_DGRAM        0x00000010
+#define        NI_NUMERICSCOPE 0x00000020      /*2553bis-00*/
+
+/*
+ * Define if <netdb.h> does not declare struct rrsetinfo.
+ */
+#define ISC_LWRES_NEEDRRSETINFO 1
+
+#ifdef ISC_LWRES_NEEDRRSETINFO
+/*
+ * Structures for getrrsetbyname()
+ */
+struct rdatainfo {
+       unsigned int            rdi_length;
+       unsigned char           *rdi_data;
+};
+
+struct rrsetinfo {
+       unsigned int            rri_flags;
+       int                     rri_rdclass;
+       int                     rri_rdtype;
+       unsigned int            rri_ttl;
+       unsigned int            rri_nrdatas;
+       unsigned int            rri_nsigs;
+       char                    *rri_name;
+       struct rdatainfo        *rri_rdatas;
+       struct rdatainfo        *rri_sigs;
+};
+
+/*
+ * Flags for getrrsetbyname()
+ */
+#define RRSET_VALIDATED                0x00000001
+       /* Set was dnssec validated */
+
+/*
+ * Return codes for getrrsetbyname()
+ */
+#define ERRSET_SUCCESS         0
+#define ERRSET_NOMEMORY                1
+#define ERRSET_FAIL            2
+#define ERRSET_INVAL           3
+#define        ERRSET_NONAME           4
+#define        ERRSET_NODATA           5
+#endif
+
+/*
+ * Define to map into lwres_ namespace.
+ */
+
+#define LWRES_NAMESPACE
+
+#ifdef LWRES_NAMESPACE
+
+/*
+ * Use our versions not the ones from the C library.
+ */
+
+#ifdef getnameinfo
+#undef getnameinfo
+#endif
+#define getnameinfo lwres_getnameinfo
+
+#ifdef getaddrinfo
+#undef getaddrinfo
+#endif
+#define getaddrinfo lwres_getaddrinfo
+
+#ifdef freeaddrinfo
+#undef freeaddrinfo
+#endif
+#define freeaddrinfo lwres_freeaddrinfo
+
+#ifdef gai_strerror
+#undef gai_strerror
+#endif
+#define gai_strerror lwres_gai_strerror
+
+#ifdef herror
+#undef herror
+#endif
+#define herror lwres_herror
+
+#ifdef hstrerror
+#undef hstrerror
+#endif
+#define hstrerror lwres_hstrerror
+
+#ifdef getipnodebyname
+#undef getipnodebyname
+#endif
+#define getipnodebyname lwres_getipnodebyname
+
+#ifdef getipnodebyaddr
+#undef getipnodebyaddr
+#endif
+#define getipnodebyaddr lwres_getipnodebyaddr
+
+#ifdef freehostent
+#undef freehostent
+#endif
+#define freehostent lwres_freehostent
+
+#ifdef gethostbyname
+#undef gethostbyname
+#endif
+#define gethostbyname lwres_gethostbyname
+
+#ifdef gethostbyname2
+#undef gethostbyname2
+#endif
+#define gethostbyname2 lwres_gethostbyname2
+
+#ifdef gethostbyaddr
+#undef gethostbyaddr
+#endif
+#define gethostbyaddr lwres_gethostbyaddr
+
+#ifdef gethostent
+#undef gethostent
+#endif
+#define gethostent lwres_gethostent
+
+#ifdef sethostent
+#undef sethostent
+#endif
+#define sethostent lwres_sethostent
+
+#ifdef endhostent
+#undef endhostent
+#endif
+#define endhostent lwres_endhostent
+
+/* #define sethostfile lwres_sethostfile */
+
+#ifdef gethostbyname_r
+#undef gethostbyname_r
+#endif
+#define gethostbyname_r lwres_gethostbyname_r
+
+#ifdef gethostbyaddr_r
+#undef gethostbyaddr_r
+#endif
+#define gethostbyaddr_r lwres_gethostbyaddr_r
+
+#ifdef gethostent_r
+#undef gethostent_r
+#endif
+#define gethostent_r lwres_gethostent_r
+
+#ifdef sethostent_r
+#undef sethostent_r
+#endif
+#define sethostent_r lwres_sethostent_r
+
+#ifdef endhostent_r
+#undef endhostent_r
+#endif
+#define endhostent_r lwres_endhostent_r
+
+#ifdef getrrsetbyname
+#undef getrrsetbyname
+#endif
+#define getrrsetbyname lwres_getrrsetbyname
+
+#ifdef freerrset
+#undef freerrset
+#endif
+#define freerrset lwres_freerrset
+
+#ifdef notyet
+#define getservbyname lwres_getservbyname
+#define getservbyport lwres_getservbyport
+#define getservent lwres_getservent
+#define setservent lwres_setservent
+#define endservent lwres_endservent
+
+#define getservbyname_r lwres_getservbyname_r
+#define getservbyport_r lwres_getservbyport_r
+#define getservent_r lwres_getservent_r
+#define setservent_r lwres_setservent_r
+#define endservent_r lwres_endservent_r
+
+#define getprotobyname lwres_getprotobyname
+#define getprotobynumber lwres_getprotobynumber
+#define getprotoent lwres_getprotoent
+#define setprotoent lwres_setprotoent
+#define endprotoent lwres_endprotoent
+
+#define getprotobyname_r lwres_getprotobyname_r
+#define getprotobynumber_r lwres_getprotobynumber_r
+#define getprotoent_r lwres_getprotoent_r
+#define setprotoent_r lwres_setprotoent_r
+#define endprotoent_r lwres_endprotoent_r
+
+#ifdef getnetbyname
+#undef getnetbyname
+#endif
+#define getnetbyname lwres_getnetbyname
+
+#ifdef getnetbyaddr
+#undef getnetbyaddr
+#endif
+#define getnetbyaddr lwres_getnetbyaddr
+
+#ifdef getnetent
+#undef getnetent
+#endif
+#define getnetent lwres_getnetent
+
+#ifdef setnetent
+#undef setnetent
+#endif
+#define setnetent lwres_setnetent
+
+#ifdef endnetent
+#undef endnetent
+#endif
+#define endnetent lwres_endnetent
+
+
+#ifdef getnetbyname_r
+#undef getnetbyname_r
+#endif
+#define getnetbyname_r lwres_getnetbyname_r
+
+#ifdef getnetbyaddr_r
+#undef getnetbyaddr_r
+#endif
+#define getnetbyaddr_r lwres_getnetbyaddr_r
+
+#ifdef getnetent_r
+#undef getnetent_r
+#endif
+#define getnetent_r lwres_getnetent_r
+
+#ifdef setnetent_r
+#undef setnetent_r
+#endif
+#define setnetent_r lwres_setnetent_r
+
+#ifdef endnetent_r
+#undef endnetent_r
+#endif
+#define endnetent_r lwres_endnetent_r
+#endif /* notyet */
+
+#ifdef h_errno
+#undef h_errno
+#endif
+#define h_errno lwres_h_errno
+
+#endif /* LWRES_NAMESPACE */
+
+LWRES_LANG_BEGINDECLS
+
+extern int lwres_h_errno;
+
+int            lwres_getaddrinfo(const char *, const char *,
+                                const struct addrinfo *, struct addrinfo **);
+int            lwres_getnameinfo(const struct sockaddr *, size_t, char *,
+                                size_t, char *, size_t, int);
+void           lwres_freeaddrinfo(struct addrinfo *);
+char           *lwres_gai_strerror(int);
+
+struct hostent *lwres_gethostbyaddr(const char *, int, int);
+struct hostent *lwres_gethostbyname(const char *);
+struct hostent *lwres_gethostbyname2(const char *, int);
+struct hostent *lwres_gethostent(void);
+struct hostent *lwres_getipnodebyname(const char *, int, int, int *);
+struct hostent *lwres_getipnodebyaddr(const void *, size_t, int, int *);
+void           lwres_endhostent(void);
+void           lwres_sethostent(int);
+/* void                lwres_sethostfile(const char *); */
+void           lwres_freehostent(struct hostent *);
+
+int            lwres_getrrsetbyname(const char *, unsigned int, unsigned int,
+                                    unsigned int, struct rrsetinfo **);
+void           lwres_freerrset(struct rrsetinfo *);
+
+#ifdef notyet
+struct netent  *lwres_getnetbyaddr(unsigned long, int);
+struct netent  *lwres_getnetbyname(const char *);
+struct netent  *lwres_getnetent(void);
+void           lwres_endnetent(void);
+void           lwres_setnetent(int);
+
+struct protoent        *lwres_getprotobyname(const char *);
+struct protoent        *lwres_getprotobynumber(int);
+struct protoent        *lwres_getprotoent(void);
+void           lwres_endprotoent(void);
+void           lwres_setprotoent(int);
+
+struct servent *lwres_getservbyname(const char *, const char *);
+struct servent *lwres_getservbyport(int, const char *);
+struct servent *lwres_getservent(void);
+void           lwres_endservent(void);
+void           lwres_setservent(int);
+#endif /* notyet */
+
+void           lwres_herror(const char *);
+const char     *lwres_hstrerror(int);
+
+
+struct hostent *lwres_gethostbyaddr_r(const char *, int, int, struct hostent *,
+                                       char *, int, int *);
+struct hostent *lwres_gethostbyname_r(const char *, struct hostent *,
+                                       char *, int, int *);
+struct hostent *lwres_gethostent_r(struct hostent *, char *, int, int *);
+void           lwres_sethostent_r(int);
+void           lwres_endhostent_r(void);
+
+#ifdef notyet
+struct netent  *lwres_getnetbyname_r(const char *, struct netent *,
+                                       char *, int);
+struct netent  *lwres_getnetbyaddr_r(long, int, struct netent *,
+                                       char *, int);
+struct netent  *lwres_getnetent_r(struct netent *, char *, int);
+void           lwres_setnetent_r(int);
+void           lwres_endnetent_r(void);
+
+struct protoent        *lwres_getprotobyname_r(const char *,
+                               struct protoent *, char *, int);
+struct protoent        *lwres_getprotobynumber_r(int,
+                               struct protoent *, char *, int);
+struct protoent        *lwres_getprotoent_r(struct protoent *, char *, int);
+void           lwres_setprotoent_r(int);
+void           lwres_endprotoent_r(void);
+
+struct servent *lwres_getservbyname_r(const char *name, const char *,
+                                       struct servent *, char *, int);
+struct servent *lwres_getservbyport_r(int port, const char *,
+                                       struct servent *, char *, int);
+struct servent *lwres_getservent_r(struct servent *, char *, int);
+void           lwres_setservent_r(int);
+void           lwres_endservent_r(void);
+#endif /* notyet */
+
+LWRES_LANG_ENDDECLS
+
+#ifdef notyet
+/* This is nec'y to make this include file properly replace the sun version. */
+#ifdef sun
+#ifdef __GNU_LIBRARY__
+#include <rpc/netdb.h>         /* Required. */
+#else /* !__GNU_LIBRARY__ */
+struct rpcent {
+       char    *r_name;        /* name of server for this rpc program */
+       char    **r_aliases;    /* alias list */
+       int     r_number;       /* rpc program number */
+};
+struct rpcent  *lwres_getrpcbyname();
+struct rpcent  *lwres_getrpcbynumber(),
+struct rpcent  *lwres_getrpcent();
+#endif /* __GNU_LIBRARY__ */
+#endif /* sun */
+#endif /* notyet */
+
+/*
+ * Tell Emacs to use C mode on this file.
+ * Local variables:
+ * mode: c
+ * End:
+ */
+
+#endif /* LWRES_NETDB_H */
diff --git a/usr.sbin/named/include/lwres/platform.h b/usr.sbin/named/include/lwres/platform.h
new file mode 100644 (file)
index 0000000..3339b8b
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: platform.h.in,v 1.12.2.1 2001/11/02 00:20:10 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/lwres/platform.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef LWRES_PLATFORM_H
+#define LWRES_PLATFORM_H 1
+
+/*****
+ ***** Platform-dependent defines.
+ *****/
+
+/***
+ *** Network.
+ ***/
+
+/*
+ * Define if this system needs the <netinet/in6.h> header file for IPv6.
+ */
+#undef LWRES_PLATFORM_NEEDNETINETIN6H
+
+/*
+ * Define if this system needs the <netinet6/in6.h> header file for IPv6.
+ */
+#undef LWRES_PLATFORM_NEEDNETINET6IN6H
+
+/*
+ * If sockaddrs on this system have an sa_len field, LWRES_PLATFORM_HAVESALEN
+ * will be defined.
+ */
+#define LWRES_PLATFORM_HAVESALEN 1
+
+/*
+ * If this system has the IPv6 structure definitions, LWRES_PLATFORM_HAVEIPV6
+ * will be defined.
+ */
+#define LWRES_PLATFORM_HAVEIPV6 1
+
+/*
+ * If this system is missing in6addr_any, LWRES_PLATFORM_NEEDIN6ADDRANY will
+ * be defined.
+ */
+#undef LWRES_PLATFORM_NEEDIN6ADDRANY
+
+/*
+ * If this system is missing in6addr_loopback, 
+ * LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK will be defined.
+ */
+#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK
+
+/*
+ * If this system has in_addr6, rather than in6_addr,
+ * LWRES_PLATFORM_HAVEINADDR6 will be defined.
+ */
+#undef LWRES_PLATFORM_HAVEINADDR6
+
+/*
+ * Defined if unistd.h does not cause fd_set to be delared.
+ */
+#undef LWRES_PLATFORM_NEEDSYSSELECTH
+
+/*
+ * Used to control how extern data is linked; needed for Win32 platforms.
+ */
+#undef LWRES_PLATFORM_USEDECLSPEC
+
+#ifndef LWRES_PLATFORM_USEDECLSPEC
+#define LIBLWRES_EXTERNAL_DATA
+#else
+#ifdef LIBLWRES_EXPORTS
+#define LIBLWRES_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBLWRES_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#endif
+
+#endif /* LWRES_PLATFORM_H */
diff --git a/usr.sbin/named/include/named/os.h b/usr.sbin/named/include/named/os.h
new file mode 100644 (file)
index 0000000..32e060f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 1999-2002  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: os.h,v 1.14.2.2 2002/08/05 06:57:03 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/include/named/os.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef NS_OS_H
+#define NS_OS_H 1
+
+#include <isc/types.h>
+
+void
+ns_os_init(const char *progname);
+
+void
+ns_os_daemonize(void);
+
+void
+ns_os_chroot(const char *root);
+
+void
+ns_os_inituserinfo(const char *username);
+
+void
+ns_os_changeuser(void);
+
+void
+ns_os_minprivs(void);
+
+void
+ns_os_writepidfile(const char *filename, isc_boolean_t first_time);
+
+void
+ns_os_shutdown(void);
+
+#endif /* NS_OS_H */
diff --git a/usr.sbin/named/isc/os.h b/usr.sbin/named/isc/os.h
new file mode 100644 (file)
index 0000000..0f98487
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: os.h,v 1.5 2001/01/09 21:57:19 bwelling Exp $ */
+/* $DragonFly: src/usr.sbin/named/isc/Attic/os.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef ISC_OS_H
+#define ISC_OS_H 1
+
+#include <isc/lang.h>
+
+ISC_LANG_BEGINDECLS
+
+unsigned int
+isc_os_ncpus(void);
+/*
+ * Return the number of CPUs available on the system, or 1 if this cannot
+ * be determined.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_OS_H */
diff --git a/usr.sbin/named/isc/platform.h b/usr.sbin/named/isc/platform.h
new file mode 100644 (file)
index 0000000..3aee93c
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 1999-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: platform.h.in,v 1.24.2.1 2001/11/02 00:20:07 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/isc/Attic/platform.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef ISC_PLATFORM_H
+#define ISC_PLATFORM_H 1
+
+/*****
+ ***** Platform-dependent defines.
+ *****/
+
+/***
+ *** Network.
+ ***/
+
+/*
+ * Define if this system needs the <netinet/in6.h> header file included
+ * for full IPv6 support (pretty much only UnixWare).
+ */
+#undef ISC_PLATFORM_NEEDNETINETIN6H
+
+/*
+ * Define if this system needs the <netinet6/in6.h> header file included
+ * to support in6_pkinfo (pretty much only BSD/OS).
+ */
+#undef ISC_PLATFORM_NEEDNETINET6IN6H
+
+/*
+ * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
+ * will be defined.
+ */
+#define ISC_PLATFORM_HAVESALEN 1
+
+/*
+ * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
+ * will be defined.
+ */
+#define ISC_PLATFORM_HAVEIPV6 1
+
+/*
+ * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
+ * be defined.
+ */
+#undef ISC_PLATFORM_NEEDIN6ADDRANY
+
+/*
+ * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
+ * will be defined.
+ */
+#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
+
+/*
+ * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
+ * defined.
+ */
+#define ISC_PLATFORM_HAVEIN6PKTINFO 1
+
+/*
+ * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
+ * will be defined.
+ */
+#undef ISC_PLATFORM_HAVEINADDR6
+
+/*
+ * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
+ */
+#undef ISC_PLATFORM_NEEDNTOP
+
+/*
+ * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
+ */
+#define ISC_PLATFORM_NEEDPTON 1
+
+/*
+ * If this system needs inet_aton(), ISC_PLATFORM_NEEDATON will be defined.
+ */
+#undef ISC_PLATFORM_NEEDATON
+
+/*
+ * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
+ */
+#undef ISC_PLATFORM_NEEDPORTT
+
+/*
+ * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
+ */
+#undef ISC_PLATFORM_NEEDSTRSEP
+
+/*
+ * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
+ */
+#define ISC_NET_BSD44MSGHDR 1
+
+/*
+ * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
+ * prevent compiler warnings (such as with gcc on Solaris 2.8).
+ */
+#undef ISC_PLATFORM_BRACEPTHREADONCEINIT
+
+/*
+ * Define on some UnixWare systems to fix erroneous definitions of various
+ * IN6_IS_ADDR_* macros.
+ */
+#undef ISC_PLATFORM_FIXIN6ISADDR
+
+/***
+ *** Printing.
+ ***/
+
+/*
+ * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
+ * will be defined.
+ */
+#undef ISC_PLATFORM_NEEDVSNPRINTF
+
+/*
+ * The printf format string modifier to use with isc_uint64_t values.
+ */
+#define ISC_PLATFORM_QUADFORMAT "ll"
+
+/*
+ * Defined if we are using threads.
+ */
+#undef ISC_PLATFORM_USETHREADS
+
+/*
+ * Defined if unistd.h does not cause fd_set to be delared.
+ */
+#undef ISC_PLATFORM_NEEDSYSSELECTH
+
+/*
+ * Type used for resource limits.
+ */
+#define ISC_PLATFORM_RLIMITTYPE rlim_t
+
+/*
+ * Define if your compiler supports "long long int".
+ */
+#define ISC_PLATFORM_HAVELONGLONG 1
+
+/*
+ * Used to control how extern data is linked; needed for Win32 platforms.
+ */
+#undef ISC_PLATFORM_USEDECLSPEC
+
+#ifndef ISC_PLATFORM_USEDECLSPEC
+#define LIBISC_EXTERNAL_DATA
+#define LIBDNS_EXTERNAL_DATA
+#define LIBISCCC_EXTERNAL_DATA
+#define LIBISCCFG_EXTERNAL_DATA
+#else /* ISC_PLATFORM_USEDECLSPEC */
+#ifdef LIBISC_EXPORTS
+#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBDNS_EXPORTS
+#define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBISCCC_EXPORTS
+#define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#ifdef LIBISCCFG_EXPORTS
+#define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#endif /* ISC_PLATFORM_USEDECLSPEC */
+
+/*
+ * Tell emacs to use C mode for this file.
+ *
+ * Local Variables:
+ * mode: c
+ * End:
+ */
+
+#endif /* ISC_PLATFORM_H */
diff --git a/usr.sbin/named/lwres/netdb.h b/usr.sbin/named/lwres/netdb.h
new file mode 100644 (file)
index 0000000..db87298
--- /dev/null
@@ -0,0 +1,519 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: netdb.h.in,v 1.34 2001/08/16 06:39:33 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/lwres/Attic/netdb.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef LWRES_NETDB_H
+#define LWRES_NETDB_H 1
+
+#include <stddef.h>    /* Required on FreeBSD (and  others?) for size_t. */
+#include <netdb.h>     /* Contractual provision. */
+
+#include <lwres/lang.h>
+
+/*
+ * Define if <netdb.h> does not declare struct addrinfo.
+ */
+#undef ISC_LWRES_NEEDADDRINFO
+
+#ifdef ISC_LWRES_NEEDADDRINFO
+struct addrinfo {
+       int             ai_flags;      /* AI_PASSIVE, AI_CANONNAME */
+       int             ai_family;     /* PF_xxx */
+       int             ai_socktype;   /* SOCK_xxx */
+       int             ai_protocol;   /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+       size_t          ai_addrlen;    /* Length of ai_addr */
+       char            *ai_canonname; /* Canonical name for hostname */
+       struct sockaddr *ai_addr;      /* Binary address */
+       struct addrinfo *ai_next;      /* Next structure in linked list */
+};
+#endif
+
+/*
+ * Undefine all #defines we are interested in as <netdb.h> may or may not have
+ * defined them.
+ */
+
+/*
+ * Error return codes from gethostbyname() and gethostbyaddr()
+ * (left in extern int h_errno).
+ */
+
+#undef NETDB_INTERNAL
+#undef NETDB_SUCCESS
+#undef HOST_NOT_FOUND
+#undef TRY_AGAIN
+#undef NO_RECOVERY
+#undef NO_DATA
+#undef NO_ADDRESS
+
+#define        NETDB_INTERNAL  -1      /* see errno */
+#define        NETDB_SUCCESS   0       /* no problem */
+#define        HOST_NOT_FOUND  1 /* Authoritative Answer Host not found */
+#define        TRY_AGAIN       2 /* Non-Authoritive Host not found, or SERVERFAIL */
+#define        NO_RECOVERY     3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
+#define        NO_DATA         4 /* Valid name, no data record of requested type */
+#define        NO_ADDRESS      NO_DATA         /* no address, look for MX record */
+
+/*
+ * Error return codes from getaddrinfo()
+ */
+
+#undef EAI_ADDRFAMILY
+#undef EAI_AGAIN
+#undef EAI_BADFLAGS
+#undef EAI_FAIL
+#undef EAI_FAMILY
+#undef EAI_MEMORY
+#undef EAI_NODATA
+#undef EAI_NONAME
+#undef EAI_SERVICE
+#undef EAI_SOCKTYPE
+#undef EAI_SYSTEM
+#undef EAI_BADHINTS
+#undef EAI_PROTOCOL
+#undef EAI_MAX
+
+#define        EAI_ADDRFAMILY   1      /* address family for hostname not supported */
+#define        EAI_AGAIN        2      /* temporary failure in name resolution */
+#define        EAI_BADFLAGS     3      /* invalid value for ai_flags */
+#define        EAI_FAIL         4      /* non-recoverable failure in name resolution */
+#define        EAI_FAMILY       5      /* ai_family not supported */
+#define        EAI_MEMORY       6      /* memory allocation failure */
+#define        EAI_NODATA       7      /* no address associated with hostname */
+#define        EAI_NONAME       8      /* hostname nor servname provided, or not known */
+#define        EAI_SERVICE      9      /* servname not supported for ai_socktype */
+#define        EAI_SOCKTYPE    10      /* ai_socktype not supported */
+#define        EAI_SYSTEM      11      /* system error returned in errno */
+#define EAI_BADHINTS   12
+#define EAI_PROTOCOL   13
+#define EAI_MAX                14
+
+/*
+ * Flag values for getaddrinfo()
+ */
+#undef AI_PASSIVE
+#undef AI_CANONNAME
+#undef AI_NUMERICHOST
+
+#define        AI_PASSIVE      0x00000001
+#define        AI_CANONNAME    0x00000002
+#define AI_NUMERICHOST 0x00000004
+
+/*
+ * Flag values for getipnodebyname()
+ */
+#undef AI_V4MAPPED
+#undef AI_ALL
+#undef AI_ADDRCONFIG
+#undef AI_DEFAULT
+
+#define AI_V4MAPPED    0x00000008
+#define AI_ALL         0x00000010
+#define AI_ADDRCONFIG  0x00000020
+#define AI_DEFAULT     (AI_V4MAPPED|AI_ADDRCONFIG)
+
+/*
+ * Constants for lwres_getnameinfo()
+ */
+#undef NI_MAXHOST
+#undef NI_MAXSERV
+
+#define        NI_MAXHOST      1025
+#define        NI_MAXSERV      32
+
+/*
+ * Flag values for lwres_getnameinfo()
+ */
+#undef NI_NOFQDN
+#undef NI_NUMERICHOST
+#undef NI_NAMEREQD
+#undef NI_NUMERICSERV
+#undef NI_DGRAM
+#undef NI_NUMERICSCOPE
+
+#define        NI_NOFQDN       0x00000001
+#define        NI_NUMERICHOST  0x00000002
+#define        NI_NAMEREQD     0x00000004
+#define        NI_NUMERICSERV  0x00000008
+#define        NI_DGRAM        0x00000010
+#define        NI_NUMERICSCOPE 0x00000020      /*2553bis-00*/
+
+/*
+ * Define if <netdb.h> does not declare struct rrsetinfo.
+ */
+#define ISC_LWRES_NEEDRRSETINFO 1
+
+#ifdef ISC_LWRES_NEEDRRSETINFO
+/*
+ * Structures for getrrsetbyname()
+ */
+struct rdatainfo {
+       unsigned int            rdi_length;
+       unsigned char           *rdi_data;
+};
+
+struct rrsetinfo {
+       unsigned int            rri_flags;
+       int                     rri_rdclass;
+       int                     rri_rdtype;
+       unsigned int            rri_ttl;
+       unsigned int            rri_nrdatas;
+       unsigned int            rri_nsigs;
+       char                    *rri_name;
+       struct rdatainfo        *rri_rdatas;
+       struct rdatainfo        *rri_sigs;
+};
+
+/*
+ * Flags for getrrsetbyname()
+ */
+#define RRSET_VALIDATED                0x00000001
+       /* Set was dnssec validated */
+
+/*
+ * Return codes for getrrsetbyname()
+ */
+#define ERRSET_SUCCESS         0
+#define ERRSET_NOMEMORY                1
+#define ERRSET_FAIL            2
+#define ERRSET_INVAL           3
+#define        ERRSET_NONAME           4
+#define        ERRSET_NODATA           5
+#endif
+
+/*
+ * Define to map into lwres_ namespace.
+ */
+
+#define LWRES_NAMESPACE
+
+#ifdef LWRES_NAMESPACE
+
+/*
+ * Use our versions not the ones from the C library.
+ */
+
+#ifdef getnameinfo
+#undef getnameinfo
+#endif
+#define getnameinfo lwres_getnameinfo
+
+#ifdef getaddrinfo
+#undef getaddrinfo
+#endif
+#define getaddrinfo lwres_getaddrinfo
+
+#ifdef freeaddrinfo
+#undef freeaddrinfo
+#endif
+#define freeaddrinfo lwres_freeaddrinfo
+
+#ifdef gai_strerror
+#undef gai_strerror
+#endif
+#define gai_strerror lwres_gai_strerror
+
+#ifdef herror
+#undef herror
+#endif
+#define herror lwres_herror
+
+#ifdef hstrerror
+#undef hstrerror
+#endif
+#define hstrerror lwres_hstrerror
+
+#ifdef getipnodebyname
+#undef getipnodebyname
+#endif
+#define getipnodebyname lwres_getipnodebyname
+
+#ifdef getipnodebyaddr
+#undef getipnodebyaddr
+#endif
+#define getipnodebyaddr lwres_getipnodebyaddr
+
+#ifdef freehostent
+#undef freehostent
+#endif
+#define freehostent lwres_freehostent
+
+#ifdef gethostbyname
+#undef gethostbyname
+#endif
+#define gethostbyname lwres_gethostbyname
+
+#ifdef gethostbyname2
+#undef gethostbyname2
+#endif
+#define gethostbyname2 lwres_gethostbyname2
+
+#ifdef gethostbyaddr
+#undef gethostbyaddr
+#endif
+#define gethostbyaddr lwres_gethostbyaddr
+
+#ifdef gethostent
+#undef gethostent
+#endif
+#define gethostent lwres_gethostent
+
+#ifdef sethostent
+#undef sethostent
+#endif
+#define sethostent lwres_sethostent
+
+#ifdef endhostent
+#undef endhostent
+#endif
+#define endhostent lwres_endhostent
+
+/* #define sethostfile lwres_sethostfile */
+
+#ifdef gethostbyname_r
+#undef gethostbyname_r
+#endif
+#define gethostbyname_r lwres_gethostbyname_r
+
+#ifdef gethostbyaddr_r
+#undef gethostbyaddr_r
+#endif
+#define gethostbyaddr_r lwres_gethostbyaddr_r
+
+#ifdef gethostent_r
+#undef gethostent_r
+#endif
+#define gethostent_r lwres_gethostent_r
+
+#ifdef sethostent_r
+#undef sethostent_r
+#endif
+#define sethostent_r lwres_sethostent_r
+
+#ifdef endhostent_r
+#undef endhostent_r
+#endif
+#define endhostent_r lwres_endhostent_r
+
+#ifdef getrrsetbyname
+#undef getrrsetbyname
+#endif
+#define getrrsetbyname lwres_getrrsetbyname
+
+#ifdef freerrset
+#undef freerrset
+#endif
+#define freerrset lwres_freerrset
+
+#ifdef notyet
+#define getservbyname lwres_getservbyname
+#define getservbyport lwres_getservbyport
+#define getservent lwres_getservent
+#define setservent lwres_setservent
+#define endservent lwres_endservent
+
+#define getservbyname_r lwres_getservbyname_r
+#define getservbyport_r lwres_getservbyport_r
+#define getservent_r lwres_getservent_r
+#define setservent_r lwres_setservent_r
+#define endservent_r lwres_endservent_r
+
+#define getprotobyname lwres_getprotobyname
+#define getprotobynumber lwres_getprotobynumber
+#define getprotoent lwres_getprotoent
+#define setprotoent lwres_setprotoent
+#define endprotoent lwres_endprotoent
+
+#define getprotobyname_r lwres_getprotobyname_r
+#define getprotobynumber_r lwres_getprotobynumber_r
+#define getprotoent_r lwres_getprotoent_r
+#define setprotoent_r lwres_setprotoent_r
+#define endprotoent_r lwres_endprotoent_r
+
+#ifdef getnetbyname
+#undef getnetbyname
+#endif
+#define getnetbyname lwres_getnetbyname
+
+#ifdef getnetbyaddr
+#undef getnetbyaddr
+#endif
+#define getnetbyaddr lwres_getnetbyaddr
+
+#ifdef getnetent
+#undef getnetent
+#endif
+#define getnetent lwres_getnetent
+
+#ifdef setnetent
+#undef setnetent
+#endif
+#define setnetent lwres_setnetent
+
+#ifdef endnetent
+#undef endnetent
+#endif
+#define endnetent lwres_endnetent
+
+
+#ifdef getnetbyname_r
+#undef getnetbyname_r
+#endif
+#define getnetbyname_r lwres_getnetbyname_r
+
+#ifdef getnetbyaddr_r
+#undef getnetbyaddr_r
+#endif
+#define getnetbyaddr_r lwres_getnetbyaddr_r
+
+#ifdef getnetent_r
+#undef getnetent_r
+#endif
+#define getnetent_r lwres_getnetent_r
+
+#ifdef setnetent_r
+#undef setnetent_r
+#endif
+#define setnetent_r lwres_setnetent_r
+
+#ifdef endnetent_r
+#undef endnetent_r
+#endif
+#define endnetent_r lwres_endnetent_r
+#endif /* notyet */
+
+#ifdef h_errno
+#undef h_errno
+#endif
+#define h_errno lwres_h_errno
+
+#endif /* LWRES_NAMESPACE */
+
+LWRES_LANG_BEGINDECLS
+
+extern int lwres_h_errno;
+
+int            lwres_getaddrinfo(const char *, const char *,
+                                const struct addrinfo *, struct addrinfo **);
+int            lwres_getnameinfo(const struct sockaddr *, size_t, char *,
+                                size_t, char *, size_t, int);
+void           lwres_freeaddrinfo(struct addrinfo *);
+char           *lwres_gai_strerror(int);
+
+struct hostent *lwres_gethostbyaddr(const char *, int, int);
+struct hostent *lwres_gethostbyname(const char *);
+struct hostent *lwres_gethostbyname2(const char *, int);
+struct hostent *lwres_gethostent(void);
+struct hostent *lwres_getipnodebyname(const char *, int, int, int *);
+struct hostent *lwres_getipnodebyaddr(const void *, size_t, int, int *);
+void           lwres_endhostent(void);
+void           lwres_sethostent(int);
+/* void                lwres_sethostfile(const char *); */
+void           lwres_freehostent(struct hostent *);
+
+int            lwres_getrrsetbyname(const char *, unsigned int, unsigned int,
+                                    unsigned int, struct rrsetinfo **);
+void           lwres_freerrset(struct rrsetinfo *);
+
+#ifdef notyet
+struct netent  *lwres_getnetbyaddr(unsigned long, int);
+struct netent  *lwres_getnetbyname(const char *);
+struct netent  *lwres_getnetent(void);
+void           lwres_endnetent(void);
+void           lwres_setnetent(int);
+
+struct protoent        *lwres_getprotobyname(const char *);
+struct protoent        *lwres_getprotobynumber(int);
+struct protoent        *lwres_getprotoent(void);
+void           lwres_endprotoent(void);
+void           lwres_setprotoent(int);
+
+struct servent *lwres_getservbyname(const char *, const char *);
+struct servent *lwres_getservbyport(int, const char *);
+struct servent *lwres_getservent(void);
+void           lwres_endservent(void);
+void           lwres_setservent(int);
+#endif /* notyet */
+
+void           lwres_herror(const char *);
+const char     *lwres_hstrerror(int);
+
+
+struct hostent *lwres_gethostbyaddr_r(const char *, int, int, struct hostent *,
+                                       char *, int, int *);
+struct hostent *lwres_gethostbyname_r(const char *, struct hostent *,
+                                       char *, int, int *);
+struct hostent *lwres_gethostent_r(struct hostent *, char *, int, int *);
+void           lwres_sethostent_r(int);
+void           lwres_endhostent_r(void);
+
+#ifdef notyet
+struct netent  *lwres_getnetbyname_r(const char *, struct netent *,
+                                       char *, int);
+struct netent  *lwres_getnetbyaddr_r(long, int, struct netent *,
+                                       char *, int);
+struct netent  *lwres_getnetent_r(struct netent *, char *, int);
+void           lwres_setnetent_r(int);
+void           lwres_endnetent_r(void);
+
+struct protoent        *lwres_getprotobyname_r(const char *,
+                               struct protoent *, char *, int);
+struct protoent        *lwres_getprotobynumber_r(int,
+                               struct protoent *, char *, int);
+struct protoent        *lwres_getprotoent_r(struct protoent *, char *, int);
+void           lwres_setprotoent_r(int);
+void           lwres_endprotoent_r(void);
+
+struct servent *lwres_getservbyname_r(const char *name, const char *,
+                                       struct servent *, char *, int);
+struct servent *lwres_getservbyport_r(int port, const char *,
+                                       struct servent *, char *, int);
+struct servent *lwres_getservent_r(struct servent *, char *, int);
+void           lwres_setservent_r(int);
+void           lwres_endservent_r(void);
+#endif /* notyet */
+
+LWRES_LANG_ENDDECLS
+
+#ifdef notyet
+/* This is nec'y to make this include file properly replace the sun version. */
+#ifdef sun
+#ifdef __GNU_LIBRARY__
+#include <rpc/netdb.h>         /* Required. */
+#else /* !__GNU_LIBRARY__ */
+struct rpcent {
+       char    *r_name;        /* name of server for this rpc program */
+       char    **r_aliases;    /* alias list */
+       int     r_number;       /* rpc program number */
+};
+struct rpcent  *lwres_getrpcbyname();
+struct rpcent  *lwres_getrpcbynumber(),
+struct rpcent  *lwres_getrpcent();
+#endif /* __GNU_LIBRARY__ */
+#endif /* sun */
+#endif /* notyet */
+
+/*
+ * Tell Emacs to use C mode on this file.
+ * Local variables:
+ * mode: c
+ * End:
+ */
+
+#endif /* LWRES_NETDB_H */
diff --git a/usr.sbin/named/lwres/platform.h b/usr.sbin/named/lwres/platform.h
new file mode 100644 (file)
index 0000000..6a61f39
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2000, 2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id: platform.h.in,v 1.12.2.1 2001/11/02 00:20:10 marka Exp $ */
+/* $DragonFly: src/usr.sbin/named/lwres/Attic/platform.h,v 1.1 2004/05/27 18:15:42 dillon Exp $ */
+
+#ifndef LWRES_PLATFORM_H
+#define LWRES_PLATFORM_H 1
+
+/*****
+ ***** Platform-dependent defines.
+ *****/
+
+/***
+ *** Network.
+ ***/
+
+/*
+ * Define if this system needs the <netinet/in6.h> header file for IPv6.
+ */
+#undef LWRES_PLATFORM_NEEDNETINETIN6H
+
+/*
+ * Define if this system needs the <netinet6/in6.h> header file for IPv6.
+ */
+#undef LWRES_PLATFORM_NEEDNETINET6IN6H
+
+/*
+ * If sockaddrs on this system have an sa_len field, LWRES_PLATFORM_HAVESALEN
+ * will be defined.
+ */
+#define LWRES_PLATFORM_HAVESALEN 1
+
+/*
+ * If this system has the IPv6 structure definitions, LWRES_PLATFORM_HAVEIPV6
+ * will be defined.
+ */
+#define LWRES_PLATFORM_HAVEIPV6 1
+
+/*
+ * If this system is missing in6addr_any, LWRES_PLATFORM_NEEDIN6ADDRANY will
+ * be defined.
+ */
+#undef LWRES_PLATFORM_NEEDIN6ADDRANY
+
+/*
+ * If this system is missing in6addr_loopback, 
+ * LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK will be defined.
+ */
+#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK
+
+/*
+ * If this system has in_addr6, rather than in6_addr,
+ * LWRES_PLATFORM_HAVEINADDR6 will be defined.
+ */
+#undef LWRES_PLATFORM_HAVEINADDR6
+
+/*
+ * Defined if unistd.h does not cause fd_set to be delared.
+ */
+#undef LWRES_PLATFORM_NEEDSYSSELECTH
+
+/*
+ * Used to control how extern data is linked; needed for Win32 platforms.
+ */
+#undef LWRES_PLATFORM_USEDECLSPEC
+
+#ifndef LWRES_PLATFORM_USEDECLSPEC
+#define LIBLWRES_EXTERNAL_DATA
+#else
+#ifdef LIBLWRES_EXPORTS
+#define LIBLWRES_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBLWRES_EXTERNAL_DATA __declspec(dllimport)
+#endif
+#endif
+
+#endif /* LWRES_PLATFORM_H */
diff --git a/usr.sbin/named/named/os.h b/usr.sbin/named/named/os.h
new file mode 100644 (file)
index 0000000..39cd84b
--- /dev/null
++