]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2447. [cleanup] libbind has been split out as a seperate produce.
authorMark Andrews <marka@isc.org>
Wed, 24 Sep 2008 02:13:12 +0000 (02:13 +0000)
committerMark Andrews <marka@isc.org>
Wed, 24 Sep 2008 02:13:12 +0000 (02:13 +0000)
426 files changed:
CHANGES
Makefile.in
configure.in
lib/bind/.cvsignore [deleted file]
lib/bind/Makefile.in [deleted file]
lib/bind/README [deleted file]
lib/bind/aclocal.m4 [deleted file]
lib/bind/api [deleted file]
lib/bind/bsd/.cvsignore [deleted file]
lib/bind/bsd/Makefile.in [deleted file]
lib/bind/bsd/daemon.c [deleted file]
lib/bind/bsd/ftruncate.c [deleted file]
lib/bind/bsd/gettimeofday.c [deleted file]
lib/bind/bsd/mktemp.c [deleted file]
lib/bind/bsd/putenv.c [deleted file]
lib/bind/bsd/readv.c [deleted file]
lib/bind/bsd/setenv.c [deleted file]
lib/bind/bsd/setitimer.c [deleted file]
lib/bind/bsd/strcasecmp.c [deleted file]
lib/bind/bsd/strdup.c [deleted file]
lib/bind/bsd/strerror.c [deleted file]
lib/bind/bsd/strpbrk.c [deleted file]
lib/bind/bsd/strsep.c [deleted file]
lib/bind/bsd/strtoul.c [deleted file]
lib/bind/bsd/utimes.c [deleted file]
lib/bind/bsd/writev.c [deleted file]
lib/bind/config.h.in [deleted file]
lib/bind/configure [deleted file]
lib/bind/configure.in [deleted file]
lib/bind/dst/.cvsignore [deleted file]
lib/bind/dst/Makefile.in [deleted file]
lib/bind/dst/dst_api.c [deleted file]
lib/bind/dst/dst_internal.h [deleted file]
lib/bind/dst/hmac_link.c [deleted file]
lib/bind/dst/md5.h [deleted file]
lib/bind/dst/md5_dgst.c [deleted file]
lib/bind/dst/md5_locl.h [deleted file]
lib/bind/dst/support.c [deleted file]
lib/bind/include/.cvsignore [deleted file]
lib/bind/include/Makefile.in [deleted file]
lib/bind/include/arpa/inet.h [deleted file]
lib/bind/include/arpa/nameser.h [deleted file]
lib/bind/include/arpa/nameser_compat.h [deleted file]
lib/bind/include/fd_setsize.h [deleted file]
lib/bind/include/hesiod.h [deleted file]
lib/bind/include/irp.h [deleted file]
lib/bind/include/irs.h [deleted file]
lib/bind/include/isc/.cvsignore [deleted file]
lib/bind/include/isc/assertions.h [deleted file]
lib/bind/include/isc/ctl.h [deleted file]
lib/bind/include/isc/dst.h [deleted file]
lib/bind/include/isc/eventlib.h [deleted file]
lib/bind/include/isc/heap.h [deleted file]
lib/bind/include/isc/irpmarshall.h [deleted file]
lib/bind/include/isc/list.h [deleted file]
lib/bind/include/isc/logging.h [deleted file]
lib/bind/include/isc/memcluster.h [deleted file]
lib/bind/include/isc/misc.h [deleted file]
lib/bind/include/isc/platform.h.in [deleted file]
lib/bind/include/isc/tree.h [deleted file]
lib/bind/include/netdb.h [deleted file]
lib/bind/include/netgroup.h [deleted file]
lib/bind/include/res_update.h [deleted file]
lib/bind/include/resolv.h [deleted file]
lib/bind/include/resolv_mt.h [deleted file]
lib/bind/inet/.cvsignore [deleted file]
lib/bind/inet/Makefile.in [deleted file]
lib/bind/inet/inet_addr.c [deleted file]
lib/bind/inet/inet_cidr_ntop.c [deleted file]
lib/bind/inet/inet_cidr_pton.c [deleted file]
lib/bind/inet/inet_data.c [deleted file]
lib/bind/inet/inet_lnaof.c [deleted file]
lib/bind/inet/inet_makeaddr.c [deleted file]
lib/bind/inet/inet_net_ntop.c [deleted file]
lib/bind/inet/inet_net_pton.c [deleted file]
lib/bind/inet/inet_neta.c [deleted file]
lib/bind/inet/inet_netof.c [deleted file]
lib/bind/inet/inet_network.c [deleted file]
lib/bind/inet/inet_ntoa.c [deleted file]
lib/bind/inet/inet_ntop.c [deleted file]
lib/bind/inet/inet_pton.c [deleted file]
lib/bind/inet/nsap_addr.c [deleted file]
lib/bind/irs/.cvsignore [deleted file]
lib/bind/irs/Makefile.in [deleted file]
lib/bind/irs/dns.c [deleted file]
lib/bind/irs/dns_gr.c [deleted file]
lib/bind/irs/dns_ho.c [deleted file]
lib/bind/irs/dns_nw.c [deleted file]
lib/bind/irs/dns_p.h [deleted file]
lib/bind/irs/dns_pr.c [deleted file]
lib/bind/irs/dns_pw.c [deleted file]
lib/bind/irs/dns_sv.c [deleted file]
lib/bind/irs/gai_strerror.c [deleted file]
lib/bind/irs/gen.c [deleted file]
lib/bind/irs/gen_gr.c [deleted file]
lib/bind/irs/gen_ho.c [deleted file]
lib/bind/irs/gen_ng.c [deleted file]
lib/bind/irs/gen_nw.c [deleted file]
lib/bind/irs/gen_p.h [deleted file]
lib/bind/irs/gen_pr.c [deleted file]
lib/bind/irs/gen_pw.c [deleted file]
lib/bind/irs/gen_sv.c [deleted file]
lib/bind/irs/getaddrinfo.c [deleted file]
lib/bind/irs/getgrent.c [deleted file]
lib/bind/irs/getgrent_r.c [deleted file]
lib/bind/irs/gethostent.c [deleted file]
lib/bind/irs/gethostent_r.c [deleted file]
lib/bind/irs/getnameinfo.c [deleted file]
lib/bind/irs/getnetent.c [deleted file]
lib/bind/irs/getnetent_r.c [deleted file]
lib/bind/irs/getnetgrent.c [deleted file]
lib/bind/irs/getnetgrent_r.c [deleted file]
lib/bind/irs/getprotoent.c [deleted file]
lib/bind/irs/getprotoent_r.c [deleted file]
lib/bind/irs/getpwent.c [deleted file]
lib/bind/irs/getpwent_r.c [deleted file]
lib/bind/irs/getservent.c [deleted file]
lib/bind/irs/getservent_r.c [deleted file]
lib/bind/irs/hesiod.c [deleted file]
lib/bind/irs/hesiod_p.h [deleted file]
lib/bind/irs/irp.c [deleted file]
lib/bind/irs/irp_gr.c [deleted file]
lib/bind/irs/irp_ho.c [deleted file]
lib/bind/irs/irp_ng.c [deleted file]
lib/bind/irs/irp_nw.c [deleted file]
lib/bind/irs/irp_p.h [deleted file]
lib/bind/irs/irp_pr.c [deleted file]
lib/bind/irs/irp_pw.c [deleted file]
lib/bind/irs/irp_sv.c [deleted file]
lib/bind/irs/irpmarshall.c [deleted file]
lib/bind/irs/irs_data.c [deleted file]
lib/bind/irs/irs_data.h [deleted file]
lib/bind/irs/irs_p.h [deleted file]
lib/bind/irs/lcl.c [deleted file]
lib/bind/irs/lcl_gr.c [deleted file]
lib/bind/irs/lcl_ho.c [deleted file]
lib/bind/irs/lcl_ng.c [deleted file]
lib/bind/irs/lcl_nw.c [deleted file]
lib/bind/irs/lcl_p.h [deleted file]
lib/bind/irs/lcl_pr.c [deleted file]
lib/bind/irs/lcl_pw.c [deleted file]
lib/bind/irs/lcl_sv.c [deleted file]
lib/bind/irs/nis.c [deleted file]
lib/bind/irs/nis_gr.c [deleted file]
lib/bind/irs/nis_ho.c [deleted file]
lib/bind/irs/nis_ng.c [deleted file]
lib/bind/irs/nis_nw.c [deleted file]
lib/bind/irs/nis_p.h [deleted file]
lib/bind/irs/nis_pr.c [deleted file]
lib/bind/irs/nis_pw.c [deleted file]
lib/bind/irs/nis_sv.c [deleted file]
lib/bind/irs/nul_ng.c [deleted file]
lib/bind/irs/pathnames.h [deleted file]
lib/bind/irs/util.c [deleted file]
lib/bind/isc/.cvsignore [deleted file]
lib/bind/isc/Makefile.in [deleted file]
lib/bind/isc/assertions.c [deleted file]
lib/bind/isc/assertions.mdoc [deleted file]
lib/bind/isc/base64.c [deleted file]
lib/bind/isc/bitncmp.c [deleted file]
lib/bind/isc/bitncmp.mdoc [deleted file]
lib/bind/isc/ctl_clnt.c [deleted file]
lib/bind/isc/ctl_p.c [deleted file]
lib/bind/isc/ctl_p.h [deleted file]
lib/bind/isc/ctl_srvr.c [deleted file]
lib/bind/isc/ev_connects.c [deleted file]
lib/bind/isc/ev_files.c [deleted file]
lib/bind/isc/ev_streams.c [deleted file]
lib/bind/isc/ev_timers.c [deleted file]
lib/bind/isc/ev_waits.c [deleted file]
lib/bind/isc/eventlib.c [deleted file]
lib/bind/isc/eventlib.mdoc [deleted file]
lib/bind/isc/eventlib_p.h [deleted file]
lib/bind/isc/heap.c [deleted file]
lib/bind/isc/heap.mdoc [deleted file]
lib/bind/isc/hex.c [deleted file]
lib/bind/isc/logging.c [deleted file]
lib/bind/isc/logging.mdoc [deleted file]
lib/bind/isc/logging_p.h [deleted file]
lib/bind/isc/memcluster.c [deleted file]
lib/bind/isc/memcluster.mdoc [deleted file]
lib/bind/isc/movefile.c [deleted file]
lib/bind/isc/tree.c [deleted file]
lib/bind/isc/tree.mdoc [deleted file]
lib/bind/make/.cvsignore [deleted file]
lib/bind/make/includes.in [deleted file]
lib/bind/make/mkdep.in [deleted file]
lib/bind/make/rules.in [deleted file]
lib/bind/mkinstalldirs [deleted file]
lib/bind/nameser/.cvsignore [deleted file]
lib/bind/nameser/Makefile.in [deleted file]
lib/bind/nameser/ns_date.c [deleted file]
lib/bind/nameser/ns_name.c [deleted file]
lib/bind/nameser/ns_netint.c [deleted file]
lib/bind/nameser/ns_parse.c [deleted file]
lib/bind/nameser/ns_print.c [deleted file]
lib/bind/nameser/ns_samedomain.c [deleted file]
lib/bind/nameser/ns_sign.c [deleted file]
lib/bind/nameser/ns_ttl.c [deleted file]
lib/bind/nameser/ns_verify.c [deleted file]
lib/bind/port/.cvsignore [deleted file]
lib/bind/port/Makefile.in [deleted file]
lib/bind/port/aix32/.cvsignore [deleted file]
lib/bind/port/aix32/Makefile.in [deleted file]
lib/bind/port/aix32/include/.cvsignore [deleted file]
lib/bind/port/aix32/include/Makefile.in [deleted file]
lib/bind/port/aix32/include/paths.h [deleted file]
lib/bind/port/aix32/include/sys/bitypes.h [deleted file]
lib/bind/port/aix32/include/sys/cdefs.h [deleted file]
lib/bind/port/aix4/.cvsignore [deleted file]
lib/bind/port/aix4/Makefile.in [deleted file]
lib/bind/port/aix4/include/.cvsignore [deleted file]
lib/bind/port/aix4/include/Makefile.in [deleted file]
lib/bind/port/aix4/include/sys/bitypes.h [deleted file]
lib/bind/port/aix4/include/sys/cdefs.h [deleted file]
lib/bind/port/aix5/.cvsignore [deleted file]
lib/bind/port/aix5/Makefile.in [deleted file]
lib/bind/port/aix5/include/.cvsignore [deleted file]
lib/bind/port/aix5/include/Makefile.in [deleted file]
lib/bind/port/aix5/include/sys/bitypes.h [deleted file]
lib/bind/port/aix5/include/sys/cdefs.h [deleted file]
lib/bind/port/aux3/.cvsignore [deleted file]
lib/bind/port/aux3/Makefile.in [deleted file]
lib/bind/port/aux3/include/.cvsignore [deleted file]
lib/bind/port/aux3/include/Makefile.in [deleted file]
lib/bind/port/aux3/include/sys/bitypes.h [deleted file]
lib/bind/port/aux3/include/sys/cdefs.h [deleted file]
lib/bind/port/bsdos/.cvsignore [deleted file]
lib/bind/port/bsdos/Makefile.in [deleted file]
lib/bind/port/bsdos/include/.cvsignore [deleted file]
lib/bind/port/bsdos/include/Makefile.in [deleted file]
lib/bind/port/bsdos/include/sys/bitypes.h [deleted file]
lib/bind/port/bsdos2/.cvsignore [deleted file]
lib/bind/port/bsdos2/Makefile.in [deleted file]
lib/bind/port/bsdos2/include/.cvsignore [deleted file]
lib/bind/port/bsdos2/include/Makefile.in [deleted file]
lib/bind/port/bsdos2/include/sys/bitypes.h [deleted file]
lib/bind/port/cygwin/Makefile.in [deleted file]
lib/bind/port/cygwin/include/Makefile.in [deleted file]
lib/bind/port/cygwin/include/ansi_realloc.h [deleted file]
lib/bind/port/cygwin/include/asm/socket.h [deleted file]
lib/bind/port/cygwin/include/assert.h [deleted file]
lib/bind/port/cygwin/include/net/route.h [deleted file]
lib/bind/port/cygwin/include/nlist.h [deleted file]
lib/bind/port/cygwin/include/paths.h [deleted file]
lib/bind/port/cygwin/include/sys/bitypes.h [deleted file]
lib/bind/port/cygwin/include/sys/cdefs.h [deleted file]
lib/bind/port/cygwin/include/sys/mbuf.h [deleted file]
lib/bind/port/cygwin/include/sys/socket.h [deleted file]
lib/bind/port/cygwin/include/sys/un.h [deleted file]
lib/bind/port/cygwin/include/sys/wait.h [deleted file]
lib/bind/port/darwin/.cvsignore [deleted file]
lib/bind/port/darwin/Makefile.in [deleted file]
lib/bind/port/darwin/include/.cvsignore [deleted file]
lib/bind/port/darwin/include/Makefile.in [deleted file]
lib/bind/port/darwin/include/sys/bitypes.h [deleted file]
lib/bind/port/decunix/.cvsignore [deleted file]
lib/bind/port/decunix/Makefile.in [deleted file]
lib/bind/port/decunix/include/.cvsignore [deleted file]
lib/bind/port/decunix/include/Makefile.in [deleted file]
lib/bind/port/decunix/include/sys/bitypes.h [deleted file]
lib/bind/port/decunix/include/sys/cdefs.h [deleted file]
lib/bind/port/freebsd/.cvsignore [deleted file]
lib/bind/port/freebsd/Makefile.in [deleted file]
lib/bind/port/freebsd/include/.cvsignore [deleted file]
lib/bind/port/freebsd/include/Makefile.in [deleted file]
lib/bind/port/freebsd/include/sys/bitypes.h [deleted file]
lib/bind/port/hpux/.cvsignore [deleted file]
lib/bind/port/hpux/Makefile.in [deleted file]
lib/bind/port/hpux/include/.cvsignore [deleted file]
lib/bind/port/hpux/include/Makefile.in [deleted file]
lib/bind/port/hpux/include/paths.h [deleted file]
lib/bind/port/hpux/include/sys/bitypes.h [deleted file]
lib/bind/port/hpux/include/sys/cdefs.h [deleted file]
lib/bind/port/hpux10/.cvsignore [deleted file]
lib/bind/port/hpux10/Makefile.in [deleted file]
lib/bind/port/hpux10/include/.cvsignore [deleted file]
lib/bind/port/hpux10/include/Makefile.in [deleted file]
lib/bind/port/hpux10/include/paths.h [deleted file]
lib/bind/port/hpux10/include/sys/bitypes.h [deleted file]
lib/bind/port/hpux10/include/sys/cdefs.h [deleted file]
lib/bind/port/hpux9/.cvsignore [deleted file]
lib/bind/port/hpux9/Makefile.in [deleted file]
lib/bind/port/hpux9/include/.cvsignore [deleted file]
lib/bind/port/hpux9/include/Makefile.in [deleted file]
lib/bind/port/hpux9/include/sys/bitypes.h [deleted file]
lib/bind/port/hpux9/include/sys/cdefs.h [deleted file]
lib/bind/port/irix/.cvsignore [deleted file]
lib/bind/port/irix/Makefile.in [deleted file]
lib/bind/port/irix/include/.cvsignore [deleted file]
lib/bind/port/irix/include/Makefile.in [deleted file]
lib/bind/port/irix/include/paths.h [deleted file]
lib/bind/port/irix/include/sys/bitypes.h [deleted file]
lib/bind/port/irix/include/sys/cdefs.h [deleted file]
lib/bind/port/linux/.cvsignore [deleted file]
lib/bind/port/linux/Makefile.in [deleted file]
lib/bind/port/linux/include/.cvsignore [deleted file]
lib/bind/port/linux/include/Makefile.in [deleted file]
lib/bind/port/linux/include/net/route.h [deleted file]
lib/bind/port/linux/include/sys/mbuf.h [deleted file]
lib/bind/port/lynxos/.cvsignore [deleted file]
lib/bind/port/lynxos/Makefile.in [deleted file]
lib/bind/port/lynxos/include/.cvsignore [deleted file]
lib/bind/port/lynxos/include/Makefile.in [deleted file]
lib/bind/port/lynxos/include/sys/bitypes.h [deleted file]
lib/bind/port/lynxos/include/sys/cdefs.h [deleted file]
lib/bind/port/mpe/.cvsignore [deleted file]
lib/bind/port/mpe/Makefile.in [deleted file]
lib/bind/port/mpe/include/.cvsignore [deleted file]
lib/bind/port/mpe/include/Makefile.in [deleted file]
lib/bind/port/mpe/include/net/route.h [deleted file]
lib/bind/port/mpe/include/sys/bitypes.h [deleted file]
lib/bind/port/mpe/include/sys/cdefs.h [deleted file]
lib/bind/port/mpe/include/sys/file.h [deleted file]
lib/bind/port/mpe/include/sys/mbuf.h [deleted file]
lib/bind/port/mpe/include/sys/param.h [deleted file]
lib/bind/port/mpe/include/sys/time.h [deleted file]
lib/bind/port/netbsd/.cvsignore [deleted file]
lib/bind/port/netbsd/Makefile.in [deleted file]
lib/bind/port/netbsd/include/.cvsignore [deleted file]
lib/bind/port/netbsd/include/Makefile.in [deleted file]
lib/bind/port/netbsd/include/sys/bitypes.h [deleted file]
lib/bind/port/next/.cvsignore [deleted file]
lib/bind/port/next/Makefile.in [deleted file]
lib/bind/port/next/include/.cvsignore [deleted file]
lib/bind/port/next/include/Makefile.in [deleted file]
lib/bind/port/next/include/sys/bitypes.h [deleted file]
lib/bind/port/next/include/sys/cdefs.h [deleted file]
lib/bind/port/openbsd/.cvsignore [deleted file]
lib/bind/port/openbsd/Makefile.in [deleted file]
lib/bind/port/openbsd/include/.cvsignore [deleted file]
lib/bind/port/openbsd/include/Makefile.in [deleted file]
lib/bind/port/openbsd/include/sys/bitypes.h [deleted file]
lib/bind/port/prand_conf/.cvsignore [deleted file]
lib/bind/port/prand_conf/Makefile.in [deleted file]
lib/bind/port/qnx/.cvsignore [deleted file]
lib/bind/port/qnx/Makefile.in [deleted file]
lib/bind/port/qnx/include/.cvsignore [deleted file]
lib/bind/port/qnx/include/Makefile.in [deleted file]
lib/bind/port/qnx/include/sys/bitypes.h [deleted file]
lib/bind/port/qnx/include/sys/cdefs.h [deleted file]
lib/bind/port/qnx/include/sys/ioctl.h [deleted file]
lib/bind/port/qnx/include/sys/mbuf.h [deleted file]
lib/bind/port/qnx/include/sys/resource.h [deleted file]
lib/bind/port/rhapsody/.cvsignore [deleted file]
lib/bind/port/rhapsody/Makefile.in [deleted file]
lib/bind/port/rhapsody/include/.cvsignore [deleted file]
lib/bind/port/rhapsody/include/Makefile.in [deleted file]
lib/bind/port/rhapsody/include/sys/bitypes.h [deleted file]
lib/bind/port/sco42/.cvsignore [deleted file]
lib/bind/port/sco42/Makefile.in [deleted file]
lib/bind/port/sco42/include/.cvsignore [deleted file]
lib/bind/port/sco42/include/Makefile.in [deleted file]
lib/bind/port/sco42/include/sys/bitypes.h [deleted file]
lib/bind/port/sco42/include/sys/cdefs.h [deleted file]
lib/bind/port/sco42/include/sys/mbuf.h [deleted file]
lib/bind/port/sco42/include/sys/un.h [deleted file]
lib/bind/port/sco50/.cvsignore [deleted file]
lib/bind/port/sco50/Makefile.in [deleted file]
lib/bind/port/sco50/include/.cvsignore [deleted file]
lib/bind/port/sco50/include/Makefile.in [deleted file]
lib/bind/port/sco50/include/sys/mbuf.h [deleted file]
lib/bind/port/solaris/.cvsignore [deleted file]
lib/bind/port/solaris/Makefile.in [deleted file]
lib/bind/port/solaris/include/.cvsignore [deleted file]
lib/bind/port/solaris/include/Makefile.in [deleted file]
lib/bind/port/solaris/include/paths.h [deleted file]
lib/bind/port/solaris/include/sys/bitypes.h [deleted file]
lib/bind/port/solaris/include/sys/cdefs.h [deleted file]
lib/bind/port/sunos/.cvsignore [deleted file]
lib/bind/port/sunos/Makefile.in [deleted file]
lib/bind/port/sunos/include/.cvsignore [deleted file]
lib/bind/port/sunos/include/Makefile.in [deleted file]
lib/bind/port/sunos/include/paths.h [deleted file]
lib/bind/port/sunos/include/sys/bitypes.h [deleted file]
lib/bind/port/sunos/include/sys/cdefs.h [deleted file]
lib/bind/port/sunos/include/sys/wait.h [deleted file]
lib/bind/port/ultrix/.cvsignore [deleted file]
lib/bind/port/ultrix/Makefile.in [deleted file]
lib/bind/port/ultrix/include/.cvsignore [deleted file]
lib/bind/port/ultrix/include/Makefile.in [deleted file]
lib/bind/port/ultrix/include/rpc/xdr.h [deleted file]
lib/bind/port/ultrix/include/sys/bitypes.h [deleted file]
lib/bind/port/ultrix/include/sys/cdefs.h [deleted file]
lib/bind/port/ultrix/include/sys/socket.h [deleted file]
lib/bind/port/ultrix/include/sys/syslog.h [deleted file]
lib/bind/port/unixware20/.cvsignore [deleted file]
lib/bind/port/unixware20/Makefile.in [deleted file]
lib/bind/port/unixware20/include/.cvsignore [deleted file]
lib/bind/port/unixware20/include/Makefile.in [deleted file]
lib/bind/port/unixware20/include/sys/bitypes.h [deleted file]
lib/bind/port/unixware20/include/sys/cdefs.h [deleted file]
lib/bind/port/unixware212/.cvsignore [deleted file]
lib/bind/port/unixware212/Makefile.in [deleted file]
lib/bind/port/unixware212/include/.cvsignore [deleted file]
lib/bind/port/unixware212/include/Makefile.in [deleted file]
lib/bind/port/unixware212/include/sys/bitypes.h [deleted file]
lib/bind/port/unixware212/include/sys/cdefs.h [deleted file]
lib/bind/port/unixware7/.cvsignore [deleted file]
lib/bind/port/unixware7/Makefile.in [deleted file]
lib/bind/port/unixware7/include/.cvsignore [deleted file]
lib/bind/port/unixware7/include/Makefile.in [deleted file]
lib/bind/port/unknown/.cvsignore [deleted file]
lib/bind/port/unknown/Makefile.in [deleted file]
lib/bind/port/unknown/include/.cvsignore [deleted file]
lib/bind/port/unknown/include/Makefile.in [deleted file]
lib/bind/port_after.h.in [deleted file]
lib/bind/port_before.h.in [deleted file]
lib/bind/resolv/.cvsignore [deleted file]
lib/bind/resolv/Makefile.in [deleted file]
lib/bind/resolv/herror.c [deleted file]
lib/bind/resolv/mtctxres.c [deleted file]
lib/bind/resolv/res_comp.c [deleted file]
lib/bind/resolv/res_data.c [deleted file]
lib/bind/resolv/res_debug.c [deleted file]
lib/bind/resolv/res_debug.h [deleted file]
lib/bind/resolv/res_findzonecut.c [deleted file]
lib/bind/resolv/res_init.c [deleted file]
lib/bind/resolv/res_mkquery.c [deleted file]
lib/bind/resolv/res_mkupdate.c [deleted file]
lib/bind/resolv/res_mkupdate.h [deleted file]
lib/bind/resolv/res_private.h [deleted file]
lib/bind/resolv/res_query.c [deleted file]
lib/bind/resolv/res_send.c [deleted file]
lib/bind/resolv/res_sendsigned.c [deleted file]
lib/bind/resolv/res_update.c [deleted file]

diff --git a/CHANGES b/CHANGES
index 1d05d06380aceaedaed753319dc2f4ba87098888..f9f0cfc583745cd6283c3f2dc8debd77091d55c7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+2447.  [cleanup]       libbind has been split out as a seperate produce.
+
 2446.  [func]          Add a new log message about build options on startup.
                        A new command-line option '-V' for named is also
                        provided to show this information. [RT# 18645]
index 296085631016e9b500b81bf998805ccca7da1613..4ac2b97fae47222a430ffd3d4523b6886dcb3a5e 100644 (file)
@@ -13,7 +13,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: Makefile.in,v 1.50 2007/09/03 00:36:53 marka Exp $
+# $Id: Makefile.in,v 1.51 2008/09/24 02:13:02 marka Exp $
 
 srcdir =       @srcdir@
 VPATH =                @srcdir@
@@ -21,18 +21,11 @@ top_srcdir =        @top_srcdir@
 
 @BIND9_VERSION@
 
-SUBDIRS =      make lib bin doc @LIBBIND@
+SUBDIRS =      make lib bin doc
 TARGETS =
 
 @BIND9_MAKE_RULES@
 
-distclean::
-       @if [ "X@LIBBIND@" = "X" ] ; then \
-               i=lib/bind; \
-               echo "making $@ in `pwd`/$$i"; \
-               (cd $$i; ${MAKE} ${MAKEDEFS} $@) || exit 1; \
-       fi
-
 distclean::
        rm -f config.cache config.h config.log config.status TAGS
        rm -f libtool isc-config.sh configure.lineno
index 8303dcc724a80de0994dafa2007a216bb46c438d..b9f840ca276a0fdecd0d27ee5b16274dc852eb84 100644 (file)
@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl
 esyscmd([sed "s/^/# /" COPYRIGHT])dnl
 AC_DIVERT_POP()dnl
 
-AC_REVISION($Revision: 1.448 $)
+AC_REVISION($Revision: 1.449 $)
 
 AC_INIT(lib/dns/name.c)
 AC_PREREQ(2.59)
@@ -38,6 +38,19 @@ AC_SUBST(STD_CDEFINES)
 AC_SUBST(STD_CWARNINGS)
 AC_SUBST(CCOPT)
 
+# Warn if the user specified libbind, which is now deprecated
+AC_ARG_ENABLE(libbind, [  --enable-libbind       deprecated])
+
+case "$enable_libbind" in
+       yes)
+               AC_MSG_ERROR(['libbind' is no longer part of the BIND 9 distribution.
+It is available from http://www.isc.org as a separate download.])
+               ;;
+       no|'')
+               ;;
+esac
+
+
 #
 # Make very sure that these are the first files processed by
 # config.status, since we use the processed output as the input for
@@ -1252,22 +1265,6 @@ AC_SUBST(LIBTOOL_MODE_LINK)
 AC_SUBST(LIBTOOL_ALLOW_UNDEFINED)
 AC_SUBST(LIBTOOL_IN_MAIN)
 
-#
-# build libbind?
-#
-AC_ARG_ENABLE(libbind,
-       [  --enable-libbind             build libbind [default=no]])
-
-case "$enable_libbind" in
-       yes)
-               LIBBIND=lib/bind
-               AC_SUBST(LIBBIND)
-               ;;
-       no|'')
-               ;;
-esac
-
-
 #
 # Here begins a very long section to determine the system's networking
 # capabilities.  The order of the tests is signficant.
diff --git a/lib/bind/.cvsignore b/lib/bind/.cvsignore
deleted file mode 100644 (file)
index 00e1e6d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-configure.lineno
-port_before.h
-port_after.h
-config.log
-config.h
-config.cache
-prand_conf
-prand_conf.h
-Makefile
-config.cache
-config.status
-timestamp
-libtool
-autom4te.cache
diff --git a/lib/bind/Makefile.in b/lib/bind/Makefile.in
deleted file mode 100644 (file)
index 31f85f5..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright (C) 2004-2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001-2003  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.31 2007/06/19 23:47:13 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-
-@LIBBIND_API@
-
-LIBS =         @LIBS@
-
-DAEMON_OBJS=bsd/daemon.@O@
-STRSEP_OBJS=bsd/strsep.@O@
-
-BSDOBJS= @DAEMON_OBJS@ @STRSEP_OBJS@ bsd/ftruncate.@O@ bsd/gettimeofday.@O@ \
-        bsd/mktemp.@O@ bsd/putenv.@O@ bsd/readv.@O@ bsd/setenv.@O@ \
-       bsd/setitimer.@O@ bsd/strcasecmp.@O@ bsd/strdup.@O@ \
-        bsd/strerror.@O@ bsd/strpbrk.@O@ bsd/strtoul.@O@ bsd/utimes.@O@ \
-        bsd/writev.@O@
-
-DSTOBJS= dst/dst_api.@O@ dst/hmac_link.@O@ dst/md5_dgst.@O@ dst/support.@O@
-
-INETOBJS= inet/inet_addr.@O@ inet/inet_cidr_ntop.@O@ inet/inet_cidr_pton.@O@ \
-       inet/inet_data.@O@ inet/inet_lnaof.@O@ inet/inet_makeaddr.@O@ \
-       inet/inet_net_ntop.@O@ inet/inet_net_pton.@O@ inet/inet_neta.@O@ \
-       inet/inet_netof.@O@ inet/inet_network.@O@ inet/inet_ntoa.@O@ \
-       inet/inet_ntop.@O@ inet/inet_pton.@O@ inet/nsap_addr.@O@
-
-WANT_IRS_THREADS_OBJS= irs/gethostent_r.@O@ irs/getnetent_r.@O@ \
-       irs/getnetgrent_r.@O@ irs/getprotoent_r.@O@ irs/getservent_r.@O@
-
-WANT_IRS_NISGR_OBJS= irs/nis_gr.@O@ 
-WANT_IRS_GR_OBJS= irs/dns_gr.@O@ irs/irp_gr.@O@ irs/lcl_gr.@O@ irs/gen_gr.@O@ \
-       irs/getgrent.@O@ @WANT_IRS_NISGR_OBJS@ @WANT_IRS_THREADSGR_OBJS@
-
-WANT_IRS_THREADSPW_OBJS=irs/getpwent_r.@O@
-WANT_IRS_NISPW_OBJS= irs/nis_pw.@O@
-WANT_IRS_DBPW_OBJS=irs/irp_pw.@O@ irs/lcl_pw.@O@
-WANT_IRS_PW_OBJS= irs/dns_pw.@O@ irs/gen_pw.@O@ irs/getpwent.@O@ \
-       @WANT_IRS_DBPW_OBJS@ @WANT_IRS_NISPW_OBJS@ @WANT_IRS_THREADSPW_OBJS@
-
-WANT_IRS_NIS_OBJS= irs/nis_ho.@O@ irs/nis_ng.@O@ irs/nis_nw.@O@ \
-       irs/nis_pr.@O@ irs/nis_sv.@O@
-
-IRSOBJS= @WANT_IRS_GR_OBJS@ @WANT_IRS_NIS_OBJS@ @WANT_IRS_THREADS_OBJS@ \
-       @WANT_IRS_PW_OBJS@ \
-       irs/dns.@O@ irs/dns_ho.@O@ irs/dns_nw.@O@ irs/dns_pr.@O@ \
-       irs/dns_sv.@O@ irs/gai_strerror.@O@ irs/gen.@O@ irs/gen_ho.@O@ \
-       irs/gen_ng.@O@ irs/gen_nw.@O@ irs/gen_pr.@O@ irs/gen_sv.@O@ \
-       irs/getaddrinfo.@O@ irs/gethostent.@O@  irs/getnameinfo.@O@ \
-       irs/getnetent.@O@ irs/getnetgrent.@O@ \
-       irs/getprotoent.@O@ irs/getservent.@O@ irs/hesiod.@O@ \
-       irs/irp.@O@ irs/irp_ho.@O@ irs/irp_ng.@O@ irs/irp_nw.@O@ \
-       irs/irp_pr.@O@ irs/irp_sv.@O@ irs/irpmarshall.@O@ irs/irs_data.@O@ \
-       irs/lcl.@O@ irs/lcl_ho.@O@ irs/lcl_ng.@O@ irs/lcl_nw.@O@ \
-       irs/lcl_pr.@O@ irs/lcl_sv.@O@ irs/nis.@O@ irs/nul_ng.@O@ irs/util.@O@
-
-WANT_IRS_THREADSGR_OBJS=irs/getgrent_r.@O@
-
-ISCOBJS= isc/assertions.@O@ isc/base64.@O@ isc/bitncmp.@O@ isc/ctl_clnt.@O@ \
-       isc/ctl_p.@O@ isc/ctl_srvr.@O@ isc/ev_connects.@O@ isc/ev_files.@O@ \
-       isc/ev_streams.@O@ isc/ev_timers.@O@ isc/ev_waits.@O@ \
-       isc/eventlib.@O@ isc/heap.@O@ isc/hex.@O@ isc/logging.@O@ \
-       isc/memcluster.@O@ isc/movefile.@O@ isc/tree.@O@
-
-NAMESEROBJS= nameser/ns_date.@O@ nameser/ns_name.@O@ nameser/ns_netint.@O@ \
-       nameser/ns_parse.@O@ nameser/ns_print.@O@  nameser/ns_samedomain.@O@ \
-       nameser/ns_sign.@O@ nameser/ns_ttl.@O@ nameser/ns_verify.@O@
-
-RESOLVOBJS= resolv/herror.@O@ resolv/mtctxres.@O@ resolv/res_comp.@O@ \
-       resolv/res_data.@O@ resolv/res_debug.@O@ resolv/res_findzonecut.@O@ \
-       resolv/res_init.@O@ resolv/res_mkquery.@O@ resolv/res_mkupdate.@O@ \
-       resolv/res_query.@O@ resolv/res_send.@O@ resolv/res_sendsigned.@O@ \
-       resolv/res_update.@O@
-
-SUBDIRS = bsd dst include inet irs isc nameser resolv @PORT_INCLUDE@
-
-TARGETS= timestamp
-OBJS=  ${BSDOBJS} ${DSTOBJS} ${INETOBJS} ${IRSOBJS} ${ISCOBJS} \
-       ${NAMESEROBJS} ${RESOLVOBJS}
-
-@BIND9_MAKE_RULES@
-
-# Attempt to disable parallel processing.
-.NOTPARALLEL:
-.NO_PARALLEL:
-
-libbind.@SA@: ${OBJS}
-       ${AR} ${ARFLAGS} $@ ${OBJS}
-       ${RANLIB} $@
-
-libbind.la: ${OBJS}
-       ${LIBTOOL_MODE_LINK} \
-       ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libbind.la -rpath ${libdir} \
-               -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
-               ${OBJS} ${LIBS}
-
-timestamp: libbind.@A@
-       touch timestamp
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}
-
-install:: timestamp installdirs
-       ${LIBTOOL_MODE_INSTALL} ${INSTALL_DATA} libbind.@A@ ${DESTDIR}${libdir}
-
-clean distclean::
-       rm -f libbind.@SA@ libbind.la
-
-distclean::
-       rm -f make/rules make/includes make/mkdep
-
-distclean::
-       rm -f config.cache config.h config.log config.status libtool
-       rm -f port_before.h port_after.h configure.lineno
-       rm -f port/Makefile @PORT_DIR@/Makefile
-
-man:
diff --git a/lib/bind/README b/lib/bind/README
deleted file mode 100644 (file)
index b89cff7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
---with-irs-gr=yes #define WANT_IRS_GR
---with-irs-nis=yes #define WANT_IRS_NIS
---with-irs-pw=yes #define WANT_IRS_PW
-
diff --git a/lib/bind/aclocal.m4 b/lib/bind/aclocal.m4
deleted file mode 100644 (file)
index 110ed87..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-sinclude(../../libtool.m4)dnl
-
diff --git a/lib/bind/api b/lib/bind/api
deleted file mode 100644 (file)
index d4b1ecd..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-LIBINTERFACE = 4
-LIBREVISION = 9
-LIBAGE = 0
diff --git a/lib/bind/bsd/.cvsignore b/lib/bind/bsd/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/bsd/Makefile.in b/lib/bind/bsd/Makefile.in
deleted file mode 100644 (file)
index 9a29453..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.11 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=         @srcdir@
-VPATH =         @srcdir@
-
-DAEMON_OBJS=daemon.@O@
-STRSEP_OBJS=strsep.@O@
-
-OBJS=  @DAEMON_OBJS@ @STRSEP_OBJS@ ftruncate.@O@ gettimeofday.@O@ \
-       mktemp.@O@ putenv.@O@ \
-       readv.@O@ setenv.@O@ setitimer.@O@ strcasecmp.@O@ strdup.@O@ \
-       strerror.@O@ strpbrk.@O@ strtoul.@O@ utimes.@O@ \
-       writev.@O@
-
-SRCS=  daemon.c ftruncate.c gettimeofday.c mktemp.c putenv.c \
-       readv.c setenv.c setitimer.c strcasecmp.c strdup.c \
-       strerror.c strpbrk.c strsep.c strtoul.c utimes.c \
-       writev.c
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/bsd/daemon.c b/lib/bind/bsd/daemon.c
deleted file mode 100644 (file)
index 54ff83b..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)daemon.c     8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: daemon.c,v 1.2 2005/04/27 04:56:10 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1990, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <fcntl.h>
-#include <paths.h>
-#include <unistd.h>
-
-#include "port_after.h"
-
-#ifndef NEED_DAEMON
-int __bind_daemon__;
-#else
-
-int
-daemon(int nochdir, int noclose) {
-       int fd;
-
-       switch (fork()) {
-       case -1:
-               return (-1);
-       case 0:
-               break;
-       default:
-               _exit(0);
-       }
-
-       if (setsid() == -1)
-               return (-1);
-
-       if (!nochdir)
-               (void)chdir("/");
-
-       if (!noclose && (fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
-               (void)dup2(fd, STDIN_FILENO);
-               (void)dup2(fd, STDOUT_FILENO);
-               (void)dup2(fd, STDERR_FILENO);
-               if (fd > 2)
-                       (void)close (fd);
-       }
-       return (0);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/bsd/ftruncate.c b/lib/bind/bsd/ftruncate.c
deleted file mode 100644 (file)
index 5ac4eba..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: ftruncate.c,v 1.3 2005/04/27 18:16:45 sra Exp $";
-#endif
-
-/*! \file
- * \brief
- * ftruncate - set file size, BSD Style
- *
- * shortens or enlarges the file as neeeded
- * uses some undocumented locking call. It is known to work on SCO unix,
- * other vendors should try.
- * The #error directive prevents unsupported OSes
- */
-
-#include "port_before.h"
-
-#if defined(M_UNIX)
-#define OWN_FTRUNCATE
-#include <stdio.h>
-#ifdef _XOPEN_SOURCE
-#undef _XOPEN_SOURCE
-#endif
-#ifdef _POSIX_SOURCE
-#undef _POSIX_SOURCE
-#endif
-
-#include <fcntl.h>
-
-#include "port_after.h"
-
-int
-__ftruncate(int fd, long wantsize) {
-       long cursize;
-
-       /* determine current file size */
-       if ((cursize = lseek(fd, 0L, 2)) == -1)
-               return (-1);
-
-       /* maybe lengthen... */
-       if (cursize < wantsize) {
-               if (lseek(fd, wantsize - 1, 0) == -1 ||
-                   write(fd, "", 1) == -1) {
-                       return (-1);
-               }
-               return (0);
-       }
-
-       /* maybe shorten... */
-       if (wantsize < cursize) {
-               struct flock fl;
-
-               fl.l_whence = 0;
-               fl.l_len = 0;
-               fl.l_start = wantsize;
-               fl.l_type = F_WRLCK;
-               return (fcntl(fd, F_FREESP, &fl));
-       }
-       return (0);
-}
-#endif
-
-#ifndef OWN_FTRUNCATE
-int __bindcompat_ftruncate;
-#endif
diff --git a/lib/bind/bsd/gettimeofday.c b/lib/bind/bsd/gettimeofday.c
deleted file mode 100644 (file)
index 75b6943..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: gettimeofday.c,v 1.4 2005/04/27 04:56:11 sra Exp $";
-#endif
-
-#include "port_before.h"
-#include <stdio.h>
-#include <syslog.h>
-#include <sys/time.h>
-#include "port_after.h"
-
-#if !defined(NEED_GETTIMEOFDAY)
-/*%
- * gettimeofday() occasionally returns invalid tv_usec on some platforms.
- */
-#define MILLION 1000000
-#undef gettimeofday
-
-int
-isc__gettimeofday(struct timeval *tp, struct timezone *tzp) {
-       int res;
-
-       res = gettimeofday(tp, tzp);
-       if (res < 0)
-               return (res);
-       if (tp == NULL)
-               return (res);
-       if (tp->tv_usec < 0) {
-               do {
-                       tp->tv_usec += MILLION;
-                       tp->tv_sec--;
-               } while (tp->tv_usec < 0);
-               goto log;
-       } else if (tp->tv_usec > MILLION) {
-               do {
-                       tp->tv_usec -= MILLION;
-                       tp->tv_sec++;
-               } while (tp->tv_usec > MILLION);
-               goto log;
-       }
-       return (res);
- log:
-       syslog(LOG_ERR, "gettimeofday: tv_usec out of range\n");
-       return (res);
-}
-#else
-int
-gettimeofday(struct timeval *tvp, struct _TIMEZONE *tzp) {
-       time_t clock, time(time_t *);
-
-       if (time(&clock) == (time_t) -1)
-               return (-1);
-       if (tvp) {
-               tvp->tv_sec = clock;
-               tvp->tv_usec = 0;
-       }
-       if (tzp) {
-               tzp->tz_minuteswest = 0;
-               tzp->tz_dsttime = 0;
-       }
-       return (0);
-}
-#endif /*NEED_GETTIMEOFDAY*/
-
-/*! \file */
diff --git a/lib/bind/bsd/mktemp.c b/lib/bind/bsd/mktemp.c
deleted file mode 100644 (file)
index 001b24b..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)mktemp.c     8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: mktemp.c,v 1.2 2005/04/27 04:56:11 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1987, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-
-#include "port_after.h"
-
-#if (!defined(NEED_MKTEMP)) && (!defined(NEED_MKSTEMP))
-int __mktemp_unneeded__;
-#else
-
-static int gettemp(char *path, int *doopen);
-
-#ifdef NEED_MKSTEMP
-mkstemp(char *path) {
-       int fd;
-
-       return (gettemp(path, &fd) ? fd : -1);
-}
-#endif
-
-#ifdef NEED_MKTEMP
-char *
-mktemp(char *path) {
-       return(gettemp(path, (int *)NULL) ? path : (char *)NULL);
-}
-#endif
-
-static int
-gettemp(char *path, int *doopen) {
-       char *start, *trv;
-       struct stat sbuf;
-       u_int pid;
-
-       pid = getpid();
-       for (trv = path; *trv; ++trv);          /*%< extra X's get set to 0's */
-       while (*--trv == 'X') {
-               *trv = (pid % 10) + '0';
-               pid /= 10;
-       }
-
-       /*
-        * check the target directory; if you have six X's and it
-        * doesn't exist this runs for a *very* long time.
-        */
-       for (start = trv + 1;; --trv) {
-               if (trv <= path)
-                       break;
-               if (*trv == '/') {
-                       *trv = '\0';
-                       if (stat(path, &sbuf))
-                               return(0);
-                       if (!S_ISDIR(sbuf.st_mode)) {
-                               errno = ENOTDIR;
-                               return(0);
-                       }
-                       *trv = '/';
-                       break;
-               }
-       }
-
-       for (;;) {
-               if (doopen) {
-                       if ((*doopen =
-                           open(path, O_CREAT|O_EXCL|O_RDWR, 0600)) >= 0)
-                               return(1);
-                       if (errno != EEXIST)
-                               return(0);
-               }
-               else if (stat(path, &sbuf))
-                       return(errno == ENOENT ? 1 : 0);
-
-               /* tricky little algorithm for backward compatibility */
-               for (trv = start;;) {
-                       if (!*trv)
-                               return(0);
-                       if (*trv == 'z')
-                               *trv++ = 'a';
-                       else {
-                               if (isdigit(*trv))
-                                       *trv = 'a';
-                               else
-                                       ++*trv;
-                               break;
-                       }
-               }
-       }
-       /*NOTREACHED*/
-}
-
-#endif /*NEED_MKTEMP*/
-
-/*! \file */
diff --git a/lib/bind/bsd/putenv.c b/lib/bind/bsd/putenv.c
deleted file mode 100644 (file)
index 2dcbc57..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: putenv.c,v 1.2 2005/04/27 04:56:11 sra Exp $";
-#endif
-
-#include "port_before.h"
-#include "port_after.h"
-
-/*%
- * To give a little credit to Sun, SGI,
- * and many vendors in the SysV world.
- */
-
-#if !defined(NEED_PUTENV)
-int __bindcompat_putenv;
-#else
-int
-putenv(char *str) {
-       char *tmp;
-
-       for (tmp = str; *tmp && (*tmp != '='); tmp++)
-               ;
-
-       return (setenv(str, tmp, 1));
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/bsd/readv.c b/lib/bind/bsd/readv.c
deleted file mode 100644 (file)
index 5fa691a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: readv.c,v 1.2 2005/04/27 04:56:11 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-
-#include "port_after.h"
-
-#ifndef NEED_READV
-int __bindcompat_readv;
-#else
-
-int
-__readv(fd, vp, vpcount)
-       int fd;
-       const struct iovec *vp;
-       int vpcount;
-{
-       int count = 0;
-
-       while (vpcount-- > 0) {
-               int bytes = read(fd, vp->iov_base, vp->iov_len);
-
-               if (bytes < 0)
-                       return (-1);
-               count += bytes;
-               if (bytes != vp->iov_len)
-                       break;
-               vp++;
-       }
-       return (count);
-}
-#endif /* NEED_READV */
-/*! \file */
diff --git a/lib/bind/bsd/setenv.c b/lib/bind/bsd/setenv.c
deleted file mode 100644 (file)
index baf00f6..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)setenv.c     8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: setenv.c,v 1.2 2005/04/27 04:56:11 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1987, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#if !defined(NEED_SETENV)
-int __bindcompat_setenv;
-#else
-
-extern char **environ;
-
-static char *findenv(const char *name, int *offset);
-
-/*%
- * setenv --
- *     Set the value of the environmental variable "name" to be
- *     "value".  If rewrite is set, replace any current value.
- */
-setenv(const char *name, const char *value, int rewrite) {
-       extern char **environ;
-       static int alloced;                     /*%< if allocated space before */
-       char *c;
-       int l_value, offset;
-
-       if (*value == '=')                      /*%< no `=' in value */
-               ++value;
-       l_value = strlen(value);
-       if ((c = findenv(name, &offset))) {     /*%< find if already exists */
-               if (!rewrite)
-                       return (0);
-               if (strlen(c) >= l_value) {     /*%< old larger; copy over */
-                       while (*c++ = *value++);
-                       return (0);
-               }
-       } else {                                        /*%< create new slot */
-               int cnt;
-               char **p;
-
-               for (p = environ, cnt = 0; *p; ++p, ++cnt);
-               if (alloced) {                  /*%< just increase size */
-                       environ = (char **)realloc((char *)environ,
-                           (size_t)(sizeof(char *) * (cnt + 2)));
-                       if (!environ)
-                               return (-1);
-               }
-               else {                          /*%< get new space */
-                       alloced = 1;            /*%< copy old entries into it */
-                       p = malloc((size_t)(sizeof(char *) * (cnt + 2)));
-                       if (!p)
-                               return (-1);
-                       memcpy(p, environ, cnt * sizeof(char *));
-                       environ = p;
-               }
-               environ[cnt + 1] = NULL;
-               offset = cnt;
-       }
-       for (c = (char *)name; *c && *c != '='; ++c);   /*%< no `=' in name */
-       if (!(environ[offset] =                 /*%< name + `=' + value */
-           malloc((size_t)((int)(c - name) + l_value + 2))))
-               return (-1);
-       for (c = environ[offset]; (*c = *name++) && *c != '='; ++c);
-       for (*c++ = '='; *c++ = *value++;);
-       return (0);
-}
-
-/*%
- * unsetenv(name) --
- *     Delete environmental variable "name".
- */
-void
-unsetenv(const char *name) {
-       char **p;
-       int offset;
-
-       while (findenv(name, &offset))  /*%< if set multiple times */
-               for (p = &environ[offset];; ++p)
-                       if (!(*p = *(p + 1)))
-                               break;
-}
-
-/*%
- * findenv --
- *     Returns pointer to value associated with name, if any, else NULL.
- *     Sets offset to be the offset of the name/value combination in the
- *     environmental array, for use by setenv(3) and unsetenv(3).
- *     Explicitly removes '=' in argument name.
- *
- *     This routine *should* be a static; don't use it.
- */
-static char *
-findenv(const char *name, int *offset) {
-       const char *np;
-       char **p, *c;
-       int len;
-
-       if (name == NULL || environ == NULL)
-               return (NULL);
-       for (np = name; *np && *np != '='; ++np)
-               continue;
-       len = np - name;
-       for (p = environ; (c = *p) != NULL; ++p)
-               if (strncmp(c, name, len) == 0 && c[len] == '=') {
-                       *offset = p - environ;
-                       return (c + len + 1);
-               }
-       return (NULL);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/bsd/setitimer.c b/lib/bind/bsd/setitimer.c
deleted file mode 100644 (file)
index 67881d7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: setitimer.c,v 1.2 2005/04/27 04:56:12 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/time.h>
-
-#include "port_after.h"
-
-/*%
- * Setitimer emulation routine.
- */
-#ifndef NEED_SETITIMER
-int __bindcompat_setitimer;
-#else
-
-int
-__setitimer(int which, const struct itimerval *value,
-           struct itimerval *ovalue)
-{
-       if (alarm(value->it_value.tv_sec) >= 0)
-               return (0);
-       else
-               return (-1);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/bsd/strcasecmp.c b/lib/bind/bsd/strcasecmp.c
deleted file mode 100644 (file)
index 0c9f0dc..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)strcasecmp.c 8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: strcasecmp.c,v 1.2 2005/04/27 04:56:12 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1987, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-#include <string.h>
-
-#include "port_after.h"
-
-#ifndef NEED_STRCASECMP
-int __strcasecmp_unneeded__;
-#else
-
-/*%
- * This array is designed for mapping upper and lower case letter
- * together for a case independent comparison.  The mappings are
- * based upon ascii character sequences.
- */
-static const u_char charmap[] = {
-       0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
-       0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
-       0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027,
-       0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037,
-       0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
-       0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
-       0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
-       0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
-       0100, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
-       0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
-       0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
-       0170, 0171, 0172, 0133, 0134, 0135, 0136, 0137,
-       0140, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
-       0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
-       0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
-       0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177,
-       0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207,
-       0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217,
-       0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227,
-       0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237,
-       0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247,
-       0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
-       0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267,
-       0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277,
-       0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307,
-       0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317,
-       0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327,
-       0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337,
-       0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347,
-       0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357,
-       0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367,
-       0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377
-};
-
-int
-strcasecmp(const char *s1, const char *s2) {
-       const u_char *cm = charmap,
-                    *us1 = (const u_char *)s1,
-                    *us2 = (const u_char *)s2;
-
-       while (cm[*us1] == cm[*us2++])
-               if (*us1++ == '\0')
-                       return (0);
-       return (cm[*us1] - cm[*--us2]);
-}
-
-int
-strncasecmp(const char *s1, const char *s2, size_t n) {
-       if (n != 0) {
-               const u_char *cm = charmap,
-                            *us1 = (const u_char *)s1,
-                            *us2 = (const u_char *)s2;
-
-               do {
-                       if (cm[*us1] != cm[*us2++])
-                               return (cm[*us1] - cm[*--us2]);
-                       if (*us1++ == '\0')
-                               break;
-               } while (--n != 0);
-       }
-       return (0);
-}
-
-#endif /*NEED_STRCASECMP*/
-
-/*! \file */
diff --git a/lib/bind/bsd/strdup.c b/lib/bind/bsd/strdup.c
deleted file mode 100644 (file)
index a8d31e9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "port_before.h"
-
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifndef NEED_STRDUP
-int __bind_strdup_unneeded;
-#else
-char *
-strdup(const char *src) {
-       char *dst = malloc(strlen(src) + 1);
-
-       if (dst)
-               strcpy(dst, src);
-       return (dst);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/bsd/strerror.c b/lib/bind/bsd/strerror.c
deleted file mode 100644 (file)
index 5973e63..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)strerror.c   8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: strerror.c,v 1.6 2008/02/18 03:49:08 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1988, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/types.h>
-
-#include <string.h>
-
-#include "port_after.h"
-
-#ifndef NEED_STRERROR
-int __strerror_unneeded__;
-#else
-
-#ifdef USE_SYSERROR_LIST
-extern int sys_nerr;
-extern char *sys_errlist[];
-#endif
-
-const char *
-isc_strerror(int num) {
-#define        UPREFIX "Unknown error: "
-       static char ebuf[40] = UPREFIX;         /*%< 64-bit number + slop */
-       u_int errnum;
-       char *p, *t;
-#ifndef USE_SYSERROR_LIST
-       const char *ret;
-#endif
-       char tmp[40];
-
-       errnum = num;                           /*%< convert to unsigned */
-#ifdef USE_SYSERROR_LIST
-       if (errnum < (u_int)sys_nerr)
-               return (sys_errlist[errnum]);
-#else
-#undef strerror
-       ret = strerror(num);                    /*%< call strerror() in libc */
-       if (ret != NULL)
-               return(ret);
-#endif
-
-       /* Do this by hand, so we don't include stdio(3). */
-       t = tmp;
-       do {
-               *t++ = "0123456789"[errnum % 10];
-       } while (errnum /= 10);
-       for (p = ebuf + sizeof(UPREFIX) - 1;;) {
-               *p++ = *--t;
-               if (t <= tmp)
-                       break;
-       }
-       return (ebuf);
-}
-
-#endif /*NEED_STRERROR*/
-
-/*! \file */
diff --git a/lib/bind/bsd/strpbrk.c b/lib/bind/bsd/strpbrk.c
deleted file mode 100644 (file)
index 4c12d88..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)strpbrk.c    8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: strpbrk.c,v 1.2 2005/04/27 04:56:12 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1985, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/cdefs.h>
-
-#include <string.h>
-
-#include "port_after.h"
-
-#ifndef NEED_STRPBRK
-int __strpbrk_unneeded__;
-#else
-
-/*%
- * Find the first occurrence in s1 of a character in s2 (excluding NUL).
- */
-char *
-strpbrk(const char *s1, const char *s2) {
-       const char *scanp;
-       int c, sc;
-
-       while ((c = *s1++) != 0) {
-               for (scanp = s2; (sc = *scanp++) != 0;)
-                       if (sc == c)
-                               return ((char *)(s1 - 1));
-       }
-       return (NULL);
-}
-
-#endif /*NEED_STRPBRK*/
-
-/*! \file */
diff --git a/lib/bind/bsd/strsep.c b/lib/bind/bsd/strsep.c
deleted file mode 100644 (file)
index c7969f0..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "strsep.c 8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: strsep.c,v 1.2 2005/04/27 04:56:12 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1990, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-#include <sys/cdefs.h>
-#include <string.h>
-#include <stdio.h>
-#include "port_after.h"
-
-#ifndef NEED_STRSEP
-int __strsep_unneeded__;
-#else
-
-/*%
- * Get next token from string *stringp, where tokens are possibly-empty
- * strings separated by characters from delim.  
- *
- * Writes NULs into the string at *stringp to end tokens.
- * delim need not remain constant from call to call.
- * On return, *stringp points past the last NUL written (if there might
- * be further tokens), or is NULL (if there are definitely no more tokens).
- *
- * If *stringp is NULL, strsep returns NULL.
- */
-char *
-strsep(char **stringp, const char *delim) {
-       char *s;
-       const char *spanp;
-       int c, sc;
-       char *tok;
-
-       if ((s = *stringp) == NULL)
-               return (NULL);
-       for (tok = s;;) {
-               c = *s++;
-               spanp = delim;
-               do {
-                       if ((sc = *spanp++) == c) {
-                               if (c == 0)
-                                       s = NULL;
-                               else
-                                       s[-1] = 0;
-                               *stringp = s;
-                               return (tok);
-                       }
-               } while (sc != 0);
-       }
-       /* NOTREACHED */
-}
-
-#endif /*NEED_STRSEP*/
-
-/*! \file */
diff --git a/lib/bind/bsd/strtoul.c b/lib/bind/bsd/strtoul.c
deleted file mode 100644 (file)
index b37ff72..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)strtoul.c    8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: strtoul.c,v 1.4 2008/02/18 03:49:08 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Copyright (c) 1990, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifndef NEED_STRTOUL
-int __strtoul_unneeded__;
-#else
-
-/*%
- * Convert a string to an unsigned long integer.
- *
- * Ignores `locale' stuff.  Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-u_long
-strtoul(const char *nptr, char **endptr, int base) {
-       const char *s = nptr;
-       u_long acc, cutoff;
-       int neg, c, any, cutlim;
-
-       neg = 0;
-
-       /*
-        * See strtol for comments as to the logic used.
-        */
-       do {
-               c = *(const unsigned char *)s++;
-       } while (isspace(c));
-       if (c == '-') {
-               neg = 1;
-               c = *s++;
-       } else if (c == '+')
-               c = *s++;
-       if ((base == 0 || base == 16) &&
-           c == '0' && (*s == 'x' || *s == 'X')) {
-               c = s[1];
-               s += 2;
-               base = 16;
-       }
-       if (base == 0)
-               base = c == '0' ? 8 : 10;
-       cutoff = (u_long)ULONG_MAX / (u_long)base;
-       cutlim = (u_long)ULONG_MAX % (u_long)base;
-       for (acc = 0, any = 0;; c = *(const unsigned char*)s++) {
-               if (isdigit(c))
-                       c -= '0';
-               else if (isalpha(c))
-                       c -= isupper(c) ? 'A' - 10 : 'a' - 10;
-               else
-                       break;
-               if (c >= base)
-                       break;
-               if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
-                       any = -1;
-               else {
-                       any = 1;
-                       acc *= base;
-                       acc += c;
-               }
-       }
-       if (any < 0) {
-               acc = ULONG_MAX;
-               errno = ERANGE;
-       } else if (neg)
-               acc = -acc;
-       if (endptr != 0)
-               DE_CONST((any ? s - 1 : nptr), *endptr);
-       return (acc);
-}
-
-#endif /*NEED_STRTOUL*/
-
-/*! \file */
diff --git a/lib/bind/bsd/utimes.c b/lib/bind/bsd/utimes.c
deleted file mode 100644 (file)
index 2f65cff..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <utime.h>
-
-#include "port_after.h"
-
-#ifndef NEED_UTIMES
-int __bind_utimes_unneeded;
-#else
-
-int
-__utimes(char *filename, struct timeval *tvp) {
-       struct utimbuf utb;
-
-       utb.actime = (time_t)tvp[0].tv_sec;
-       utb.modtime = (time_t)tvp[1].tv_sec;
-       return (utime(filename, &utb));
-}
-
-#endif /* NEED_UTIMES */
-/*! \file */
diff --git a/lib/bind/bsd/writev.c b/lib/bind/bsd/writev.c
deleted file mode 100644 (file)
index 65baa71..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: writev.c,v 1.3 2005/04/27 04:56:13 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-
-#include "port_after.h"
-
-#ifndef NEED_WRITEV
-int __bindcompat_writev;
-#else
-
-#ifdef _CRAY
-#define OWN_WRITEV
-int
-__writev(int fd, struct iovec *iov, int iovlen)
-{
-       struct stat statbuf;
-
-       if (fstat(fd, &statbuf) < 0)
-               return (-1);
-
-       /*
-        * Allow for atomic writes to network.
-        */
-       if (statbuf.st_mode & S_IFSOCK) {
-               struct msghdr   mesg;           
-
-               memset(&mesg, 0, sizeof(mesg));
-               mesg.msg_name = 0;
-               mesg.msg_namelen = 0;
-               mesg.msg_iov = iov;
-               mesg.msg_iovlen = iovlen;
-               mesg.msg_accrights = 0;
-               mesg.msg_accrightslen = 0;
-               return (sendmsg(fd, &mesg, 0));
-       } else {
-               struct iovec *tv;
-               int i, rcode = 0, count = 0;
-
-               for (i = 0, tv = iov; i <= iovlen; tv++) {
-                       rcode = write(fd, tv->iov_base, tv->iov_len);
-
-                       if (rcode < 0)
-                               break;
-
-                       count += rcode;
-               }
-
-               if (count == 0)
-                       return (rcode);
-               else
-                       return (count);
-       }
-}
-
-#else /*_CRAY*/
-
-int
-__writev(fd, vp, vpcount)
-       int fd;
-       const struct iovec *vp;
-       int vpcount;
-{
-       int count = 0;
-
-       while (vpcount-- > 0) {
-               int written = write(fd, vp->iov_base, vp->iov_len);
-
-               if (written < 0)
-                       return (-1);
-               count += written;
-               if (written != vp->iov_len)
-                       break;
-               vp++;
-       }
-       return (count);
-}
-
-#endif /*_CRAY*/
-
-#endif /*NEED_WRITEV*/
-
-/*! \file */
diff --git a/lib/bind/config.h.in b/lib/bind/config.h.in
deleted file mode 100644 (file)
index 5e2a83d..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#undef _SOCKADDR_LEN
-#undef HAVE_FCNTL_H
-#undef HAVE_PATHS_H
-#undef HAVE_INTTYPES_H
-#undef HAVE_STROPTS_H
-#undef HAVE_SYS_TIMERS_H
-#undef HAVE_SYS_SELECT_H
-#undef HAVE_MEMORY_H
-#undef SYS_CDEFS_H
-#undef _POSIX_PTHREAD_SEMANTICS
-#undef POSIX_GETPWUID_R
-#undef POSIX_GETPWNAM_R
-#undef POSIX_GETGRGID_R
-#undef POSIX_GETGRNAM_R
-#undef HAVE_MEMMOVE
-#undef HAVE_MEMCHR
-#undef SPRINTF_CHAR
-#undef VSPRINTF_CHAR
-#undef USE_SYSERROR_LIST
-#undef NEED_STRTOUL
-#undef NEED_SUN4PROTOS
-#undef REENABLE_SEND
-
-#undef NEED_SETGROUPENT
-#undef NEED_GETGROUPLIST
-
-/* define if prototype for getgrnam_r() is required */
-#undef NEED_GETGRNAM_R 
-#undef NEED_GETGRGID_R 
-#undef NEED_GETGRENT_R 
-#undef NEED_SETGRENT_R 
-#undef NEED_ENDGRENT_R 
-
-#undef NEED_INNETGR_R
-#undef NEED_SETNETGRENT_R
-#undef NEED_ENDNETGRENT_R
-
-#undef NEED_GETPWNAM_R
-#undef NEED_GETPWUID_R
-#undef NEED_SETPWENT_R
-#undef NEED_SETPASSENT_R
-#undef NEED_SETPWENT_R
-#undef NEED_GETPWENT_R
-#undef NEED_ENDPWENT_R
-
-#undef NEED_SETPASSENT
-
-#undef HAS_PW_CLASS
-
-#undef ssize_t
-#undef uintptr_t
-
-/* 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
-#undef BROKEN_IN6ADDR_INIT_MACROS
-#undef HAVE_STRLCAT
-/* Shut up warnings about missing braces */
-#undef SHUTUP_MUTEX_INITIALIZER
-#ifdef SHUTUP_MUTEX_INITIALIZER
-#define LIBBIND_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER }
-#else
-#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#endif
-
diff --git a/lib/bind/configure b/lib/bind/configure
deleted file mode 100644 (file)
index 88ac3a1..0000000
+++ /dev/null
@@ -1,34273 +0,0 @@
-#! /bin/sh
-# From configure.in Revision: 1.137 .
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""       $as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-        /*)
-          for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-          done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-       case $1 in
-        -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "$0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-tagnames=${tagnames+${tagnames},}CXX
-
-tagnames=${tagnames+${tagnames},}F77
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="resolv/herror.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-SET_MAKE
-RANLIB
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-STD_CINCLUDES
-STD_CDEFINES
-STD_CWARNINGS
-CCOPT
-AR
-ARFLAGS
-LN
-ETAGS
-PERL
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-CPP
-GREP
-EGREP
-ISC_PLATFORM_NEEDSYSSELECTH
-WANT_IRS_GR
-WANT_IRS_GR_OBJS
-WANT_IRS_PW
-WANT_IRS_PW_OBJS
-WANT_IRS_NIS
-WANT_IRS_NIS_OBJS
-WANT_IRS_NISGR_OBJS
-WANT_IRS_NISPW_OBJS
-WANT_IRS_DBPW_OBJS
-ALWAYS_DEFINES
-DO_PTHREADS
-WANT_IRS_THREADSGR_OBJS
-WANT_IRS_THREADSPW_OBJS
-WANT_IRS_THREADS_OBJS
-WANT_THREADS_OBJS
-USE_IFNAMELINKID
-ISC_THREAD_DIR
-DAEMON_OBJS
-NEED_DAEMON
-STRSEP_OBJS
-NEED_STRSEP
-NEED_STRERROR
-MKDEPCC
-MKDEPCFLAGS
-MKDEPPROG
-IRIX_DNSSEC_WARNINGS_HACK
-purify_path
-PURIFY
-LN_S
-ECHO
-STRIP
-CXX
-CXXFLAGS
-ac_ct_CXX
-CXXCPP
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
-O
-A
-SA
-LIBTOOL_MKDEP_SED
-LIBTOOL_MODE_COMPILE
-LIBTOOL_MODE_INSTALL
-LIBTOOL_MODE_LINK
-HAS_INET6_STRUCTS
-ISC_PLATFORM_NEEDNETINETIN6H
-ISC_PLATFORM_NEEDNETINET6IN6H
-HAS_IN_ADDR6
-NEED_IN6ADDR_ANY
-ISC_PLATFORM_HAVEIN6PKTINFO
-ISC_PLATFORM_FIXIN6ISADDR
-ISC_IPV6_H
-ISC_IPV6_O
-ISC_ISCIPV6_O
-ISC_IPV6_C
-HAVE_SIN6_SCOPE_ID
-HAVE_SOCKADDR_STORAGE
-ISC_PLATFORM_NEEDNTOP
-ISC_PLATFORM_NEEDPTON
-ISC_PLATFORM_NEEDATON
-HAVE_SA_LEN
-HAVE_MINIMUM_IFREQ
-BSD_COMP
-SOLARIS_BITTYPES
-USE_FIONBIO_IOCTL
-PORT_NONBLOCK
-PORT_DIR
-USE_POLL
-HAVE_MD5
-SOLARIS2
-PORT_INCLUDE
-ISC_PLATFORM_MSGHDRFLAVOR
-ISC_PLATFORM_NEEDPORTT
-ISC_PLATFORM_NEEDTIMESPEC
-ISC_LWRES_ENDHOSTENTINT
-ISC_LWRES_SETNETENTINT
-ISC_LWRES_ENDNETENTINT
-ISC_LWRES_GETHOSTBYADDRVOID
-ISC_LWRES_NEEDHERRNO
-ISC_LWRES_GETIPNODEPROTO
-ISC_LWRES_GETADDRINFOPROTO
-ISC_LWRES_GETNAMEINFOPROTO
-NEED_PSELECT
-NEED_GETTIMEOFDAY
-HAVE_STRNDUP
-ISC_PLATFORM_NEEDSTRSEP
-ISC_PLATFORM_NEEDVSNPRINTF
-ISC_EXTRA_OBJS
-ISC_EXTRA_SRCS
-ISC_PLATFORM_QUADFORMAT
-ISC_SOCKLEN_T
-GETGROUPLIST_ARGS
-NET_R_ARGS
-NET_R_BAD
-NET_R_COPY
-NET_R_COPY_ARGS
-NET_R_OK
-NET_R_SETANSWER
-NET_R_RETURN
-GETNETBYADDR_ADDR_T
-NETENT_DATA
-NET_R_ENT_ARGS
-NET_R_SET_RESULT
-NET_R_SET_RETURN
-NET_R_END_RESULT
-NET_R_END_RETURN
-GROUP_R_ARGS
-GROUP_R_BAD
-GROUP_R_OK
-GROUP_R_RETURN
-GROUP_R_END_RESULT
-GROUP_R_END_RETURN
-GROUP_R_ENT_ARGS
-GROUP_R_SET_RESULT
-GROUP_R_SET_RETURN
-HOST_R_ARGS
-HOST_R_BAD
-HOST_R_COPY
-HOST_R_COPY_ARGS
-HOST_R_ERRNO
-HOST_R_OK
-HOST_R_RETURN
-HOST_R_SETANSWER
-HOSTENT_DATA
-HOST_R_END_RESULT
-HOST_R_END_RETURN
-HOST_R_ENT_ARGS
-HOST_R_SET_RESULT
-HOST_R_SET_RETURN
-SETPWENT_VOID
-SETGRENT_VOID
-NGR_R_CONST
-NGR_R_ARGS
-NGR_R_BAD
-NGR_R_COPY
-NGR_R_COPY_ARGS
-NGR_R_OK
-NGR_R_RETURN
-NGR_R_PRIVATE
-NGR_R_END_RESULT
-NGR_R_END_RETURN
-NGR_R_END_ARGS
-NGR_R_SET_RESULT
-NGR_R_SET_RETURN
-NGR_R_SET_ARGS
-NGR_R_SET_CONST
-PROTO_R_ARGS
-PROTO_R_BAD
-PROTO_R_COPY
-PROTO_R_COPY_ARGS
-PROTO_R_OK
-PROTO_R_SETANSWER
-PROTO_R_RETURN
-PROTOENT_DATA
-PROTO_R_END_RESULT
-PROTO_R_END_RETURN
-PROTO_R_ENT_ARGS
-PROTO_R_ENT_UNUSED
-PROTO_R_SET_RESULT
-PROTO_R_SET_RETURN
-PASS_R_ARGS
-PASS_R_BAD
-PASS_R_COPY
-PASS_R_COPY_ARGS
-PASS_R_OK
-PASS_R_RETURN
-PASS_R_END_RESULT
-PASS_R_END_RETURN
-PASS_R_ENT_ARGS
-PASS_R_SET_RESULT
-PASS_R_SET_RETURN
-SERV_R_ARGS
-SERV_R_BAD
-SERV_R_COPY
-SERV_R_COPY_ARGS
-SERV_R_OK
-SERV_R_SETANSWER
-SERV_R_RETURN
-SERVENT_DATA
-SERV_R_END_RESULT
-SERV_R_END_RETURN
-SERV_R_ENT_ARGS
-SERV_R_ENT_UNUSED
-SERV_R_SET_RESULT
-SERV_R_SET_RETURN
-SETNETGRENT_ARGS
-INNETGR_ARGS
-BIND9_TOP_BUILDDIR
-BIND9_VERSION
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files='BIND9_INCLUDES
-BIND9_MAKE_RULES
-LIBBIND_API'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
-F77
-FFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
-               datadir sysconfdir sharedstatedir localstatedir includedir \
-               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$0" : 'X\(//\)[^/]' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
-       pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                         [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                         [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-threads     enable multithreading
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-static[=PKGS]  build static libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-ipv6                use IPv6 default=autodetect
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
- --with-irs-gr         Build ....
- --with-irs-pw         Build ....
- --with-irs-nis                Build ....
-  --with-randomdev=PATH Specify path for random device
-  --with-ptl2          on NetBSD, use the ptl2 thread library (experimental)
-  --with-purify=PATH   use Rational purify
-  --with-libtool       use GNU libtool (following indented options supported)
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-tags[=TAGS]      include additional configurations [automatic]
-  --with-kame=PATH     use Kame IPv6 default path /usr/local/v6
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CXXCPP      C++ preprocessor
-  F77         Fortran 77 compiler command
-  FFLAGS      Fortran 77 compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" || continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-       ac_must_keep_next=false # Got value, back to normal.
-      else
-       case $ac_arg in
-         *=* | --config-cache | -C | -disable-* | --disable-* \
-         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-         | -with-* | --with-* | -without-* | --without-* | --x)
-           case "$ac_configure_args0 " in
-             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-           esac
-           ;;
-         -* ) ac_must_keep_next=true ;;
-       esac
-      fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-       "s/'\''/'\''\\\\'\'''\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=\$$ac_var
-       case $ac_val in
-       *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-       esac
-       echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
-  set x "$ac_default_prefix/share/config.site" \
-       "$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-       { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-       { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-       { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-       ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-       @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-  SET_MAKE=
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-         if test $ac_prog = install &&
-           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         elif test $ac_prog = install &&
-           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # program-specific install script used by HP pwplus--don't use.
-           :
-         else
-           ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-           break 3
-         fi
-       fi
-      done
-    done
-    ;;
-esac
-done
-IFS=$as_save_IFS
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-
-
-
-
-
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $AR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_AR="$AR" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-AR=$ac_cv_path_AR
-if test -n "$AR"; then
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-ARFLAGS="cruv"
-
-
-
-# The POSIX ln(1) program.  Non-POSIX systems may substitute
-# "copy" or something.
-LN=ln
-
-
-case "$AR" in
-       "")
-               { { echo "$as_me:$LINENO: error:
-ar program not found.  Please fix your PATH to include the directory in
-which ar resides, or set AR in the environment with the full path to ar.
-" >&5
-echo "$as_me: error:
-ar program not found.  Please fix your PATH to include the directory in
-which ar resides, or set AR in the environment with the full path to ar.
-" >&2;}
-   { (exit 1); exit 1; }; }
-
-               ;;
-esac
-
-#
-# Etags.
-#
-for ac_prog in etags emacs-etags
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_ETAGS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ETAGS in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ETAGS="$ETAGS" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_ETAGS="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ETAGS=$ac_cv_path_ETAGS
-if test -n "$ETAGS"; then
-  { echo "$as_me:$LINENO: result: $ETAGS" >&5
-echo "${ECHO_T}$ETAGS" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ETAGS" && break
-done
-
-
-#
-# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
-# GNU emacs etags, and it requires the -L flag.
-#
-if test "X$ETAGS" != "X"; then
-       { echo "$as_me:$LINENO: checking for Exuberant Ctags etags" >&5
-echo $ECHO_N "checking for Exuberant Ctags etags... $ECHO_C" >&6; }
-       if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
-               { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-               ETAGS="$ETAGS -L"
-       else
-               { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       fi
-fi
-
-
-#
-# Perl is optional; it is used only by some of the system test scripts.
-#
-for ac_prog in perl5 perl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $PERL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PERL=$ac_cv_path_PERL
-if test -n "$PERL"; then
-  { echo "$as_me:$LINENO: result: $PERL" >&5
-echo "${ECHO_T}$PERL" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$PERL" && break
-done
-
-
-
-#
-# isc/list.h and others clash with the rest of BIND 9
-#
-case "$includedir" in
-       '${prefix}/include')
-               includedir='${prefix}/bind/include'
-               ;;
-esac
-case "$libdir" in
-       '${prefix}/lib')
-               libdir='${prefix}/bind/lib'
-               ;;
-esac
-
-#
-# Make sure INSTALL uses an absolute path, else it will be wrong in all
-# Makefiles, since they use make/rules.in and INSTALL will be adjusted by
-# configure based on the location of the file where it is substituted.
-# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
-# subdirectory of install-sh, This relative path will be wrong for all
-# directories more than one level down from install-sh.
-#
-case "$INSTALL" in
-       /*)
-                ;;
-        *)
-                #
-                # Not all systems have dirname.
-                #
-
-                ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
-
-
-                ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
-                test "$ac_dir" = "$ac_prog" && ac_dir=.
-                test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
-                INSTALL="$ac_dir/$ac_prog"
-                ;;
-esac
-
-#
-# On these hosts, we really want to use cc, not gcc, even if it is
-# found.  The gcc that these systems have will not correctly handle
-# pthreads.
-#
-# However, if the user sets $CC to be something, let that override
-# our change.
-#
-if test "X$CC" = "X" ; then
-       case "$host" in
-               *-dec-osf*)
-                       CC="cc"
-                       ;;
-               *-solaris*)
-                        # Use Sun's cc if it is available, but watch
-                        # out for /usr/ucb/cc; it will never be the right
-                        # compiler to use.
-                        #
-                        # If setting CC here fails, the AC_PROG_CC done
-                        # below might still find gcc.
-                       IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS=":"
-                       for ac_dir in $PATH; do
-                               test -z "$ac_dir" && ac_dir=.
-                               case "$ac_dir" in
-                               /usr/ucb)
-                                       # exclude
-                                       ;;
-                               *)
-                                       if test -f "$ac_dir/cc"; then
-                                               CC="$ac_dir/cc"
-                                               break
-                                       fi
-                                       ;;
-                               esac
-                       done
-                       IFS="$ac_save_ifs"
-                       ;;
-               *-hp-hpux*)
-                       CC="cc"
-                       ;;
-               mips-sgi-irix*)
-                       CC="cc"
-                       ;;
-       esac
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
-       ;;
-    [ab].out )
-       # We found the default executable, but exeext='' is most
-       # certainly right.
-       break;;
-    *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-       then :; else
-          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       fi
-       # We set ac_cv_exeext here because the later test for it is not
-       # safe: cross compilers may not add the suffix if given an `-o'
-       # argument, so we may need to know it at that point already.
-       # Even if this section looks crufty: it has the advantage of
-       # actually working.
-       break;;
-    * )
-       break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
-  xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-    # Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
-    $ac_path_GREP_found && break 3
-  done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-    # Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
-    $ac_path_EGREP_found && break 3
-  done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-
-   fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h stropts.h memory.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; }
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset cs;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *pcpcc;
-  char **ppc;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  pcpcc = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++pcpcc;
-  ppc = (char**) pcpcc;
-  pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-    if (s) return 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-    if (!foo) return 0;
-  }
-  return !cs[0] && !zero.x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_const=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_const=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_inline=$ac_kw
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6; }
-
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_size_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef size_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_size_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_size_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for ssize_t" >&5
-echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_ssize_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef ssize_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_ssize_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_ssize_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
-echo "${ECHO_T}$ac_cv_type_ssize_t" >&6; }
-if test $ac_cv_type_ssize_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define ssize_t signed
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for uintptr_t" >&5
-echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_uintptr_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef uintptr_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_uintptr_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_uintptr_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
-echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6; }
-if test $ac_cv_type_uintptr_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uintptr_t unsigned long
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
-if test "${ac_cv_header_time+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_time=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_time=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-echo "${ECHO_T}$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
-
-fi
-
-#
-# check if we need to #include sys/select.h explicitly
-#
-case $ac_cv_header_unistd_h in
-yes)
-{ echo "$as_me:$LINENO: checking if unistd.h defines fd_set" >&5
-echo $ECHO_N "checking if unistd.h defines fd_set... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <unistd.h>
-int
-main ()
-{
-fd_set read_set; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       case ac_cv_header_sys_select_h in
-       yes)
-         ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
-               ;;
-       no)
-               { { echo "$as_me:$LINENO: error: need either working unistd.h or sys/select.h" >&5
-echo "$as_me: error: need either working unistd.h or sys/select.h" >&2;}
-   { (exit 1); exit 1; }; }
-               ;;
-       esac
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       ;;
-no)
-       case ac_cv_header_sys_select_h in
-       yes)
-             ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
-               ;;
-       no)
-               { { echo "$as_me:$LINENO: error: need either unistd.h or sys/select.h" >&5
-echo "$as_me: error: need either unistd.h or sys/select.h" >&2;}
-   { (exit 1); exit 1; }; }
-               ;;
-       esac
-       ;;
-esac
-
-
-#
-# Find the machine's endian flavor.
-#
-{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if  ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \
-       && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN)
- bogus endian macros
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_bigendian=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       # It does not; compile a test program.
-if test "$cross_compiling" = yes; then
-  # try to guess the endianness by grepping values into an object file
-  ac_cv_c_bigendian=unknown
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
-short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
-int
-main ()
-{
- _ascii (); _ebcdic ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
-  ac_cv_c_bigendian=yes
-fi
-if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-  if test "$ac_cv_c_bigendian" = unknown; then
-    ac_cv_c_bigendian=no
-  else
-    # finding both strings is unlikely to happen, but who knows?
-    ac_cv_c_bigendian=unknown
-  fi
-fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long int l;
-    char c[sizeof (long int)];
-  } u;
-  u.l = 1;
-  return u.c[sizeof (long int) - 1] == 1;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_bigendian=no
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6; }
-case $ac_cv_c_bigendian in
-  yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
- ;;
-  no)
-     ;;
-  *)
-    { { echo "$as_me:$LINENO: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-echo "$as_me: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-
-
-
-# Check whether --with-irs-gr was given.
-if test "${with_irs_gr+set}" = set; then
-  withval=$with_irs_gr; want_irs_gr="$withval"
-else
-  want_irs_gr="no"
-fi
-
-case "$want_irs_gr" in
-yes) WANT_IRS_GR="#define WANT_IRS_GR 1"
-     WANT_IRS_GR_OBJS="\${WANT_IRS_GR_OBJS}"
-       ;;
-*) WANT_IRS_GR="#undef WANT_IRS_GR" WANT_IRS_GR_OBJS="";;
-esac
-
-
-
-
-# Check whether --with-irs-pw was given.
-if test "${with_irs_pw+set}" = set; then
-  withval=$with_irs_pw; want_irs_pw="$withval"
-else
-  want_irs_pw="no"
-fi
-
-case "$want_irs_pw" in
-yes) WANT_IRS_PW="#define WANT_IRS_PW 1"
-     WANT_IRS_PW_OBJS="\${WANT_IRS_PW_OBJS}";;
-*) WANT_IRS_PW="#undef WANT_IRS_PW" WANT_IRS_PW_OBJS="";;
-esac
-
-
-
-
-# Check whether --with-irs-nis was given.
-if test "${with_irs_nis+set}" = set; then
-  withval=$with_irs_nis; want_irs_nis="$withval"
-else
-  want_irs_nis="no"
-fi
-
-case "$want_irs_nis" in
-yes)
-       WANT_IRS_NIS="#define WANT_IRS_NIS 1"
-       WANT_IRS_NIS_OBJS="\${WANT_IRS_NIS_OBJS}"
-       case "$want_irs_gr" in
-       yes)
-               WANT_IRS_NISGR_OBJS="\${WANT_IRS_NISGR_OBJS}";;
-       *)
-               WANT_IRS_NISGR_OBJS="";;
-       esac
-       case "$want_irs_pw" in
-       yes)
-               WANT_IRS_NISPW_OBJS="\${WANT_IRS_NISPW_OBJS}";;
-       *)
-               WANT_IRS_NISPW_OBJS="";;
-       esac
-       ;;
-*)
-       WANT_IRS_NIS="#undef WANT_IRS_NIS"
-       WANT_IRS_NIS_OBJS=""
-       WANT_IRS_NISGR_OBJS=""
-       WANT_IRS_NISPW_OBJS="";;
-esac
-
-
-
-
-if test "$cross_compiling" = yes; then
-  WANT_IRS_DBPW_OBJS=""
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#ifdef HAVE_DB_H
-int have_db_h = 1;
-#else
-int have_db_h = 0;
-#endif
-main() { return(!have_db_h); }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  WANT_IRS_DBPW_OBJS="\${WANT_IRS_DBPW_OBJS}"
-
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-WANT_IRS_DBPW_OBJS=""
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-
-#
-# was --with-randomdev specified?
-#
-{ echo "$as_me:$LINENO: checking for random device" >&5
-echo $ECHO_N "checking for random device... $ECHO_C" >&6; }
-
-# Check whether --with-randomdev was given.
-if test "${with_randomdev+set}" = set; then
-  withval=$with_randomdev; use_randomdev="$withval"
-else
-  use_randomdev="unspec"
-fi
-
-
-case "$use_randomdev" in
-       unspec)
-               case "$host" in
-                       *-openbsd*)
-                               devrandom=/dev/srandom
-                               ;;
-                       *)
-                               devrandom=/dev/random
-                               ;;
-               esac
-               { echo "$as_me:$LINENO: result: $devrandom" >&5
-echo "${ECHO_T}$devrandom" >&6; }
-               as_ac_File=`echo "ac_cv_file_$devrandom" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $devrandom" >&5
-echo $ECHO_N "checking for $devrandom... $ECHO_C" >&6; }
-if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  test "$cross_compiling" = yes &&
-  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
-echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
-   { (exit 1); exit 1; }; }
-if test -r "$devrandom"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-ac_res=`eval echo '${'$as_ac_File'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_File'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define PATH_RANDOMDEV "$devrandom"
-_ACEOF
-
-fi
-
-               ;;
-       yes)
-               { { echo "$as_me:$LINENO: error: --with-randomdev must specify a path" >&5
-echo "$as_me: error: --with-randomdev must specify a path" >&2;}
-   { (exit 1); exit 1; }; }
-               ;;
-       *)
-               cat >>confdefs.h <<_ACEOF
-#define PATH_RANDOMDEV "$use_randomdev"
-_ACEOF
-
-               { echo "$as_me:$LINENO: result: using \"$use_randomdev\"" >&5
-echo "${ECHO_T}using \"$use_randomdev\"" >&6; }
-               ;;
-esac
-
-#
-# Begin pthreads checking.
-#
-# First, decide whether to use multithreading or not.
-#
-# Enable multithreading by default on systems where it is known
-# to work well, and where debugging of multithreaded programs
-# is supported.
-#
-
-{ echo "$as_me:$LINENO: checking whether to build with thread support" >&5
-echo $ECHO_N "checking whether to build with thread support... $ECHO_C" >&6; }
-
-case $host in
-*-dec-osf*)
-       use_threads=true ;;
-*-solaris2.[0-6])
-       # Thread signals are broken on Solaris 2.6; they are sometimes
-       # delivered to the wrong thread.
-       use_threads=false ;;
-*-solaris*)
-       use_threads=true ;;
-*-ibm-aix*)
-       use_threads=true ;;
-*-hp-hpux10*)
-       use_threads=false ;;
-*-hp-hpux11*)
-       use_threads=true ;;
-*-sgi-irix*)
-       use_threads=true ;;
-*-sco-sysv*uw*|*-*-sysv*UnixWare*)
-        # UnixWare
-       use_threads=false ;;
-*-*-sysv*OpenUNIX*)
-        # UnixWare
-       use_threads=true ;;
-*-netbsd*)
-       if test -r /usr/lib/libpthread.so ; then
-           use_threads=true
-       else
-           # Socket I/O optimizations introduced in 9.2 expose a
-           # bug in unproven-pthreads; see PR #12650
-           use_threads=false
-       fi
-       ;;
-*-openbsd*)
-       # OpenBSD users have reported that named dumps core on
-       # startup when built with threads.
-       use_threads=false ;;
-*-freebsd*)
-       use_threads=false ;;
-*-bsdi234*)
-       # Thread signals do not work reliably on some versions of BSD/OS.
-       use_threads=false ;;
-*-bsdi5*)
-       use_threads=true ;;
-*-linux*)
-       # Threads are disabled on Linux by default because most
-       # Linux kernels produce unusable core dumps from multithreaded
-       # programs, and because of limitations in setuid().
-       use_threads=false ;;
-*)
-       use_threads=false ;;
-esac
-
-# Check whether --enable-threads was given.
-if test "${enable_threads+set}" = set; then
-  enableval=$enable_threads;
-fi
-
-case "$enable_threads" in
-       yes)
-               use_threads=true
-               ;;
-       no)
-               use_threads=false
-               ;;
-       '')
-               # Use system-dependent default
-               ;;
-       *)
-               { { echo "$as_me:$LINENO: error: --enable-threads takes yes or no" >&5
-echo "$as_me: error: --enable-threads takes yes or no" >&2;}
-   { (exit 1); exit 1; }; }
-               ;;
-esac
-
-if $use_threads
-then
-       { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-if $use_threads
-then
-       #
-       # Search for / configure pthreads in a system-dependent fashion.
-       #
-       case "$host" in
-         *-netbsd*)
-               # NetBSD has multiple pthreads implementations.  The
-               # recommended one to use is "unproven-pthreads".  The
-               # older "mit-pthreads" may also work on some NetBSD
-               # versions.  The PTL2 thread library does not
-               # currently work with bind9, but can be chosen with
-               # the --with-ptl2 option for those who wish to
-               # experiment with it.
-               CC="gcc"
-               { echo "$as_me:$LINENO: checking which NetBSD thread library to use" >&5
-echo $ECHO_N "checking which NetBSD thread library to use... $ECHO_C" >&6; }
-
-
-# Check whether --with-ptl2 was given.
-if test "${with_ptl2+set}" = set; then
-  withval=$with_ptl2; use_ptl2="$withval"
-else
-  use_ptl2="no"
-fi
-
-
-               : ${LOCALBASE:=/usr/pkg}
-
-               if test "X$use_ptl2" = "Xyes"
-               then
-                       { echo "$as_me:$LINENO: result: PTL2" >&5
-echo "${ECHO_T}PTL2" >&6; }
-                       { echo "$as_me:$LINENO: WARNING: linking with PTL2 is highly experimental and not expected to work" >&5
-echo "$as_me: WARNING: linking with PTL2 is highly experimental and not expected to work" >&2;}
-                       CC=ptlgcc
-               else
-                       if test -r /usr/lib/libpthread.so
-                       then
-                               { echo "$as_me:$LINENO: result: native" >&5
-echo "${ECHO_T}native" >&6; }
-                               LIBS="-lpthread $LIBS"
-                       else
-                               if test ! -d $LOCALBASE/pthreads
-                               then
-                                       { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-                                       { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5
-echo "$as_me: error: \"could not find thread libraries\"" >&2;}
-   { (exit 1); exit 1; }; }
-                               fi
-
-                               if $use_threads
-                               then
-                                       { echo "$as_me:$LINENO: result: mit-pthreads/unproven-pthreads" >&5
-echo "${ECHO_T}mit-pthreads/unproven-pthreads" >&6; }
-                                       pkg="$LOCALBASE/pthreads"
-                                       lib1="-L$pkg/lib -Wl,-R$pkg/lib"
-                                       lib2="-lpthread -lm -lgcc -lpthread"
-                                       LIBS="$lib1 $lib2 $LIBS"
-                                       CPPFLAGS="$CPPFLAGS -I$pkg/include"
-                                       STD_CINCLUDES="$STD_CINCLUDES -I$pkg/include"
-                               fi
-                       fi
-               fi
-               ;;
-               *-freebsd*)
-                       # We don't want to set -lpthread as that break
-                       # the ability to choose threads library at final
-                       # link time and is not valid for all architectures.
-
-                       PTHREAD=
-                       if test "X$GCC" = "Xyes"; then
-                               saved_cc="$CC"
-                               CC="$CC -pthread"
-                               { echo "$as_me:$LINENO: checking for gcc -pthread support" >&5
-echo $ECHO_N "checking for gcc -pthread support... $ECHO_C" >&6; };
-                               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pthread.h>
-int
-main ()
-{
-printf("%x\n", pthread_create);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  PTHREAD="yes"
-                                           { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-                               CC="$saved_cc"
-                       fi
-                       if test "X$PTHREAD" != "Xyes"; then
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
-echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; }
-if test $ac_cv_lib_pthread_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
-_ACEOF
-
-  LIBS="-lpthread $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for thread_create in -lthr" >&5
-echo $ECHO_N "checking for thread_create in -lthr... $ECHO_C" >&6; }
-if test "${ac_cv_lib_thr_thread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lthr  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char thread_create ();
-int
-main ()
-{
-return thread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_thr_thread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_thr_thread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_thr_thread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_thr_thread_create" >&6; }
-if test $ac_cv_lib_thr_thread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBTHR 1
-_ACEOF
-
-  LIBS="-lthr $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lc_r" >&5
-echo $ECHO_N "checking for pthread_create in -lc_r... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_r_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc_r  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_r_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_r_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_c_r_pthread_create" >&6; }
-if test $ac_cv_lib_c_r_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBC_R 1
-_ACEOF
-
-  LIBS="-lc_r $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lc" >&5
-echo $ECHO_N "checking for pthread_create in -lc... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_c_pthread_create" >&6; }
-if test $ac_cv_lib_c_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBC 1
-_ACEOF
-
-  LIBS="-lc $LIBS"
-
-else
-  { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5
-echo "$as_me: error: \"could not find thread libraries\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-fi
-
-fi
-
-                       fi
-                       ;;
-               *)
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
-echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; }
-if test $ac_cv_lib_pthread_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
-_ACEOF
-
-  LIBS="-lpthread $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for __pthread_create in -lpthread" >&5
-echo $ECHO_N "checking for __pthread_create in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread___pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char __pthread_create ();
-int
-main ()
-{
-return __pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread___pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread___pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread___pthread_create" >&6; }
-if test $ac_cv_lib_pthread___pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
-_ACEOF
-
-  LIBS="-lpthread $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for __pthread_create_system in -lpthread" >&5
-echo $ECHO_N "checking for __pthread_create_system in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread___pthread_create_system+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char __pthread_create_system ();
-int
-main ()
-{
-return __pthread_create_system ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread___pthread_create_system=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread___pthread_create_system=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_create_system" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread___pthread_create_system" >&6; }
-if test $ac_cv_lib_pthread___pthread_create_system = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
-_ACEOF
-
-  LIBS="-lpthread $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lc_r" >&5
-echo $ECHO_N "checking for pthread_create in -lc_r... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_r_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc_r  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_r_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_r_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_c_r_pthread_create" >&6; }
-if test $ac_cv_lib_c_r_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBC_R 1
-_ACEOF
-
-  LIBS="-lc_r $LIBS"
-
-else
-
-{ echo "$as_me:$LINENO: checking for pthread_create in -lc" >&5
-echo $ECHO_N "checking for pthread_create in -lc... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_pthread_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_pthread_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_pthread_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_c_pthread_create" >&6; }
-if test $ac_cv_lib_c_pthread_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBC 1
-_ACEOF
-
-  LIBS="-lc $LIBS"
-
-else
-  { { echo "$as_me:$LINENO: error: \"could not find thread libraries\"" >&5
-echo "$as_me: error: \"could not find thread libraries\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-fi
-
-fi
-
-fi
-
-               ;;
-       esac
-fi
-
-if $use_threads
-then
-       if test "X$GCC" = "Xyes"; then
-               case "$host" in
-               *-freebsd*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               *-openbsd*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       ;;
-               *-solaris*)
-                       LIBS="$LIBS -lthread"
-                       ;;
-               *-ibm-aix*)
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               esac
-       else
-               case $host in
-               *-dec-osf*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       ;;
-               *-solaris*)
-                       CC="$CC -mt"
-                       CCOPT="$CCOPT -mt"
-                       ;;
-               *-ibm-aix*)
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               *-UnixWare*)
-                       CC="$CC -Kthread"
-                       CCOPT="$CCOPT -Kthread"
-                       ;;
-               esac
-       fi
-       cat >>confdefs.h <<\_ACEOF
-#define _REENTRANT 1
-_ACEOF
-
-       ALWAYS_DEFINES="-D_REENTRANT"
-       DO_PTHREADS="#define DO_PTHREADS 1"
-       WANT_IRS_THREADSGR_OBJS="\${WANT_IRS_THREADSGR_OBJS}"
-       WANT_IRS_THREADSPW_OBJS="\${WANT_IRS_THREADSPW_OBJS}"
-       case $host in
-       ia64-hp-hpux11.*)
-               WANT_IRS_THREADS_OBJS="";;
-       *)
-               WANT_IRS_THREADS_OBJS="\${WANT_IRS_THREADS_OBJS}";;
-       esac
-       WANT_THREADS_OBJS="\${WANT_THREADS_OBJS}"
-       thread_dir=pthreads
-
-       #
-       # We'd like to use sigwait() too
-       #
-       { echo "$as_me:$LINENO: checking for sigwait" >&5
-echo $ECHO_N "checking for sigwait... $ECHO_C" >&6; }
-if test "${ac_cv_func_sigwait+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define sigwait to an innocuous variant, in case <limits.h> declares sigwait.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define sigwait innocuous_sigwait
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char sigwait (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef sigwait
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sigwait ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_sigwait || defined __stub___sigwait
-choke me
-#endif
-
-int
-main ()
-{
-return sigwait ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_sigwait=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_sigwait=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_sigwait" >&5
-echo "${ECHO_T}$ac_cv_func_sigwait" >&6; }
-if test $ac_cv_func_sigwait = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: checking for sigwait in -lc" >&5
-echo $ECHO_N "checking for sigwait in -lc... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_sigwait+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sigwait ();
-int
-main ()
-{
-return sigwait ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_sigwait=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_sigwait=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_sigwait" >&5
-echo "${ECHO_T}$ac_cv_lib_c_sigwait" >&6; }
-if test $ac_cv_lib_c_sigwait = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: checking for sigwait in -lpthread" >&5
-echo $ECHO_N "checking for sigwait in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread_sigwait+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sigwait ();
-int
-main ()
-{
-return sigwait ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread_sigwait=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread_sigwait=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_sigwait" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_sigwait" >&6; }
-if test $ac_cv_lib_pthread_sigwait = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: checking for _Psigwait in -lpthread" >&5
-echo $ECHO_N "checking for _Psigwait in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread__Psigwait+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char _Psigwait ();
-int
-main ()
-{
-return _Psigwait ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread__Psigwait=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pthread__Psigwait=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread__Psigwait" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread__Psigwait" >&6; }
-if test $ac_cv_lib_pthread__Psigwait = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-fi
-
-fi
-
-fi
-
-fi
-
-
-       { echo "$as_me:$LINENO: checking for pthread_attr_getstacksize" >&5
-echo $ECHO_N "checking for pthread_attr_getstacksize... $ECHO_C" >&6; }
-if test "${ac_cv_func_pthread_attr_getstacksize+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define pthread_attr_getstacksize to an innocuous variant, in case <limits.h> declares pthread_attr_getstacksize.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define pthread_attr_getstacksize innocuous_pthread_attr_getstacksize
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char pthread_attr_getstacksize (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef pthread_attr_getstacksize
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_attr_getstacksize ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_pthread_attr_getstacksize || defined __stub___pthread_attr_getstacksize
-choke me
-#endif
-
-int
-main ()
-{
-return pthread_attr_getstacksize ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_pthread_attr_getstacksize=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_pthread_attr_getstacksize=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_pthread_attr_getstacksize" >&5
-echo "${ECHO_T}$ac_cv_func_pthread_attr_getstacksize" >&6; }
-if test $ac_cv_func_pthread_attr_getstacksize = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
-_ACEOF
-
-fi
-
-
-       #
-       # Additional OS-specific issues related to pthreads and sigwait.
-       #
-       case "$host" in
-               #
-               # One more place to look for sigwait.
-               #
-               *-freebsd*)
-                       { echo "$as_me:$LINENO: checking for sigwait in -lc_r" >&5
-echo $ECHO_N "checking for sigwait in -lc_r... $ECHO_C" >&6; }
-if test "${ac_cv_lib_c_r_sigwait+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc_r  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sigwait ();
-int
-main ()
-{
-return sigwait ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_c_r_sigwait=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_c_r_sigwait=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_sigwait" >&5
-echo "${ECHO_T}$ac_cv_lib_c_r_sigwait" >&6; }
-if test $ac_cv_lib_c_r_sigwait = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-fi
-
-                       ;;
-               #
-               # BSDI 3.0 through 4.0.1 needs pthread_init() to be
-               # called before certain pthreads calls.  This is deprecated
-               # in BSD/OS 4.1.
-               #
-               *-bsdi3.*|*-bsdi4.0*)
-                       cat >>confdefs.h <<\_ACEOF
-#define NEED_PTHREAD_INIT 1
-_ACEOF
-
-                       ;;
-               #
-               # LinuxThreads requires some changes to the way we
-               # deal with signals.
-               #
-               *-linux*)
-                       cat >>confdefs.h <<\_ACEOF
-#define HAVE_LINUXTHREADS 1
-_ACEOF
-
-                       ;;
-               #
-               # Ensure the right sigwait() semantics on Solaris and make
-               # sure we call pthread_setconcurrency.
-               #
-               *-solaris*)
-                       cat >>confdefs.h <<\_ACEOF
-#define _POSIX_PTHREAD_SEMANTICS 1
-_ACEOF
-
-                       { echo "$as_me:$LINENO: checking for pthread_setconcurrency" >&5
-echo $ECHO_N "checking for pthread_setconcurrency... $ECHO_C" >&6; }
-if test "${ac_cv_func_pthread_setconcurrency+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define pthread_setconcurrency to an innocuous variant, in case <limits.h> declares pthread_setconcurrency.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define pthread_setconcurrency innocuous_pthread_setconcurrency
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char pthread_setconcurrency (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef pthread_setconcurrency
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_setconcurrency ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_pthread_setconcurrency || defined __stub___pthread_setconcurrency
-choke me
-#endif
-
-int
-main ()
-{
-return pthread_setconcurrency ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_pthread_setconcurrency=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_pthread_setconcurrency=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_pthread_setconcurrency" >&5
-echo "${ECHO_T}$ac_cv_func_pthread_setconcurrency" >&6; }
-if test $ac_cv_func_pthread_setconcurrency = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define CALL_PTHREAD_SETCONCURRENCY 1
-_ACEOF
-
-fi
-
-                       cat >>confdefs.h <<\_ACEOF
-#define POSIX_GETPWUID_R 1
-_ACEOF
-
-                       cat >>confdefs.h <<\_ACEOF
-#define POSIX_GETPWNAM_R 1
-_ACEOF
-
-                       cat >>confdefs.h <<\_ACEOF
-#define POSIX_GETGRGID_R 1
-_ACEOF
-
-                       cat >>confdefs.h <<\_ACEOF
-#define POSIX_GETGRNAM_R 1
-_ACEOF
-
-                       ;;
-               *hpux11*)
-                       cat >>confdefs.h <<\_ACEOF
-#define NEED_ENDNETGRENT_R 1
-_ACEOF
-
-                       cat >>confdefs.h <<\_ACEOF
-#define _PTHREADS_DRAFT4 1
-_ACEOF
-
-                       ;;
-               #
-               # UnixWare does things its own way.
-               #
-               *-UnixWare*)
-                       cat >>confdefs.h <<\_ACEOF
-#define HAVE_UNIXWARE_SIGWAIT 1
-_ACEOF
-
-                       ;;
-       esac
-
-       #
-       # Look for sysconf to allow detection of the number of processors.
-       #
-       { echo "$as_me:$LINENO: checking for sysconf" >&5
-echo $ECHO_N "checking for sysconf... $ECHO_C" >&6; }
-if test "${ac_cv_func_sysconf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define sysconf to an innocuous variant, in case <limits.h> declares sysconf.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define sysconf innocuous_sysconf
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char sysconf (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef sysconf
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sysconf ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_sysconf || defined __stub___sysconf
-choke me
-#endif
-
-int
-main ()
-{
-return sysconf ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_sysconf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_sysconf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_sysconf" >&5
-echo "${ECHO_T}$ac_cv_func_sysconf" >&6; }
-if test $ac_cv_func_sysconf = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYSCONF 1
-_ACEOF
-
-fi
-
-
-else
-       ALWAYS_DEFINES=""
-       DO_PTHREADS="#undef DO_PTHREADS"
-       WANT_IRS_THREADSGR_OBJS=""
-       WANT_IRS_THREADSPW_OBJS=""
-       WANT_IRS_THREADS_OBJS=""
-       WANT_THREADS_OBJS=""
-       thread_dir=nothreads
-fi
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for strlcat" >&5
-echo $ECHO_N "checking for strlcat... $ECHO_C" >&6; }
-if test "${ac_cv_func_strlcat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strlcat to an innocuous variant, in case <limits.h> declares strlcat.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strlcat innocuous_strlcat
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strlcat (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strlcat
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strlcat ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strlcat || defined __stub___strlcat
-choke me
-#endif
-
-int
-main ()
-{
-return strlcat ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strlcat=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strlcat=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strlcat" >&5
-echo "${ECHO_T}$ac_cv_func_strlcat" >&6; }
-if test $ac_cv_func_strlcat = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRLCAT 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for memmove" >&5
-echo $ECHO_N "checking for memmove... $ECHO_C" >&6; }
-if test "${ac_cv_func_memmove+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define memmove to an innocuous variant, in case <limits.h> declares memmove.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define memmove innocuous_memmove
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char memmove (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef memmove
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char memmove ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_memmove || defined __stub___memmove
-choke me
-#endif
-
-int
-main ()
-{
-return memmove ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_memmove=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_memmove=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_memmove" >&5
-echo "${ECHO_T}$ac_cv_func_memmove" >&6; }
-if test $ac_cv_func_memmove = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_MEMMOVE 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for memchr" >&5
-echo $ECHO_N "checking for memchr... $ECHO_C" >&6; }
-if test "${ac_cv_func_memchr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define memchr to an innocuous variant, in case <limits.h> declares memchr.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define memchr innocuous_memchr
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char memchr (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef memchr
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char memchr ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_memchr || defined __stub___memchr
-choke me
-#endif
-
-int
-main ()
-{
-return memchr ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_memchr=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_memchr=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_memchr" >&5
-echo "${ECHO_T}$ac_cv_func_memchr" >&6; }
-if test $ac_cv_func_memchr = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_MEMCHR 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for strtoul" >&5
-echo $ECHO_N "checking for strtoul... $ECHO_C" >&6; }
-if test "${ac_cv_func_strtoul+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strtoul to an innocuous variant, in case <limits.h> declares strtoul.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strtoul innocuous_strtoul
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strtoul (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strtoul
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strtoul ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strtoul || defined __stub___strtoul
-choke me
-#endif
-
-int
-main ()
-{
-return strtoul ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strtoul=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strtoul=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strtoul" >&5
-echo "${ECHO_T}$ac_cv_func_strtoul" >&6; }
-if test $ac_cv_func_strtoul = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_STRTOUL 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for if_nametoindex" >&5
-echo $ECHO_N "checking for if_nametoindex... $ECHO_C" >&6; }
-if test "${ac_cv_func_if_nametoindex+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define if_nametoindex to an innocuous variant, in case <limits.h> declares if_nametoindex.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define if_nametoindex innocuous_if_nametoindex
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char if_nametoindex (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef if_nametoindex
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char if_nametoindex ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_if_nametoindex || defined __stub___if_nametoindex
-choke me
-#endif
-
-int
-main ()
-{
-return if_nametoindex ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_if_nametoindex=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_if_nametoindex=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_if_nametoindex" >&5
-echo "${ECHO_T}$ac_cv_func_if_nametoindex" >&6; }
-if test $ac_cv_func_if_nametoindex = yes; then
-  USE_IFNAMELINKID="#define USE_IFNAMELINKID 1"
-else
-  USE_IFNAMELINKID="#undef USE_IFNAMELINKID"
-fi
-
-
-
-ISC_THREAD_DIR=$thread_dir
-
-
-{ echo "$as_me:$LINENO: checking for daemon" >&5
-echo $ECHO_N "checking for daemon... $ECHO_C" >&6; }
-if test "${ac_cv_func_daemon+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define daemon to an innocuous variant, in case <limits.h> declares daemon.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define daemon innocuous_daemon
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char daemon (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef daemon
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char daemon ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_daemon || defined __stub___daemon
-choke me
-#endif
-
-int
-main ()
-{
-return daemon ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_daemon=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_daemon=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_daemon" >&5
-echo "${ECHO_T}$ac_cv_func_daemon" >&6; }
-if test $ac_cv_func_daemon = yes; then
-  DAEMON_OBJS="" NEED_DAEMON="#undef NEED_DAEMON"
-
-else
-  DAEMON_OBJS="\${DAEMON_OBJS}" NEED_DAEMON="#define NEED_DAEMON 1"
-
-fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for strsep" >&5
-echo $ECHO_N "checking for strsep... $ECHO_C" >&6; }
-if test "${ac_cv_func_strsep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strsep to an innocuous variant, in case <limits.h> declares strsep.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strsep innocuous_strsep
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strsep (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strsep
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strsep ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strsep || defined __stub___strsep
-choke me
-#endif
-
-int
-main ()
-{
-return strsep ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strsep=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strsep=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strsep" >&5
-echo "${ECHO_T}$ac_cv_func_strsep" >&6; }
-if test $ac_cv_func_strsep = yes; then
-  STRSEP_OBJS="" NEED_STRSEP="#undef NEED_STRSEP"
-
-else
-  STRSEP_OBJS="\${STRSEP_OBJS}" NEED_STRSEP="#define NEED_STRSEP 1"
-
-fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for strerror" >&5
-echo $ECHO_N "checking for strerror... $ECHO_C" >&6; }
-if test "${ac_cv_func_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strerror to an innocuous variant, in case <limits.h> declares strerror.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strerror innocuous_strerror
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strerror (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strerror
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strerror ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strerror || defined __stub___strerror
-choke me
-#endif
-
-int
-main ()
-{
-return strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strerror=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strerror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5
-echo "${ECHO_T}$ac_cv_func_strerror" >&6; }
-if test $ac_cv_func_strerror = yes; then
-  NEED_STRERROR="#undef NEED_STRERROR"
-else
-  NEED_STRERROR="#define NEED_STRERROR 1"
-fi
-
-
-
-if test -n "$NEED_STRERROR"
-then
-       { echo "$as_me:$LINENO: checking for extern char * sys_errlist" >&5
-echo $ECHO_N "checking for extern char * sys_errlist... $ECHO_C" >&6; }
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
- extern int sys_nerr; extern char *sys_errlist[];
-int
-main ()
-{
- const char *p = sys_errlist[0];
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-                   cat >>confdefs.h <<\_ACEOF
-#define USE_SYSERROR_LIST 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-
-#
-# flockfile is usually provided by pthreads, but we may want to use it
-# even if compiled with --disable-threads.
-#
-{ echo "$as_me:$LINENO: checking for flockfile" >&5
-echo $ECHO_N "checking for flockfile... $ECHO_C" >&6; }
-if test "${ac_cv_func_flockfile+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define flockfile to an innocuous variant, in case <limits.h> declares flockfile.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define flockfile innocuous_flockfile
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char flockfile (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef flockfile
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char flockfile ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_flockfile || defined __stub___flockfile
-choke me
-#endif
-
-int
-main ()
-{
-return flockfile ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_flockfile=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_flockfile=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_flockfile" >&5
-echo "${ECHO_T}$ac_cv_func_flockfile" >&6; }
-if test $ac_cv_func_flockfile = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_FLOCKFILE 1
-_ACEOF
-
-fi
-
-
-#
-# Indicate what the final decision was regarding threads.
-#
-{ echo "$as_me:$LINENO: checking whether to build with threads" >&5
-echo $ECHO_N "checking whether to build with threads... $ECHO_C" >&6; }
-if $use_threads; then
-       { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-#
-# End of pthreads stuff.
-#
-
-#
-# Additional compiler settings.
-#
-MKDEPCC="$CC"
-MKDEPCFLAGS="-M"
-IRIX_DNSSEC_WARNINGS_HACK=""
-
-if test "X$GCC" = "Xyes"; then
-        { echo "$as_me:$LINENO: checking if \"$CC\" supports -fno-strict-aliasing" >&5
-echo $ECHO_N "checking if \"$CC\" supports -fno-strict-aliasing... $ECHO_C" >&6; }
-        SAVE_CFLAGS=$CFLAGS
-        CFLAGS=-fno-strict-aliasing
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  FNOSTRICTALIASING=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       FNOSTRICTALIASING=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        CFLAGS=$SAVE_CFLAGS
-        if test "$FNOSTRICTALIASING" = "yes"; then
-                { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-               STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
-        else
-                { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-               STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
-        fi
-else
-       case $host in
-       *-dec-osf*)
-               CC="$CC -std"
-               CCOPT="$CCOPT -std"
-               MKDEPCC="$CC"
-               ;;
-       *-hp-hpux*)
-               CC="$CC -Ae -z"
-               # The version of the C compiler that constantly warns about
-                # 'const' as well as alignment issues is unfortunately not
-                # able to be discerned via the version of the operating
-                # system, nor does cc have a version flag.
-               case "`$CC +W 123 2>&1`" in
-               *Unknown?option*)
-                       STD_CWARNINGS="+w1"
-                       ;;
-               *)
-                       # Turn off the pointlessly noisy warnings.
-                       STD_CWARNINGS="+w1 +W 474,530,2193,2236"
-                       ;;
-               esac
-               CCOPT="$CCOPT -Ae -z"
-               LIBS="-Wl,+vnocompatwarnings $LIBS"
-MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>&1 | awk '"'"'BEGIN {colon=0; rec="";} { for (i = 0 ; i < NF; i++) { if (colon && a$i) continue; if ($i == "\\") continue; if (!colon) { rec =  $i continue; } if ($i == ":") { rec = rec " :" colon = 1 continue; } if (length(rec $i) > 76) { print rec " \\"; rec = "\t" $i; a$i = 1; } else { rec = rec " " $i a$i = 1; } } } END {print rec}'"'"' >>$TMP'
-               MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
-               ;;
-       *-sgi-irix*)
-               STD_CWARNINGS="-fullwarn -woff 1209"
-               #
-               # Silence more than 250 instances of
-               #   "prototyped function redeclared without prototype"
-               # and 11 instances of
-               #   "variable ... was set but never used"
-               # from lib/dns/sec/openssl.
-               #
-               IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
-               ;;
-       *-solaris*)
-               MKDEPCFLAGS="-xM"
-               ;;
-       *-UnixWare*)
-               CC="$CC -w"
-               ;;
-       esac
-fi
-
-#
-# _GNU_SOURCE is needed to access the fd_bits field of struct fd_set, which
-# is supposed to be opaque.
-#
-case $host in
-       *linux*)
-               STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
-               ;;
-esac
-
-
-
-
-
-
-#
-# NLS
-#
-{ echo "$as_me:$LINENO: checking for catgets" >&5
-echo $ECHO_N "checking for catgets... $ECHO_C" >&6; }
-if test "${ac_cv_func_catgets+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define catgets to an innocuous variant, in case <limits.h> declares catgets.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define catgets innocuous_catgets
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char catgets (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef catgets
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char catgets ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_catgets || defined __stub___catgets
-choke me
-#endif
-
-int
-main ()
-{
-return catgets ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_catgets=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_catgets=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_catgets" >&5
-echo "${ECHO_T}$ac_cv_func_catgets" >&6; }
-if test $ac_cv_func_catgets = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_CATGETS 1
-_ACEOF
-
-fi
-
-
-#
-# -lxnet buys us one big porting headache...  standards, gotta love 'em.
-#
-# AC_CHECK_LIB(xnet, socket, ,
-#    AC_CHECK_LIB(socket, socket)
-#    AC_CHECK_LIB(nsl, inet_ntoa)
-# )
-#
-# Use this for now, instead:
-#
-case "$host" in
-       mips-sgi-irix*)
-               ;;
-       ia64-hp-hpux11.*)
-
-{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_socket_socket=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_socket=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; }
-if test $ac_cv_lib_socket_socket = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5
-echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_ntoa ();
-int
-main ()
-{
-return inet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_nsl_inet_ntoa=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_nsl_inet_ntoa=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6; }
-if test $ac_cv_lib_nsl_inet_ntoa = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-               ;;
-       *)
-
-{ echo "$as_me:$LINENO: checking for gethostbyname_r in -ld4r" >&5
-echo $ECHO_N "checking for gethostbyname_r in -ld4r... $ECHO_C" >&6; }
-if test "${ac_cv_lib_d4r_gethostbyname_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ld4r  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname_r ();
-int
-main ()
-{
-return gethostbyname_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_d4r_gethostbyname_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_d4r_gethostbyname_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_d4r_gethostbyname_r" >&5
-echo "${ECHO_T}$ac_cv_lib_d4r_gethostbyname_r" >&6; }
-if test $ac_cv_lib_d4r_gethostbyname_r = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBD4R 1
-_ACEOF
-
-  LIBS="-ld4r $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_socket_socket=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_socket=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; }
-if test $ac_cv_lib_socket_socket = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5
-echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_ntoa ();
-int
-main ()
-{
-return inet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_nsl_inet_ntoa=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_nsl_inet_ntoa=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6; }
-if test $ac_cv_lib_nsl_inet_ntoa = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-               ;;
-esac
-
-#
-# Purify support
-#
-{ echo "$as_me:$LINENO: checking whether to use purify" >&5
-echo $ECHO_N "checking whether to use purify... $ECHO_C" >&6; }
-
-# Check whether --with-purify was given.
-if test "${with_purify+set}" = set; then
-  withval=$with_purify; use_purify="$withval"
-else
-  use_purify="no"
-fi
-
-
-case "$use_purify" in
-       no)
-               ;;
-       yes)
-               # Extract the first word of "purify", so it can be a program name with args.
-set dummy purify; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_purify_path+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $purify_path in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_purify_path="$purify_path" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_purify_path="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_purify_path" && ac_cv_path_purify_path="purify"
-  ;;
-esac
-fi
-purify_path=$ac_cv_path_purify_path
-if test -n "$purify_path"; then
-  { echo "$as_me:$LINENO: result: $purify_path" >&5
-echo "${ECHO_T}$purify_path" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-               ;;
-       *)
-               purify_path="$use_purify"
-               ;;
-esac
-
-case "$use_purify" in
-       no)
-               { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-               PURIFY=""
-               ;;
-       *)
-               if test -f $purify_path || test $purify_path = purify; then
-                       { echo "$as_me:$LINENO: result: $purify_path" >&5
-echo "${ECHO_T}$purify_path" >&6; }
-                       PURIFYFLAGS="`echo $PURIFYOPTIONS`"
-                       PURIFY="$purify_path $PURIFYFLAGS"
-               else
-                       { { echo "$as_me:$LINENO: error: $purify_path not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-purify=PATH
-" >&5
-echo "$as_me: error: $purify_path not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-purify=PATH
-" >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-               ;;
-esac
-
-
-
-#
-# GNU libtool support
-#
-case $host in
-sunos*)
-    # Just set the maximum command line length for sunos as it otherwise
-    # takes a exceptionally long time to work it out. Required for libtool.
-    lt_cv_sys_max_cmd_len=4096;
-    ;;
-esac
-
-
-# Check whether --with-libtool was given.
-if test "${with_libtool+set}" = set; then
-  withval=$with_libtool; use_libtool="$withval"
-else
-  use_libtool="no"
-fi
-
-
-case $use_libtool in
-       yes)
-               # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_shared=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_static=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-# Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_fast_install=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
-if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-
-fi
-
-SED=$lt_cv_path_SED
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-       lt_cv_path_NM="$tmp_nm -B"
-       break
-        ;;
-      *)
-       case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-       */dev/null*)
-         lt_cv_path_NM="$tmp_nm -p"
-         break
-         ;;
-       *)
-         lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-         continue # so that we can try to find one that supports BSD flags
-         ;;
-       esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
-NM="$lt_cv_path_NM"
-
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 9131 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  lt_cv_cc_needs_belf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_cc_needs_belf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-              { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CXXFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-        CXXFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-fi
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_f77_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_prog_f77_g=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo yes`
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* )
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
-              = "XX$teststring") >/dev/null 2>&1 &&
-           new_result=`expr "X$teststring" : ".*" 2>&1` &&
-           lt_cv_sys_max_cmd_len=$new_result &&
-           test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDGIRSTW]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris* | sysv5*)
-  symcode='[BDRT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-         if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
-           pipe_works=yes
-         fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&5
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
-else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
-if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-enable_dlopen=no
-enable_win32_dll=no
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-#
-# Check for any special shared library compilation flags.
-#
-lt_prog_cc_shlib=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    lt_prog_cc_shlib='-belf'
-    ;;
-  esac
-fi
-if test -n "$lt_prog_cc_shlib"; then
-  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
-echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
-  if echo "$old_CC $old_CFLAGS " | grep "[     ]$lt_prog_cc_shlib[     ]" >/dev/null; then :
-  else
-    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
-echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-     else
-       lt_prog_compiler_static_works=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11253: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:11257: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      else
-       lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case "$cc_basename" in
-         xlc*)
-         lt_prog_compiler_pic='-qnocommon'
-         lt_prog_compiler_wl='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl='-Wl,'
-       lt_prog_compiler_pic='-KPIC'
-       lt_prog_compiler_static='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic='-Kpic'
-      lt_prog_compiler_static='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic='-Kconform_pic'
-       lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11496: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:11500: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11556: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:11560: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  enable_shared_with_static_runtimes=no
-  archive_cmds=
-  archive_expsym_cmds=
-  old_archive_From_new_cmds=
-  old_archive_from_expsyms_cmds=
-  export_dynamic_flag_spec=
-  whole_archive_flag_spec=
-  thread_safe_flag_spec=
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_direct=no
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  link_all_deplibs=unknown
-  hardcode_automatic=no
-  module_cmds=
-  module_expsym_cmds=
-  always_export_symbols=no
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct=yes
-         else
-         # We have old collect2
-         hardcode_direct=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L=yes
-         hardcode_libdir_flag_spec='-L$libdir'
-         hardcode_libdir_separator=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag="-z nodefs"
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag=' ${wl}-bernotok'
-         allow_undefined_flag=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec=' '
-         archive_cmds_need_lc=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case "$host_os" in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc=no
-      hardcode_direct=no
-      hardcode_automatic=yes
-      hardcode_shlibpath_var=unsupported
-      whole_archive_flag_spec=''
-      link_all_deplibs=yes
-    if test "$GCC" = yes ; then
-       output_verbose_link_cmd='echo'
-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case "$cc_basename" in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld='+b $libdir'
-         hardcode_libdir_separator=:
-         hardcode_direct=no
-         hardcode_shlibpath_var=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec='-L$libdir'
-         hardcode_direct=no
-         hardcode_shlibpath_var=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator=:
-         hardcode_direct=yes
-         export_dynamic_flag_spec='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      link_all_deplibs=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    openbsd*)
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec='-R$libdir'
-          ;;
-        *)
-          archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      hardcode_libdir_separator=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds='$CC -r -o $output$reload_objs'
-         hardcode_direct=no
-        ;;
-       motorola)
-         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=no
-      hardcode_shlibpath_var=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec=
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc=no
-        else
-         archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var" || \
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 13704 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 13802 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# Report which libraries types will actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-    ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler \
-    CC \
-    LD \
-    lt_prog_compiler_wl \
-    lt_prog_compiler_pic \
-    lt_prog_compiler_static \
-    lt_prog_compiler_no_builtin_flag \
-    export_dynamic_flag_spec \
-    thread_safe_flag_spec \
-    whole_archive_flag_spec \
-    enable_shared_with_static_runtimes \
-    old_archive_cmds \
-    old_archive_from_new_cmds \
-    predep_objects \
-    postdep_objects \
-    predeps \
-    postdeps \
-    compiler_lib_search_path \
-    archive_cmds \
-    archive_expsym_cmds \
-    postinstall_cmds \
-    postuninstall_cmds \
-    old_archive_from_expsyms_cmds \
-    allow_undefined_flag \
-    no_undefined_flag \
-    export_symbols_cmds \
-    hardcode_libdir_flag_spec \
-    hardcode_libdir_flag_spec_ld \
-    hardcode_libdir_separator \
-    hardcode_automatic \
-    module_cmds \
-    module_expsym_cmds \
-    lt_cv_prog_compiler_c_o \
-    exclude_expsyms \
-    include_expsyms; do
-
-    case $var in
-    old_archive_cmds | \
-    old_archive_from_new_cmds | \
-    archive_cmds | \
-    archive_expsym_cmds | \
-    module_cmds | \
-    module_expsym_cmds | \
-    old_archive_from_expsyms_cmds | \
-    export_symbols_cmds | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
-
-  cat <<__EOF__ >> "$cfgfile"
-#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-# Check whether --with-tags was given.
-if test "${with_tags+set}" = set; then
-  withval=$with_tags; tagnames="$withval"
-fi
-
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
-    else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
-    "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-       ;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-       if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-           ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-           (test "X$CXX" != "Xg++"))) ; then
-         ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_automatic_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-compiler_CXX=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-else
-  lt_prog_compiler_no_builtin_flag_CXX=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-       grep 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec_CXX=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-ld_shlibs_CXX=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
-           aix_use_runtimelinking=yes
-           break
-           ;;
-         esac
-       done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    archive_cmds_CXX=''
-    hardcode_direct_CXX=yes
-    hardcode_libdir_separator_CXX=':'
-    link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.012|aix4.012.*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-       collect2name=`${CC} -print-prog-name=collect2`
-       if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-       then
-         # We have reworked collect2
-         hardcode_direct_CXX=yes
-       else
-         # We have old collect2
-         hardcode_direct_CXX=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_CXX=yes
-         hardcode_libdir_flag_spec_CXX='-L$libdir'
-         hardcode_libdir_separator_CXX=
-       fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-       shared_flag='-G'
-      else
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag='${wl}-G'
-       else
-         shared_flag='${wl}-bM:SRE'
-       fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    always_export_symbols_CXX=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      allow_undefined_flag_CXX='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-       hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-       allow_undefined_flag_CXX="-z nodefs"
-       archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-       # Warning - without using the other run time loading flags,
-       # -berok will link without error, but may produce a broken library.
-       no_undefined_flag_CXX=' ${wl}-bernotok'
-       allow_undefined_flag_CXX=' ${wl}-berok'
-       # -bexpall does not export symbols beginning with underscore (_)
-       always_export_symbols_CXX=yes
-       # Exported symbols can be pulled into shared objects from archives
-       whole_archive_flag_spec_CXX=' '
-       archive_cmds_need_lc_CXX=yes
-       # This is similar to how AIX traditionally builds it's shared libraries.
-       archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-    # as there is no search path for DLLs.
-    hardcode_libdir_flag_spec_CXX='-L$libdir'
-    allow_undefined_flag_CXX=unsupported
-    always_export_symbols_CXX=no
-    enable_shared_with_static_runtimes_CXX=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-       cp $export_symbols $output_objdir/$soname.def;
-      else
-       echo EXPORTS > $output_objdir/$soname.def;
-       cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      ld_shlibs_CXX=no
-    fi
-  ;;
-      darwin* | rhapsody*)
-        case "$host_os" in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
-      archive_cmds_need_lc_CXX=no
-      hardcode_direct_CXX=no
-      hardcode_automatic_CXX=yes
-      hardcode_shlibpath_var_CXX=unsupported
-      whole_archive_flag_spec_CXX=''
-      link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
-      output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
-      fi
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-        fi
-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-      case "$cc_basename" in
-        xlc*)
-         output_verbose_link_cmd='echo'
-          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_CXX=no
-          ;;
-      esac
-      fi
-        ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      ghcx)
-       # Green Hills C++ Compiler
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  freebsd12*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    ld_shlibs_CXX=no
-    ;;
-  freebsd-elf*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  freebsd* | kfreebsd*-gnu)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    ld_shlibs_CXX=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    export_dynamic_flag_spec_CXX='${wl}-E'
-    hardcode_direct_CXX=yes
-    hardcode_minus_L_CXX=yes # Not in the search PATH,
-                               # but as the default
-                               # location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      ld_shlibs_CXX=no
-      ;;
-    aCC)
-      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-       hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
-       hardcode_libdir_separator_CXX=:
-        ;;
-      ia64*)
-       hardcode_libdir_flag_spec_CXX='-L$libdir'
-        ;;
-      *)
-       hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-       hardcode_libdir_separator_CXX=:
-       export_dynamic_flag_spec_CXX='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      ;;
-    ia64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    *)
-      hardcode_direct_CXX=yes
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      aCC)
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-         ;;
-       *)
-         archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       esac
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test $with_gnu_ld = no; then
-           case "$host_cpu" in
-           ia64*|hppa*64*)
-             archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-             ;;
-           *)
-             archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           esac
-         fi
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-       # SGI C++
-       archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       # Archives containing C++ object files must be created using
-       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test "$with_gnu_ld" = no; then
-           archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-         else
-           archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-         fi
-       fi
-       link_all_deplibs_CXX=yes
-       ;;
-    esac
-    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-       archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
-       export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-       ;;
-      icpc)
-       # Intel C++
-       with_gnu_ld=yes
-       # version 8.0 and above of icpc choke on multiply defined symbols
-       # if we add $predep_objects and $postdep_objects, however 7.1 and
-       # earlier do not add the objects themselves.
-       case `$CC -V 2>&1` in
-       *"Version 7."*)
-         archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-         archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-         ;;
-       *)  # Version 8.0 or newer
-         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-         ;;
-       esac
-       archive_cmds_need_lc_CXX=no
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-       whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-       ;;
-      cxx)
-       # Compaq C++
-       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-       runpath_var=LD_RUN_PATH
-       hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      hardcode_libdir_flag_spec_CXX='-R$libdir'
-      hardcode_direct_CXX=yes
-      hardcode_shlibpath_var_CXX=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  openbsd2*)
-    # C++ shared libraries are fairly broken
-    ld_shlibs_CXX=no
-    ;;
-  openbsd*)
-    hardcode_direct_CXX=yes
-    hardcode_shlibpath_var_CXX=no
-    archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-      export_dynamic_flag_spec_CXX='${wl}-E'
-      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    fi
-    output_verbose_link_cmd='echo'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      cxx)
-       allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-         archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-         hardcode_libdir_separator_CXX=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Archives containing C++ object files must be created using
-       # the KAI C++ compiler.
-       old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
-       ;;
-      RCC)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      cxx)
-       allow_undefined_flag_CXX=' -expect_unresolved \*'
-       archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-       archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-         echo "-hidden">> $lib.exp~
-         $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
-         $rm $lib.exp'
-
-       hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-       hardcode_libdir_separator_CXX=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-        archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-         hardcode_libdir_separator_CXX=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         ld_shlibs_CXX=no
-       fi
-       ;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  sco*)
-    archive_cmds_need_lc_CXX=no
-    case $cc_basename in
-      CC)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.x
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      lcc)
-       # Lucid
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-       # Sun C++ 4.2, 5.x and Centerline C++
-       no_undefined_flag_CXX=' -zdefs'
-       archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-       archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-       hardcode_libdir_flag_spec_CXX='-R$libdir'
-       hardcode_shlibpath_var_CXX=no
-       case $host_os in
-         solaris2.0-5 | solaris2.0-5.*) ;;
-         *)
-           # The C++ compiler is used as linker so we must use $wl
-           # flag to pass the commands to the underlying system
-           # linker.
-           # Supported since Solaris 2.6 (maybe 2.5.1?)
-           whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-           ;;
-       esac
-       link_all_deplibs_CXX=yes
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       # Archives containing C++ object files must be created using
-       # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-       ;;
-      gcx)
-       # Green Hills C++ Compiler
-       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-       # The C++ compiler must be used to create the archive.
-       old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-       ;;
-      *)
-       # GNU C++ compiler with Solaris linker
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-         if $CC --version | grep -v '^2\.7' > /dev/null; then
-           archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         else
-           # g++ 2.7 appears to require `-G' NOT `-shared' on this
-           # platform.
-           archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         fi
-
-         hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-       fi
-       ;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-       # NonStop-UX NCC 3.20
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       ld_shlibs_CXX=no
-       ;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-esac
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-GCC_CXX="$GXX"
-LD_CXX="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-         || test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
-          # Internal compiler library paths should come after those
-          # provided the user.  The postdeps already come after the
-          # user supplied libs so there is no need to process them.
-          if test -z "$compiler_lib_search_path_CXX"; then
-            compiler_lib_search_path_CXX="${prev}${p}"
-          else
-            compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-          fi
-          ;;
-        # The "-l" case would never come before the object being
-        # linked, so don't bother handling this case.
-        esac
-       else
-        if test -z "$postdeps_CXX"; then
-          postdeps_CXX="${prev}${p}"
-        else
-          postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-        fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-        pre_test_object_deps_done=yes
-        continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        if test -z "$predep_objects_CXX"; then
-          predep_objects_CXX="$p"
-        else
-          predep_objects_CXX="$predep_objects_CXX $p"
-        fi
-       else
-        if test -z "$postdep_objects_CXX"; then
-          postdep_objects_CXX="$p"
-        else
-          postdep_objects_CXX="$postdep_objects_CXX $p"
-        fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$rm -f confest.$objext
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
-
-lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       ;;
-      *)
-       lt_prog_compiler_pic_CXX='-fPIC'
-       ;;
-      esac
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-       # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
-         # AIX 5 now supports IA64 processor
-         lt_prog_compiler_static_CXX='-Bstatic'
-       else
-         lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-       fi
-       ;;
-      chorus*)
-       case $cc_basename in
-       cxch68)
-         # Green Hills C++ Compiler
-         # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-         ;;
-       esac
-       ;;
-       darwin*)
-         # PIC is the default on this platform
-         # Common symbols not allowed in MH_DYLIB files
-         case "$cc_basename" in
-           xlc*)
-           lt_prog_compiler_pic_CXX='-qnocommon'
-           lt_prog_compiler_wl_CXX='-Wl,'
-           ;;
-         esac
-       ;;
-      dgux*)
-       case $cc_basename in
-         ec++)
-           lt_prog_compiler_pic_CXX='-KPIC'
-           ;;
-         ghcx)
-           # Green Hills C++ Compiler
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      freebsd* | kfreebsd*-gnu)
-       # FreeBSD uses GNU C++
-       ;;
-      hpux9* | hpux10* | hpux11*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           if test "$host_cpu" != ia64; then
-             lt_prog_compiler_pic_CXX='+Z'
-           fi
-           ;;
-         aCC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-           case "$host_cpu" in
-           hppa*64*|ia64*)
-             # +Z the default
-             ;;
-           *)
-             lt_prog_compiler_pic_CXX='+Z'
-             ;;
-           esac
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      irix5* | irix6* | nonstopux*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_static_CXX='-non_shared'
-           # CC pic flag -KPIC is the default.
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      linux*)
-       case $cc_basename in
-         KCC)
-           # KAI C++ Compiler
-           lt_prog_compiler_wl_CXX='--backend -Wl,'
-           lt_prog_compiler_pic_CXX='-fPIC'
-           ;;
-         icpc)
-           # Intel C++
-           lt_prog_compiler_wl_CXX='-Wl,'
-           lt_prog_compiler_pic_CXX='-KPIC'
-           lt_prog_compiler_static_CXX='-static'
-           ;;
-         cxx)
-           # Compaq C++
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           lt_prog_compiler_pic_CXX=
-           lt_prog_compiler_static_CXX='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      lynxos*)
-       ;;
-      m88k*)
-       ;;
-      mvs*)
-       case $cc_basename in
-         cxx)
-           lt_prog_compiler_pic_CXX='-W c,exportall'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      netbsd*)
-       ;;
-      osf3* | osf4* | osf5*)
-       case $cc_basename in
-         KCC)
-           lt_prog_compiler_wl_CXX='--backend -Wl,'
-           ;;
-         RCC)
-           # Rational C++ 2.4.1
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         cxx)
-           # Digital/Compaq C++
-           lt_prog_compiler_wl_CXX='-Wl,'
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           lt_prog_compiler_pic_CXX=
-           lt_prog_compiler_static_CXX='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      psos*)
-       ;;
-      sco*)
-       case $cc_basename in
-         CC)
-           lt_prog_compiler_pic_CXX='-fPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      solaris*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.2, 5.x and Centerline C++
-           lt_prog_compiler_pic_CXX='-KPIC'
-           lt_prog_compiler_static_CXX='-Bstatic'
-           lt_prog_compiler_wl_CXX='-Qoption ld '
-           ;;
-         gcx)
-           # Green Hills C++ Compiler
-           lt_prog_compiler_pic_CXX='-PIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      sunos4*)
-       case $cc_basename in
-         CC)
-           # Sun C++ 4.x
-           lt_prog_compiler_pic_CXX='-pic'
-           lt_prog_compiler_static_CXX='-Bstatic'
-           ;;
-         lcc)
-           # Lucid
-           lt_prog_compiler_pic_CXX='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      tandem*)
-       case $cc_basename in
-         NCC)
-           # NonStop-UX NCC 3.20
-           lt_prog_compiler_pic_CXX='-KPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      unixware*)
-       ;;
-      vxworks*)
-       ;;
-      *)
-       lt_prog_compiler_can_build_shared_CXX=no
-       ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_CXX=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15995: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:15999: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16055: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:16059: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_CXX=no
-        else
-         archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" || \
-   test -n "$runpath_var_CXX" || \
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_cxx_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 17383 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 17481 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_CXX \
-    CC_CXX \
-    LD_CXX \
-    lt_prog_compiler_wl_CXX \
-    lt_prog_compiler_pic_CXX \
-    lt_prog_compiler_static_CXX \
-    lt_prog_compiler_no_builtin_flag_CXX \
-    export_dynamic_flag_spec_CXX \
-    thread_safe_flag_spec_CXX \
-    whole_archive_flag_spec_CXX \
-    enable_shared_with_static_runtimes_CXX \
-    old_archive_cmds_CXX \
-    old_archive_from_new_cmds_CXX \
-    predep_objects_CXX \
-    postdep_objects_CXX \
-    predeps_CXX \
-    postdeps_CXX \
-    compiler_lib_search_path_CXX \
-    archive_cmds_CXX \
-    archive_expsym_cmds_CXX \
-    postinstall_cmds_CXX \
-    postuninstall_cmds_CXX \
-    old_archive_from_expsyms_cmds_CXX \
-    allow_undefined_flag_CXX \
-    no_undefined_flag_CXX \
-    export_symbols_cmds_CXX \
-    hardcode_libdir_flag_spec_CXX \
-    hardcode_libdir_flag_spec_ld_CXX \
-    hardcode_libdir_separator_CXX \
-    hardcode_automatic_CXX \
-    module_cmds_CXX \
-    module_expsym_cmds_CXX \
-    lt_cv_prog_compiler_c_o_CXX \
-    exclude_expsyms_CXX \
-    include_expsyms_CXX; do
-
-    case $var in
-    old_archive_cmds_CXX | \
-    old_archive_from_new_cmds_CXX | \
-    archive_cmds_CXX | \
-    archive_expsym_cmds_CXX | \
-    module_cmds_CXX | \
-    module_expsym_cmds_CXX | \
-    old_archive_from_expsyms_cmds_CXX | \
-    export_symbols_cmds_CXX | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      F77)
-       if test -n "$F77" && test "X$F77" != "Xno"; then
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
-archive_cmds_need_lc_F77=no
-allow_undefined_flag_F77=
-always_export_symbols_F77=no
-archive_expsym_cmds_F77=
-export_dynamic_flag_spec_F77=
-hardcode_direct_F77=no
-hardcode_libdir_flag_spec_F77=
-hardcode_libdir_flag_spec_ld_F77=
-hardcode_libdir_separator_F77=
-hardcode_minus_L_F77=no
-hardcode_automatic_F77=no
-module_cmds_F77=
-module_expsym_cmds_F77=
-link_all_deplibs_F77=unknown
-old_archive_cmds_F77=$old_archive_cmds
-no_undefined_flag_F77=
-whole_archive_flag_spec_F77=
-enable_shared_with_static_runtimes_F77=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-objext_F77=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-GCC_F77="$G77"
-LD_F77="$LD"
-
-lt_prog_compiler_wl_F77=
-lt_prog_compiler_pic_F77=
-lt_prog_compiler_static_F77=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_F77='-Wl,'
-    lt_prog_compiler_static_F77='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_F77='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_F77=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_F77=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_F77='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_F77='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_F77='-Bstatic'
-      else
-       lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case "$cc_basename" in
-         xlc*)
-         lt_prog_compiler_pic_F77='-qnocommon'
-         lt_prog_compiler_wl_F77='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_F77='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl_F77='-Wl,'
-       lt_prog_compiler_pic_F77='-KPIC'
-       lt_prog_compiler_static_F77='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_F77='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_F77='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_F77='-Kpic'
-      lt_prog_compiler_static_F77='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_F77='-Qoption ld '
-      lt_prog_compiler_pic_F77='-PIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic_F77='-Kconform_pic'
-       lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_F77='-pic'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_F77"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_F77=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_F77"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18318: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:18322: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_F77=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
-    case $lt_prog_compiler_pic_F77 in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
-     esac
-else
-    lt_prog_compiler_pic_F77=
-     lt_prog_compiler_can_build_shared_F77=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_F77=
-    ;;
-  *)
-    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_F77=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18378: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:18382: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_F77=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_F77=
-  enable_shared_with_static_runtimes_F77=no
-  archive_cmds_F77=
-  archive_expsym_cmds_F77=
-  old_archive_From_new_cmds_F77=
-  old_archive_from_expsyms_cmds_F77=
-  export_dynamic_flag_spec_F77=
-  whole_archive_flag_spec_F77=
-  thread_safe_flag_spec_F77=
-  hardcode_libdir_flag_spec_F77=
-  hardcode_libdir_flag_spec_ld_F77=
-  hardcode_libdir_separator_F77=
-  hardcode_direct_F77=no
-  hardcode_minus_L_F77=no
-  hardcode_shlibpath_var_F77=unsupported
-  link_all_deplibs_F77=unknown
-  hardcode_automatic_F77=no
-  module_cmds_F77=
-  module_expsym_cmds_F77=
-  always_export_symbols_F77=no
-  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_F77=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_F77=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs_F77=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_F77=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag_F77=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=no
-      enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs_F77=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_F77="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_F77="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_F77=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_F77=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_F77" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_F77='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec_F77=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=yes
-      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_F77=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct_F77=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_F77=''
-      hardcode_direct_F77=yes
-      hardcode_libdir_separator_F77=':'
-      link_all_deplibs_F77=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct_F77=yes
-         else
-         # We have old collect2
-         hardcode_direct_F77=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_F77=yes
-         hardcode_libdir_flag_spec_F77='-L$libdir'
-         hardcode_libdir_separator_F77=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_F77=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag_F77='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag_F77="-z nodefs"
-         archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_f77_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag_F77=' ${wl}-bernotok'
-         allow_undefined_flag_F77=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols_F77=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec_F77=' '
-         archive_cmds_need_lc_F77=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_F77=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec_F77=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_F77=' '
-      allow_undefined_flag_F77=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_F77='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_F77=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case "$host_os" in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc_F77=no
-      hardcode_direct_F77=no
-      hardcode_automatic_F77=yes
-      hardcode_shlibpath_var_F77=unsupported
-      whole_archive_flag_spec_F77=''
-      link_all_deplibs_F77=yes
-    if test "$GCC" = yes ; then
-       output_verbose_link_cmd='echo'
-        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case "$cc_basename" in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_F77=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_F77=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_direct_F77=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_F77=yes
-      export_dynamic_flag_spec_F77='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld_F77='+b $libdir'
-         hardcode_libdir_separator_F77=:
-         hardcode_direct_F77=no
-         hardcode_shlibpath_var_F77=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec_F77='-L$libdir'
-         hardcode_direct_F77=no
-         hardcode_shlibpath_var_F77=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_F77=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator_F77=:
-         hardcode_direct_F77=yes
-         export_dynamic_flag_spec_F77='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_F77=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      link_all_deplibs_F77=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    newsos6)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-       hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_F77='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec_F77='-R$libdir'
-          ;;
-        *)
-          archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      allow_undefined_flag_F77=unsupported
-      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag_F77=' -expect_unresolved \*'
-       archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag_F77=' -expect_unresolved \*'
-       archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_F77=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_shlibpath_var_F77=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_F77=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_F77=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds_F77='$CC -r -o $output$reload_objs'
-         hardcode_direct_F77=no
-        ;;
-       motorola)
-         archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var_F77=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs_F77=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=no
-      hardcode_shlibpath_var_F77=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_F77='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_F77=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_F77=
-      hardcode_shlibpath_var_F77=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    *)
-      ld_shlibs_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6; }
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_F77" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_F77=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_F77 in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_F77
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
-        allow_undefined_flag_F77=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_F77=no
-        else
-         archive_cmds_need_lc_F77=yes
-        fi
-        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_F77=
-if test -n "$hardcode_libdir_flag_spec_F77" || \
-   test -n "$runpath_var_F77" || \
-   test "X$hardcode_automatic_F77" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_F77" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
-     test "$hardcode_minus_L_F77" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_F77=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_F77=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_F77=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6; }
-
-if test "$hardcode_action_F77" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_F77 \
-    CC_F77 \
-    LD_F77 \
-    lt_prog_compiler_wl_F77 \
-    lt_prog_compiler_pic_F77 \
-    lt_prog_compiler_static_F77 \
-    lt_prog_compiler_no_builtin_flag_F77 \
-    export_dynamic_flag_spec_F77 \
-    thread_safe_flag_spec_F77 \
-    whole_archive_flag_spec_F77 \
-    enable_shared_with_static_runtimes_F77 \
-    old_archive_cmds_F77 \
-    old_archive_from_new_cmds_F77 \
-    predep_objects_F77 \
-    postdep_objects_F77 \
-    predeps_F77 \
-    postdeps_F77 \
-    compiler_lib_search_path_F77 \
-    archive_cmds_F77 \
-    archive_expsym_cmds_F77 \
-    postinstall_cmds_F77 \
-    postuninstall_cmds_F77 \
-    old_archive_from_expsyms_cmds_F77 \
-    allow_undefined_flag_F77 \
-    no_undefined_flag_F77 \
-    export_symbols_cmds_F77 \
-    hardcode_libdir_flag_spec_F77 \
-    hardcode_libdir_flag_spec_ld_F77 \
-    hardcode_libdir_separator_F77 \
-    hardcode_automatic_F77 \
-    module_cmds_F77 \
-    module_expsym_cmds_F77 \
-    lt_cv_prog_compiler_c_o_F77 \
-    exclude_expsyms_F77 \
-    include_expsyms_F77; do
-
-    case $var in
-    old_archive_cmds_F77 | \
-    old_archive_from_new_cmds_F77 | \
-    archive_cmds_F77 | \
-    archive_expsym_cmds_F77 | \
-    module_cmds_F77 | \
-    module_expsym_cmds_F77 | \
-    old_archive_from_expsyms_cmds_F77 | \
-    export_symbols_cmds_F77 | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_F77
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_F77
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_F77
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_F77
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_F77
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_F77
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_F77
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_F77
-archive_expsym_cmds=$lt_archive_expsym_cmds_F77
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_F77
-module_expsym_cmds=$lt_module_expsym_cmds_F77
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_F77
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_F77
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_F77
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_F77
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_F77
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_F77
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_F77
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_F77
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_F77
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_F77
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_F77
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_F77
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_F77
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      GCJ)
-       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-objext_GCJ=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag_GCJ=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20412: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:20416: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl_GCJ=
-lt_prog_compiler_pic_GCJ=
-lt_prog_compiler_static_GCJ=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_GCJ='-Wl,'
-    lt_prog_compiler_static_GCJ='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_GCJ='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_GCJ=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       lt_prog_compiler_pic_GCJ=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_GCJ='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_GCJ='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      else
-       lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case "$cc_basename" in
-         xlc*)
-         lt_prog_compiler_pic_GCJ='-qnocommon'
-         lt_prog_compiler_wl_GCJ='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       lt_prog_compiler_pic_GCJ='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-       lt_prog_compiler_wl_GCJ='-Wl,'
-       lt_prog_compiler_pic_GCJ='-KPIC'
-       lt_prog_compiler_static_GCJ='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_GCJ='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_GCJ='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_GCJ='-Kpic'
-      lt_prog_compiler_static_GCJ='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_GCJ='-Qoption ld '
-      lt_prog_compiler_pic_GCJ='-PIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_prog_compiler_pic_GCJ='-Kconform_pic'
-       lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_GCJ='-pic'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_GCJ"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_GCJ=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20655: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:20659: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_GCJ=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
-    case $lt_prog_compiler_pic_GCJ in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
-     esac
-else
-    lt_prog_compiler_pic_GCJ=
-     lt_prog_compiler_can_build_shared_GCJ=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_GCJ=
-    ;;
-  *)
-    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_GCJ=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20715: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:20719: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_GCJ=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_GCJ=
-  enable_shared_with_static_runtimes_GCJ=no
-  archive_cmds_GCJ=
-  archive_expsym_cmds_GCJ=
-  old_archive_From_new_cmds_GCJ=
-  old_archive_from_expsyms_cmds_GCJ=
-  export_dynamic_flag_spec_GCJ=
-  whole_archive_flag_spec_GCJ=
-  thread_safe_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_ld_GCJ=
-  hardcode_libdir_separator_GCJ=
-  hardcode_direct_GCJ=no
-  hardcode_minus_L_GCJ=no
-  hardcode_shlibpath_var_GCJ=unsupported
-  link_all_deplibs_GCJ=unknown
-  hardcode_automatic_GCJ=no
-  module_cmds_GCJ=
-  module_expsym_cmds_GCJ=
-  always_export_symbols_GCJ=no
-  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_GCJ=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_GCJ=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       ld_shlibs_GCJ=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_GCJ=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       allow_undefined_flag_GCJ=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=no
-      enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       ld_shlibs_GCJ=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_GCJ="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_GCJ="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_GCJ=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       ld_shlibs_GCJ=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_GCJ" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec_GCJ=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=yes
-      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_GCJ=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       hardcode_direct_GCJ=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_GCJ=''
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_separator_GCJ=':'
-      link_all_deplibs_GCJ=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         hardcode_direct_GCJ=yes
-         else
-         # We have old collect2
-         hardcode_direct_GCJ=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         hardcode_minus_L_GCJ=yes
-         hardcode_libdir_flag_spec_GCJ='-L$libdir'
-         hardcode_libdir_separator_GCJ=
-         fi
-       esac
-       shared_flag='-shared'
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-       if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-       fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_GCJ=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       allow_undefined_flag_GCJ='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-       archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
-         allow_undefined_flag_GCJ="-z nodefs"
-         archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         no_undefined_flag_GCJ=' ${wl}-bernotok'
-         allow_undefined_flag_GCJ=' ${wl}-berok'
-         # -bexpall does not export symbols beginning with underscore (_)
-         always_export_symbols_GCJ=yes
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec_GCJ=' '
-         archive_cmds_need_lc_GCJ=yes
-         # This is similar to how AIX traditionally builds it's shared libraries.
-         archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_GCJ=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec_GCJ=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ=' '
-      allow_undefined_flag_GCJ=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_GCJ='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_GCJ=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case "$host_os" in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc_GCJ=no
-      hardcode_direct_GCJ=no
-      hardcode_automatic_GCJ=yes
-      hardcode_shlibpath_var_GCJ=unsupported
-      whole_archive_flag_spec_GCJ=''
-      link_all_deplibs_GCJ=yes
-    if test "$GCC" = yes ; then
-       output_verbose_link_cmd='echo'
-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case "$cc_basename" in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_GCJ=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_GCJ=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_direct_GCJ=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_GCJ=yes
-      export_dynamic_flag_spec_GCJ='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case "$host_cpu" in
-       hppa*64*|ia64*)
-         archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       *)
-         archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       case "$host_cpu" in
-       hppa*64*)
-         hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-         hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
-         hardcode_libdir_separator_GCJ=:
-         hardcode_direct_GCJ=no
-         hardcode_shlibpath_var_GCJ=no
-         ;;
-       ia64*)
-         hardcode_libdir_flag_spec_GCJ='-L$libdir'
-         hardcode_direct_GCJ=no
-         hardcode_shlibpath_var_GCJ=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_GCJ=yes
-         ;;
-       *)
-         hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-         hardcode_libdir_separator_GCJ=:
-         hardcode_direct_GCJ=yes
-         export_dynamic_flag_spec_GCJ='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         hardcode_minus_L_GCJ=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    newsos6)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-       hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-       export_dynamic_flag_spec_GCJ='${wl}-E'
-      else
-       case $host_os in
-        openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-          archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-          hardcode_libdir_flag_spec_GCJ='-R$libdir'
-          ;;
-        *)
-          archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-          hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-          ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      allow_undefined_flag_GCJ=unsupported
-      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       allow_undefined_flag_GCJ=' -expect_unresolved \*'
-       archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      else
-       allow_undefined_flag_GCJ=' -expect_unresolved \*'
-       archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_GCJ=' -z text'
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_GCJ=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         reload_cmds_GCJ='$CC -r -o $output$reload_objs'
-         hardcode_direct_GCJ=no
-        ;;
-       motorola)
-         archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       hardcode_shlibpath_var_GCJ=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       ld_shlibs_GCJ=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_GCJ='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-       archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_GCJ=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_GCJ=
-      hardcode_shlibpath_var_GCJ=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    *)
-      ld_shlibs_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
-test "$ld_shlibs_GCJ" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_GCJ" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_GCJ=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_GCJ in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_GCJ
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
-        allow_undefined_flag_GCJ=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc_GCJ=no
-        else
-         archive_cmds_need_lc_GCJ=yes
-        fi
-        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
-   test -n "$runpath_var_GCJ" || \
-   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_GCJ" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
-     test "$hardcode_minus_L_GCJ" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_GCJ=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_GCJ=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_GCJ=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
-
-if test "$hardcode_action_GCJ" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 22863 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 22961 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_GCJ \
-    CC_GCJ \
-    LD_GCJ \
-    lt_prog_compiler_wl_GCJ \
-    lt_prog_compiler_pic_GCJ \
-    lt_prog_compiler_static_GCJ \
-    lt_prog_compiler_no_builtin_flag_GCJ \
-    export_dynamic_flag_spec_GCJ \
-    thread_safe_flag_spec_GCJ \
-    whole_archive_flag_spec_GCJ \
-    enable_shared_with_static_runtimes_GCJ \
-    old_archive_cmds_GCJ \
-    old_archive_from_new_cmds_GCJ \
-    predep_objects_GCJ \
-    postdep_objects_GCJ \
-    predeps_GCJ \
-    postdeps_GCJ \
-    compiler_lib_search_path_GCJ \
-    archive_cmds_GCJ \
-    archive_expsym_cmds_GCJ \
-    postinstall_cmds_GCJ \
-    postuninstall_cmds_GCJ \
-    old_archive_from_expsyms_cmds_GCJ \
-    allow_undefined_flag_GCJ \
-    no_undefined_flag_GCJ \
-    export_symbols_cmds_GCJ \
-    hardcode_libdir_flag_spec_GCJ \
-    hardcode_libdir_flag_spec_ld_GCJ \
-    hardcode_libdir_separator_GCJ \
-    hardcode_automatic_GCJ \
-    module_cmds_GCJ \
-    module_expsym_cmds_GCJ \
-    lt_cv_prog_compiler_c_o_GCJ \
-    exclude_expsyms_GCJ \
-    include_expsyms_GCJ; do
-
-    case $var in
-    old_archive_cmds_GCJ | \
-    old_archive_from_new_cmds_GCJ | \
-    archive_cmds_GCJ | \
-    archive_expsym_cmds_GCJ | \
-    module_cmds_GCJ | \
-    module_expsym_cmds_GCJ | \
-    old_archive_from_expsyms_cmds_GCJ | \
-    export_symbols_cmds_GCJ | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_GCJ
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_GCJ
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_GCJ
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_GCJ
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_GCJ
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_GCJ
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_GCJ
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_GCJ
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_GCJ
-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_GCJ
-module_expsym_cmds=$lt_module_expsym_cmds_GCJ
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_GCJ
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_GCJ
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_GCJ
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_GCJ
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_GCJ
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_GCJ
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_GCJ
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_GCJ
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_GCJ
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_GCJ
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_GCJ
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_GCJ
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       else
-         tagname=""
-       fi
-       ;;
-
-      RC)
-
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-objext_RC=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$CC
-lt_cv_prog_compiler_c_o_RC=yes
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_RC \
-    CC_RC \
-    LD_RC \
-    lt_prog_compiler_wl_RC \
-    lt_prog_compiler_pic_RC \
-    lt_prog_compiler_static_RC \
-    lt_prog_compiler_no_builtin_flag_RC \
-    export_dynamic_flag_spec_RC \
-    thread_safe_flag_spec_RC \
-    whole_archive_flag_spec_RC \
-    enable_shared_with_static_runtimes_RC \
-    old_archive_cmds_RC \
-    old_archive_from_new_cmds_RC \
-    predep_objects_RC \
-    postdep_objects_RC \
-    predeps_RC \
-    postdeps_RC \
-    compiler_lib_search_path_RC \
-    archive_cmds_RC \
-    archive_expsym_cmds_RC \
-    postinstall_cmds_RC \
-    postuninstall_cmds_RC \
-    old_archive_from_expsyms_cmds_RC \
-    allow_undefined_flag_RC \
-    no_undefined_flag_RC \
-    export_symbols_cmds_RC \
-    hardcode_libdir_flag_spec_RC \
-    hardcode_libdir_flag_spec_ld_RC \
-    hardcode_libdir_separator_RC \
-    hardcode_automatic_RC \
-    module_cmds_RC \
-    module_expsym_cmds_RC \
-    lt_cv_prog_compiler_c_o_RC \
-    exclude_expsyms_RC \
-    include_expsyms_RC; do
-
-    case $var in
-    old_archive_cmds_RC | \
-    old_archive_from_new_cmds_RC | \
-    archive_cmds_RC | \
-    archive_expsym_cmds_RC | \
-    module_cmds_RC | \
-    module_expsym_cmds_RC | \
-    old_archive_from_expsyms_cmds_RC | \
-    export_symbols_cmds_RC | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_RC
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_RC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_RC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_RC
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_RC
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_RC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_RC
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_RC
-archive_expsym_cmds=$lt_archive_expsym_cmds_RC
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_RC
-module_expsym_cmds=$lt_module_expsym_cmds_RC
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_RC
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_RC
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_RC
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_RC
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_RC
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_RC
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_RC
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_RC
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_RC
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_RC
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_RC
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_RC
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_RC
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-       ;;
-
-      *)
-       { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-       ;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-               O=lo
-               A=la
-               LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
-               LIBTOOL_MODE_COMPILE='--mode=compile'
-               LIBTOOL_MODE_INSTALL='--mode=install'
-               LIBTOOL_MODE_LINK='--mode=link'
-               ;;
-       *)
-               O=o
-               A=a
-               LIBTOOL=
-
-               LIBTOOL_MKDEP_SED=
-               LIBTOOL_MODE_COMPILE=
-               LIBTOOL_MODE_INSTALL=
-               LIBTOOL_MODE_LINK=
-               ;;
-esac
-
-#
-# File name extension for static archive files, for those few places
-# where they are treated differently from dynamic ones.
-#
-SA=a
-
-
-
-
-
-
-
-
-
-#
-# Here begins a very long section to determine the system's networking
-# capabilities.  The order of the tests is signficant.
-#
-
-#
-# IPv6
-#
-# Check whether --enable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
-  enableval=$enable_ipv6;
-fi
-
-
-case "$enable_ipv6" in
-       yes|''|autodetect)
-               cat >>confdefs.h <<\_ACEOF
-#define WANT_IPV6 1
-_ACEOF
-
-               ;;
-       no)
-               ;;
-esac
-
-#
-# We do the IPv6 compilation checking after libtool so that we can put
-# the right suffix on the files.
-#
-{ echo "$as_me:$LINENO: checking for IPv6 structures" >&5
-echo $ECHO_N "checking for IPv6 structures... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-int
-main ()
-{
-struct sockaddr_in6 sin6; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        found_ipv6=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-        found_ipv6=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-#
-# See whether IPv6 support is provided via a Kame add-on.
-# This is done before other IPv6 linking tests to LIBS is properly set.
-#
-{ echo "$as_me:$LINENO: checking for Kame IPv6 support" >&5
-echo $ECHO_N "checking for Kame IPv6 support... $ECHO_C" >&6; }
-
-# Check whether --with-kame was given.
-if test "${with_kame+set}" = set; then
-  withval=$with_kame; use_kame="$withval"
-else
-  use_kame="no"
-fi
-
-
-case "$use_kame" in
-       no)
-               ;;
-       yes)
-               kame_path=/usr/local/v6
-               ;;
-       *)
-               kame_path="$use_kame"
-               ;;
-esac
-
-case "$use_kame" in
-       no)
-               { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-               ;;
-       *)
-               if test -f $kame_path/lib/libinet6.a; then
-                       { echo "$as_me:$LINENO: result: $kame_path/lib/libinet6.a" >&5
-echo "${ECHO_T}$kame_path/lib/libinet6.a" >&6; }
-                       LIBS="-L$kame_path/lib -linet6 $LIBS"
-               else
-                       { { echo "$as_me:$LINENO: error: $kame_path/lib/libinet6.a not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-kame=PATH
-" >&5
-echo "$as_me: error: $kame_path/lib/libinet6.a not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-kame=PATH
-" >&2;}
-   { (exit 1); exit 1; }; }
-               fi
-               ;;
-esac
-
-#
-# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
-# Including it on Kame-using platforms is very bad, though, because
-# Kame uses #error against direct inclusion.   So include it on only
-# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
-# This is done before the in6_pktinfo check because that's what
-# netinet6/in6.h is needed for.
-#
-
-case "$host" in
-*-bsdi4.[01]*)
-       ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
-       isc_netinet6in6_hack="#include <netinet6/in6.h>"
-       ;;
-*)
-       ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
-       isc_netinet6in6_hack=""
-       ;;
-esac
-
-
-#
-# This is similar to the netinet6/in6.h issue.
-#
-case "$host" in
-*-UnixWare*)
-       ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
-        ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
-       isc_netinetin6_hack="#include <netinet/in6.h>"
-       ;;
-*)
-       ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
-        ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
-       isc_netinetin6_hack=""
-       ;;
-esac
-
-#
-# Now delve deeper into the suitability of the IPv6 support.
-#
-case "$found_ipv6" in
-       yes)
-               HAS_INET6_STRUCTS="#define HAS_INET6_STRUCTS 1"
-
-               { echo "$as_me:$LINENO: checking for in6_addr" >&5
-echo $ECHO_N "checking for in6_addr... $ECHO_C" >&6; }
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-
-int
-main ()
-{
-struct in6_addr in6; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-                HAS_IN_ADDR6="#undef HAS_IN_ADDR6"
-                isc_in_addr6_hack=""
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-                HAS_IN_ADDR6="#define HAS_IN_ADDR6 1"
-                isc_in_addr6_hack="#define in6_addr in_addr6"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-               { echo "$as_me:$LINENO: checking for in6addr_any" >&5
-echo $ECHO_N "checking for in6addr_any... $ECHO_C" >&6; }
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-$isc_in_addr6_hack
-
-int
-main ()
-{
-struct in6_addr in6; in6 = in6addr_any; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-                        NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-                        NEED_IN6ADDR_ANY="#define NEED_IN6ADDR_ANY 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-               { echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5
-echo $ECHO_N "checking for sin6_scope_id in struct sockaddr_in6... $ECHO_C" >&6; }
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-
-int
-main ()
-{
-struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-                        result="#define HAVE_SIN6_SCOPE_ID 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-                        result="#undef HAVE_SIN6_SCOPE_ID"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-               HAVE_SIN6_SCOPE_ID="$result"
-
-               { echo "$as_me:$LINENO: checking for in6_pktinfo" >&5
-echo $ECHO_N "checking for in6_pktinfo... $ECHO_C" >&6; }
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-
-int
-main ()
-{
-struct in6_pktinfo xyzzy; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-                        ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no -- disabling runtime ipv6 support" >&5
-echo "${ECHO_T}no -- disabling runtime ipv6 support" >&6; }
-                        ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-               ;;
-       no)
-               HAS_INET6_STRUCTS="#undef HAS_INET6_STRUCTS"
-               NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"
-               ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
-               HAVE_SIN6_SCOPE_ID="#define HAVE_SIN6_SCOPE_ID 1"
-               ISC_IPV6_H="ipv6.h"
-               ISC_IPV6_O="ipv6.$O"
-               ISC_ISCIPV6_O="unix/ipv6.$O"
-               ISC_IPV6_C="ipv6.c"
-               ;;
-esac
-
-{ echo "$as_me:$LINENO: checking for sockaddr_storage" >&5
-echo $ECHO_N "checking for sockaddr_storage... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-int
-main ()
-{
-struct sockaddr_storage xyzzy; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        HAVE_SOCKADDR_STORAGE="#define HAVE_SOCKADDR_STORAGE 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-        HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check for network functions that are often missing.  We do this
-# after the libtool checking, so we can put the right suffix on
-# the files.  It also needs to come after checking for a Kame add-on,
-# which provides some (all?) of the desired functions.
-#
-{ echo "$as_me:$LINENO: checking for inet_ntop" >&5
-echo $ECHO_N "checking for inet_ntop... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-int
-main ()
-{
-inet_ntop(0, 0, 0, 0); return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
-        ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-{ echo "$as_me:$LINENO: checking for inet_pton" >&5
-echo $ECHO_N "checking for inet_pton... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-int
-main ()
-{
-inet_pton(0, 0, 0); return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
-        ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-{ echo "$as_me:$LINENO: checking for inet_aton" >&5
-echo $ECHO_N "checking for inet_aton... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-int
-main ()
-{
-struct in_addr in; inet_aton(0, &in); return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c"
-        ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-
-
-
-
-#
-# Look for a 4.4BSD-style sa_len member in struct sockaddr.
-#
-case "$host" in
-       *-dec-osf*)
-               # Tru64 broke send() by defining it to send_OBSOLETE
-               cat >>confdefs.h <<\_ACEOF
-#define REENABLE_SEND 1
-_ACEOF
-
-               # Turn on 4.4BSD style sa_len support.
-               cat >>confdefs.h <<\_ACEOF
-#define _SOCKADDR_LEN 1
-_ACEOF
-
-               ;;
-esac
-
-{ echo "$as_me:$LINENO: checking for sa_len in struct sockaddr" >&5
-echo $ECHO_N "checking for sa_len in struct sockaddr... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int
-main ()
-{
-struct sockaddr sa; sa.sa_len = 0; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       HAVE_SA_LEN="#define HAVE_SA_LEN 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       HAVE_SA_LEN="#undef HAVE_SA_LEN"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-# HAVE_MINIMUM_IFREQ
-
-case "$host" in
-       *-bsdi2345*)    have_minimum_ifreq=yes;;
-       *-darwin*)      have_minimum_ifreq=yes;;
-       *-freebsd*)     have_minimum_ifreq=yes;;
-       *-lynxos*)      have_minimum_ifreq=yes;;
-       *-netbsd*)      have_minimum_ifreq=yes;;
-       *-next*)        have_minimum_ifreq=yes;;
-       *-openbsd*)     have_minimum_ifreq=yes;;
-       *-rhapsody*)    have_minimum_ifreq=yes;;
-esac
-
-case "$have_minimum_ifreq" in
-       yes)
-               HAVE_MINIMUM_IFREQ="#define HAVE_MINIMUM_IFREQ 1";;
-       no)
-               HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";;
-       *)
-               HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";;
-esac
-
-
-# PORT_DIR
-PORT_DIR=port/unknown
-SOLARIS_BITTYPES="#undef NEED_SOLARIS_BITTYPES"
-BSD_COMP="#undef BSD_COMP"
-USE_FIONBIO_IOCTL="#undef USE_FIONBIO_IOCTL"
-PORT_NONBLOCK="#define PORT_NONBLOCK O_NONBLOCK"
-HAVE_MD5="#undef HAVE_MD5"
-USE_POLL="#undef HAVE_POLL"
-SOLARIS2="#undef SOLARIS2"
-case "$host" in
-       *aix3.2*)       PORT_DIR="port/aix32";;
-       *aix4*)         PORT_DIR="port/aix4";;
-       *aix5*)         PORT_DIR="port/aix5";;
-       *aux3*)         PORT_DIR="port/aux3";;
-       *-bsdi2*)       PORT_DIR="port/bsdos2";;
-       *-bsdi*)        PORT_DIR="port/bsdos";;
-       *-cygwin*)
-                       PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY"
-                       PORT_DIR="port/cygwin";;
-       *-darwin*)      PORT_DIR="port/darwin";;
-       *-osf*)         PORT_DIR="port/decunix";;
-       *-freebsd*)     PORT_DIR="port/freebsd";;
-       *-hpux9*)       PORT_DIR="port/hpux9";;
-       *-hpux10*)      PORT_DIR="port/hpux10";;
-       *-hpux11*)      PORT_DIR="port/hpux";;
-       *-irix*)        PORT_DIR="port/irix";;
-       *-linux*)       PORT_DIR="port/linux";;
-       *-lynxos*)      PORT_DIR="port/lynxos";;
-       *-mpe*)         PORT_DIR="port/mpe";;
-       *-netbsd*)      PORT_DIR="port/netbsd";;
-       *-next*)        PORT_DIR="port/next";;
-       *-openbsd*)     PORT_DIR="port/openbsd";;
-       *-qnx*)         PORT_DIR="port/qnx";;
-       *-rhapsody*)    PORT_DIR="port/rhapsody";;
-       *-sunos4*)
-                       cat >>confdefs.h <<\_ACEOF
-#define NEED_SUN4PROTOS 1
-_ACEOF
-
-                       PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY"
-                       PORT_DIR="port/sunos";;
-       *-solaris2.[01234])
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1"
-                       USE_FIONBIO_IOCTL="#define USE_FIONBIO_IOCTL 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2.5)
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2.[67])
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2*)    BSD_COMP="#define BSD_COMP 1"
-                       USE_POLL="#define USE_POLL 1"
-                       HAVE_MD5="#define HAVE_MD5 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-ultrix*)      PORT_DIR="port/ultrix";;
-       *-sco-sysv*uw2.0*)      PORT_DIR="port/unixware20";;
-       *-sco-sysv*uw2.1.2*)    PORT_DIR="port/unixware212";;
-       *-sco-sysv*uw7*)        PORT_DIR="port/unixware7";;
-esac
-
-
-
-
-
-
-
-
-
-PORT_INCLUDE=${PORT_DIR}/include
-
-
-#
-# Look for a 4.4BSD or 4.3BSD struct msghdr
-#
-{ echo "$as_me:$LINENO: checking for struct msghdr flavor" >&5
-echo $ECHO_N "checking for struct msghdr flavor... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int
-main ()
-{
-struct msghdr msg; msg.msg_flags = 0; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: 4.4BSD" >&5
-echo "${ECHO_T}4.4BSD" >&6; }
-       ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: 4.3BSD" >&5
-echo "${ECHO_T}4.3BSD" >&6; }
-       ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-#
-# Look for in_port_t.
-#
-{ echo "$as_me:$LINENO: checking for type in_port_t" >&5
-echo $ECHO_N "checking for type in_port_t... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-int
-main ()
-{
-in_port_t port = 25; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for struct timespec" >&5
-echo $ECHO_N "checking for struct timespec... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <time.h>
-int
-main ()
-{
-struct timespec ts = { 0, 0 }; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_PLATFORM_NEEDTIMESPEC="#undef ISC_PLATFORM_NEEDTIMESPEC"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_PLATFORM_NEEDTIMESPEC="#define ISC_PLATFORM_NEEDTIMESPEC 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-#
-# Check for addrinfo
-#
-{ echo "$as_me:$LINENO: checking for struct addrinfo" >&5
-echo $ECHO_N "checking for struct addrinfo... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-struct addrinfo a; return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_ADDRINFO 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ echo "$as_me:$LINENO: checking for int sethostent" >&5
-echo $ECHO_N "checking for int sethostent... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-int i = sethostent(0); return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ echo "$as_me:$LINENO: checking for int endhostent" >&5
-echo $ECHO_N "checking for int endhostent... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-int i = endhostent(); return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for int setnetent" >&5
-echo $ECHO_N "checking for int setnetent... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-int i = setnetent(0); return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for int endnetent" >&5
-echo $ECHO_N "checking for int endnetent... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-int i = endnetent(); return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for gethostbyaddr(const void *, size_t, ...)" >&5
-echo $ECHO_N "checking for gethostbyaddr(const void *, size_t, ...)... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-struct hostent *gethostbyaddr(const void *, size_t, int);
-int
-main ()
-{
-return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for h_errno in netdb.h" >&5
-echo $ECHO_N "checking for h_errno in netdb.h... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <netdb.h>
-int
-main ()
-{
-h_errno = 1; return(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-       ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for getipnodebyname" >&5
-echo $ECHO_N "checking for getipnodebyname... $ECHO_C" >&6; }
-if test "${ac_cv_func_getipnodebyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getipnodebyname to an innocuous variant, in case <limits.h> declares getipnodebyname.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getipnodebyname innocuous_getipnodebyname
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getipnodebyname (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getipnodebyname
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getipnodebyname ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getipnodebyname || defined __stub___getipnodebyname
-choke me
-#endif
-
-int
-main ()
-{
-return getipnodebyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getipnodebyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getipnodebyname=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getipnodebyname" >&5
-echo "${ECHO_T}$ac_cv_func_getipnodebyname" >&6; }
-if test $ac_cv_func_getipnodebyname = yes; then
-  ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"
-else
-  ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"
-fi
-
-{ echo "$as_me:$LINENO: checking for getnameinfo" >&5
-echo $ECHO_N "checking for getnameinfo... $ECHO_C" >&6; }
-if test "${ac_cv_func_getnameinfo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getnameinfo to an innocuous variant, in case <limits.h> declares getnameinfo.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getnameinfo innocuous_getnameinfo
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getnameinfo (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getnameinfo
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getnameinfo ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getnameinfo || defined __stub___getnameinfo
-choke me
-#endif
-
-int
-main ()
-{
-return getnameinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getnameinfo=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getnameinfo=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getnameinfo" >&5
-echo "${ECHO_T}$ac_cv_func_getnameinfo" >&6; }
-if test $ac_cv_func_getnameinfo = yes; then
-  ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"
-else
-  ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"
-fi
-
-{ echo "$as_me:$LINENO: checking for getaddrinfo" >&5
-echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6; }
-if test "${ac_cv_func_getaddrinfo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getaddrinfo to an innocuous variant, in case <limits.h> declares getaddrinfo.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getaddrinfo innocuous_getaddrinfo
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getaddrinfo (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getaddrinfo
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getaddrinfo ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getaddrinfo || defined __stub___getaddrinfo
-choke me
-#endif
-
-int
-main ()
-{
-return getaddrinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getaddrinfo=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getaddrinfo=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getaddrinfo" >&5
-echo "${ECHO_T}$ac_cv_func_getaddrinfo" >&6; }
-if test $ac_cv_func_getaddrinfo = yes; then
-  ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
-       cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETADDRINFO 1
-_ACEOF
-
-else
-  ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"
-fi
-
-{ echo "$as_me:$LINENO: checking for gai_strerror" >&5
-echo $ECHO_N "checking for gai_strerror... $ECHO_C" >&6; }
-if test "${ac_cv_func_gai_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gai_strerror to an innocuous variant, in case <limits.h> declares gai_strerror.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gai_strerror innocuous_gai_strerror
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gai_strerror (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gai_strerror
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gai_strerror ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gai_strerror || defined __stub___gai_strerror
-choke me
-#endif
-
-int
-main ()
-{
-return gai_strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_gai_strerror=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gai_strerror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_gai_strerror" >&5
-echo "${ECHO_T}$ac_cv_func_gai_strerror" >&6; }
-if test $ac_cv_func_gai_strerror = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_GAISTRERROR 1
-_ACEOF
-
-fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for pselect" >&5
-echo $ECHO_N "checking for pselect... $ECHO_C" >&6; }
-if test "${ac_cv_func_pselect+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define pselect to an innocuous variant, in case <limits.h> declares pselect.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define pselect innocuous_pselect
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char pselect (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef pselect
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pselect ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_pselect || defined __stub___pselect
-choke me
-#endif
-
-int
-main ()
-{
-return pselect ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_pselect=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_pselect=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_pselect" >&5
-echo "${ECHO_T}$ac_cv_func_pselect" >&6; }
-if test $ac_cv_func_pselect = yes; then
-  NEED_PSELECT="#undef NEED_PSELECT"
-else
-  NEED_PSELECT="#define NEED_PSELECT"
-fi
-
-
-{ echo "$as_me:$LINENO: checking for gettimeofday" >&5
-echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6; }
-if test "${ac_cv_func_gettimeofday+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gettimeofday to an innocuous variant, in case <limits.h> declares gettimeofday.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gettimeofday innocuous_gettimeofday
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gettimeofday (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gettimeofday
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gettimeofday ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gettimeofday || defined __stub___gettimeofday
-choke me
-#endif
-
-int
-main ()
-{
-return gettimeofday ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_gettimeofday=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gettimeofday=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_gettimeofday" >&5
-echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6; }
-if test $ac_cv_func_gettimeofday = yes; then
-  NEED_GETTIMEOFDAY="#undef NEED_GETTIMEOFDAY"
-else
-  NEED_GETTIMEOFDAY="#define NEED_GETTIMEOFDAY 1"
-fi
-
-
-{ echo "$as_me:$LINENO: checking for strndup" >&5
-echo $ECHO_N "checking for strndup... $ECHO_C" >&6; }
-if test "${ac_cv_func_strndup+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strndup to an innocuous variant, in case <limits.h> declares strndup.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strndup innocuous_strndup
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strndup (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strndup
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strndup ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strndup || defined __stub___strndup
-choke me
-#endif
-
-int
-main ()
-{
-return strndup ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strndup=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strndup=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strndup" >&5
-echo "${ECHO_T}$ac_cv_func_strndup" >&6; }
-if test $ac_cv_func_strndup = yes; then
-  HAVE_STRNDUP="#define HAVE_STRNDUP 1"
-else
-  HAVE_STRNDUP="#undef HAVE_STRNDUP"
-fi
-
-
-
-#
-# Look for a sysctl call to get the list of network interfaces.
-#
-{ echo "$as_me:$LINENO: checking for interface list sysctl" >&5
-echo $ECHO_N "checking for interface list sysctl... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/socket.h>
-#ifdef NET_RT_IFLIST
-found_rt_iflist
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "found_rt_iflist" >/dev/null 2>&1; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-        cat >>confdefs.h <<\_ACEOF
-#define HAVE_IFLIST_SYSCTL 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-rm -f conftest*
-
-
-#
-# Check for some other useful functions that are not ever-present.
-#
-{ echo "$as_me:$LINENO: checking for strsep" >&5
-echo $ECHO_N "checking for strsep... $ECHO_C" >&6; }
-if test "${ac_cv_func_strsep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define strsep to an innocuous variant, in case <limits.h> declares strsep.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define strsep innocuous_strsep
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strsep (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef strsep
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strsep ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_strsep || defined __stub___strsep
-choke me
-#endif
-
-int
-main ()
-{
-return strsep ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_strsep=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_strsep=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_strsep" >&5
-echo "${ECHO_T}$ac_cv_func_strsep" >&6; }
-if test $ac_cv_func_strsep = yes; then
-  ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"
-else
-  ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking for char *sprintf" >&5
-echo $ECHO_N "checking for char *sprintf... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdio.h>
-
-int
-main ()
-{
- char buf[2]; return(*sprintf(buf,"x"));
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >>confdefs.h <<\_ACEOF
-#define SPRINTF_CHAR 1
-_ACEOF
-
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ echo "$as_me:$LINENO: checking for char *vsprintf" >&5
-echo $ECHO_N "checking for char *vsprintf... $ECHO_C" >&6; }
-case $host in
-*sunos4*) # not decared in any header file.
-cat >>confdefs.h <<\_ACEOF
-#define VSPRINTF_CHAR 1
-_ACEOF
-
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-;;
-*)
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdio.h>
-
-int
-main ()
-{
- char buf[2]; return(*vsprintf(buf,"x"));
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >>confdefs.h <<\_ACEOF
-#define VSPRINTF_CHAR 1
-_ACEOF
-
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-;;
-esac
-
-{ echo "$as_me:$LINENO: checking for vsnprintf" >&5
-echo $ECHO_N "checking for vsnprintf... $ECHO_C" >&6; }
-if test "${ac_cv_func_vsnprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define vsnprintf to an innocuous variant, in case <limits.h> declares vsnprintf.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define vsnprintf innocuous_vsnprintf
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char vsnprintf (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef vsnprintf
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char vsnprintf ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_vsnprintf || defined __stub___vsnprintf
-choke me
-#endif
-
-int
-main ()
-{
-return vsnprintf ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_vsnprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_vsnprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_vsnprintf" >&5
-echo "${ECHO_T}$ac_cv_func_vsnprintf" >&6; }
-if test $ac_cv_func_vsnprintf = yes; then
-  ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"
-else
-  ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c"
-        ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"
-fi
-
-
-
-
-
-
-
-# Determine the printf format characters to use when printing
-# values of type isc_int64_t.  We make the assumption that platforms
-# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1)
-# want "%ld" and everyone else can use "%lld".  Win32 uses "%I64d",
-# but that's defined elsewhere since we don't use configure on Win32.
-#
-{ echo "$as_me:$LINENO: checking printf format modifier for 64-bit integers" >&5
-echo $ECHO_N "checking printf format modifier for 64-bit integers... $ECHO_C" >&6; }
-if test "$cross_compiling" = yes; then
-  { echo "$as_me:$LINENO: result: default ll" >&5
-echo "${ECHO_T}default ll" >&6; }
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-main() { exit(!(sizeof(long long int) == sizeof(long int))); }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  { echo "$as_me:$LINENO: result: l" >&5
-echo "${ECHO_T}l" >&6; }
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-{ echo "$as_me:$LINENO: result: ll" >&5
-echo "${ECHO_T}ll" >&6; }
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-
-#
-# Security Stuff
-#
-{ echo "$as_me:$LINENO: checking for chroot" >&5
-echo $ECHO_N "checking for chroot... $ECHO_C" >&6; }
-if test "${ac_cv_func_chroot+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define chroot to an innocuous variant, in case <limits.h> declares chroot.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define chroot innocuous_chroot
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char chroot (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef chroot
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char chroot ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_chroot || defined __stub___chroot
-choke me
-#endif
-
-int
-main ()
-{
-return chroot ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_chroot=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_chroot=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_chroot" >&5
-echo "${ECHO_T}$ac_cv_func_chroot" >&6; }
-if test $ac_cv_func_chroot = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_CHROOT 1
-_ACEOF
-
-fi
-
-
-#
-# for accept, recvfrom, getpeername etc.
-#
-{ echo "$as_me:$LINENO: checking for socket length type" >&5
-echo $ECHO_N "checking for socket length type... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, socklen_t *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ISC_SOCKLEN_T="#define ISC_SOCKLEN_T socklen_t"
-{ echo "$as_me:$LINENO: result: socklen_t" >&5
-echo "${ECHO_T}socklen_t" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, unsigned int *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned int"
-{ echo "$as_me:$LINENO: result: unsigned int" >&5
-echo "${ECHO_T}unsigned int" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, unsigned long *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned long"
-{ echo "$as_me:$LINENO: result: unsigned long" >&5
-echo "${ECHO_T}unsigned long" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, long *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ISC_SOCKLEN_T="#define ISC_SOCKLEN_T long"
-{ echo "$as_me:$LINENO: result: long" >&5
-echo "${ECHO_T}long" >&6; }
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ISC_SOCKLEN_T="#define ISC_SOCKLEN_T int"
-{ echo "$as_me:$LINENO: result: int" >&5
-echo "${ECHO_T}int" >&6; }
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-{ echo "$as_me:$LINENO: checking for getgrouplist" >&5
-echo $ECHO_N "checking for getgrouplist... $ECHO_C" >&6; }
-if test "${ac_cv_func_getgrouplist+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getgrouplist to an innocuous variant, in case <limits.h> declares getgrouplist.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getgrouplist innocuous_getgrouplist
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getgrouplist (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getgrouplist
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getgrouplist ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getgrouplist || defined __stub___getgrouplist
-choke me
-#endif
-
-int
-main ()
-{
-return getgrouplist ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getgrouplist=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getgrouplist=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getgrouplist" >&5
-echo "${ECHO_T}$ac_cv_func_getgrouplist" >&6; }
-if test $ac_cv_func_getgrouplist = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-int
-getgrouplist(const char *name, int basegid, int *groups, int *ngroups) {
-}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, int basegid, int *groups, int *ngroups"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_GETGROUPLIST 1
-_ACEOF
-
-
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking for setgroupent" >&5
-echo $ECHO_N "checking for setgroupent... $ECHO_C" >&6; }
-if test "${ac_cv_func_setgroupent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setgroupent to an innocuous variant, in case <limits.h> declares setgroupent.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setgroupent innocuous_setgroupent
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setgroupent (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setgroupent
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setgroupent ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setgroupent || defined __stub___setgroupent
-choke me
-#endif
-
-int
-main ()
-{
-return setgroupent ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setgroupent=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setgroupent=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setgroupent" >&5
-echo "${ECHO_T}$ac_cv_func_setgroupent" >&6; }
-if test $ac_cv_func_setgroupent = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_SETGROUPENT 1
-_ACEOF
-
-fi
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for getnetbyaddr_r" >&5
-echo $ECHO_N "checking for getnetbyaddr_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getnetbyaddr_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getnetbyaddr_r to an innocuous variant, in case <limits.h> declares getnetbyaddr_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getnetbyaddr_r innocuous_getnetbyaddr_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getnetbyaddr_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getnetbyaddr_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getnetbyaddr_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getnetbyaddr_r || defined __stub___getnetbyaddr_r
-choke me
-#endif
-
-int
-main ()
-{
-return getnetbyaddr_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getnetbyaddr_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getnetbyaddr_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getnetbyaddr_r" >&5
-echo "${ECHO_T}$ac_cv_func_getnetbyaddr_r" >&6; }
-if test $ac_cv_func_getnetbyaddr_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct netent *
-getnetbyaddr_r(long net, int type, struct netent *result, char *buffer,
-int buflen) {}
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"
-NET_R_BAD="#define NET_R_BAD NULL"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"
-NET_R_OK="#define NET_R_OK nptr"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN struct netent *"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#undef NETENT_DATA"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getnetbyaddr_r (unsigned long int, int, struct netent *,
-                    char *, size_t, struct netent **, int *);
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"
-NET_R_BAD="#define NET_R_BAD ERANGE"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#define NET_R_SETANSWER 1"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"
-NETENT_DATA="#undef NETENT_DATA"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int getnetbyaddr_r(int, int, struct netent *, struct netent_data *);
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int"
-NETENT_DATA="#define NETENT_DATA 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getnetbyaddr_r (in_addr_t, int, struct netent *, struct netent_data *);
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#define NETENT_DATA 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getnetbyaddr_r (long, int, struct netent *, struct netent_data *);
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#define NETENT_DATA 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getnetbyaddr_r (uint32_t, int, struct netent *,
-                    char *, size_t, struct netent **, int *);
-
-int
-main ()
-{
-return (0)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"
-NET_R_BAD="#define NET_R_BAD ERANGE"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#define NET_R_SETANSWER 1"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"
-NETENT_DATA="#undef NETENT_DATA"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"
-NET_R_BAD="#define NET_R_BAD NULL"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"
-NET_R_OK="#define NET_R_OK nptr"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN struct netent *"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#undef NETENT_DATA"
-
-fi
-
-esac
-
-case "$host" in
-*dec-osf*) GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int" ;;
-esac
-
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for setnetent_r" >&5
-echo $ECHO_N "checking for setnetent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setnetent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setnetent_r to an innocuous variant, in case <limits.h> declares setnetent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setnetent_r innocuous_setnetent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setnetent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setnetent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setnetent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setnetent_r || defined __stub___setnetent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setnetent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setnetent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setnetent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setnetent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setnetent_r" >&6; }
-if test $ac_cv_func_setnetent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void  setnetent_r (int);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"
-NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN void"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int setnetent_r(int, struct netent_data *);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_ENT_ARGS="#define NET_R_ENT_ARGS struct netent_data *ndptr"
-NET_R_SET_RESULT="#define NET_R_SET_RESULT NET_R_OK"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN int"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"
-NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN void"
-
-fi
-
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for endnetent_r" >&5
-echo $ECHO_N "checking for endnetent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endnetent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endnetent_r to an innocuous variant, in case <limits.h> declares endnetent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endnetent_r innocuous_endnetent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endnetent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endnetent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endnetent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endnetent_r || defined __stub___endnetent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endnetent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endnetent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endnetent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endnetent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endnetent_r" >&6; }
-if test $ac_cv_func_endnetent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void  endnetent_r (void);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int endnetent_r(struct netent_data *);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) return (x)"
-NET_R_END_RETURN="#define NET_R_END_RETURN int"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endnetent_r(struct netent_data *);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-
-fi
-
-esac
-
-
-
-{ echo "$as_me:$LINENO: checking for getgrnam_r" >&5
-echo $ECHO_N "checking for getgrnam_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getgrnam_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getgrnam_r to an innocuous variant, in case <limits.h> declares getgrnam_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getgrnam_r innocuous_getgrnam_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getgrnam_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getgrnam_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getgrnam_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getgrnam_r || defined __stub___getgrnam_r
-choke me
-#endif
-
-int
-main ()
-{
-return getgrnam_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getgrnam_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getgrnam_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getgrnam_r" >&5
-echo "${ECHO_T}$ac_cv_func_getgrnam_r" >&6; }
-if test $ac_cv_func_getgrnam_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_GETGRNAM_R 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for getgrgid_r" >&5
-echo $ECHO_N "checking for getgrgid_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getgrgid_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getgrgid_r to an innocuous variant, in case <limits.h> declares getgrgid_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getgrgid_r innocuous_getgrgid_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getgrgid_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getgrgid_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getgrgid_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getgrgid_r || defined __stub___getgrgid_r
-choke me
-#endif
-
-int
-main ()
-{
-return getgrgid_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getgrgid_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getgrgid_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getgrgid_r" >&5
-echo "${ECHO_T}$ac_cv_func_getgrgid_r" >&6; }
-if test $ac_cv_func_getgrgid_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_GETGRGID_R 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for getgrent_r" >&5
-echo $ECHO_N "checking for getgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getgrent_r to an innocuous variant, in case <limits.h> declares getgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getgrent_r innocuous_getgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getgrent_r || defined __stub___getgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return getgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_getgrent_r" >&6; }
-if test $ac_cv_func_getgrent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <grp.h>
-struct group *getgrent_r(struct group *grp, char *buffer,
-           int buflen) {}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"
-GROUP_R_BAD="#define GROUP_R_BAD NULL"
-GROUP_R_OK="#define GROUP_R_OK gptr"
-GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"
-GROUP_R_BAD="#define GROUP_R_BAD NULL"
-GROUP_R_OK="#define GROUP_R_OK gptr"
-GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_GETGRENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for endgrent_r" >&5
-echo $ECHO_N "checking for endgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endgrent_r to an innocuous variant, in case <limits.h> declares endgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endgrent_r innocuous_endgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endgrent_r || defined __stub___endgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endgrent_r" >&6; }
-if test $ac_cv_func_endgrent_r = yes; then
-  :
-else
-  GROUP_R_END_RESULT="#define GROUP_R_END_RESULT(x) /*empty*/"
-GROUP_R_END_RETURN="#define GROUP_R_END_RETURN void"
-GROUP_R_ENT_ARGS="#define GROUP_R_ENT_ARGS void"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_ENDGRENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for setgrent_r" >&5
-echo $ECHO_N "checking for setgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setgrent_r to an innocuous variant, in case <limits.h> declares setgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setgrent_r innocuous_setgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setgrent_r || defined __stub___setgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setgrent_r" >&6; }
-if test $ac_cv_func_setgrent_r = yes; then
-  :
-else
-  GROUP_R_SET_RESULT="#undef GROUP_R_SET_RESULT /*empty*/"
-GROUP_R_SET_RETURN="#define GROUP_R_SET_RETURN void"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_SETGRENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for gethostbyname_r" >&5
-echo $ECHO_N "checking for gethostbyname_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_gethostbyname_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostbyname_r to an innocuous variant, in case <limits.h> declares gethostbyname_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostbyname_r innocuous_gethostbyname_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyname_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostbyname_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r
-choke me
-#endif
-
-int
-main ()
-{
-return gethostbyname_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_gethostbyname_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gethostbyname_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname_r" >&5
-echo "${ECHO_T}$ac_cv_func_gethostbyname_r" >&6; }
-if test $ac_cv_func_gethostbyname_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct hostent  *gethostbyname_r
-(const char *name, struct hostent *hp, char *buf, int len, int *h_errnop) {}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD NULL"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK hptr"
-HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int gethostbyname_r(const char *name,
-                          struct hostent *result,
-                          struct hostent_data *hdptr);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-HOST_R_ARGS="#define HOST_R_ARGS struct hostent_data *hdptr"
-HOST_R_BAD="#define HOST_R_BAD (-1)"
-HOST_R_COPY="#define HOST_R_COPY hdptr"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS HOST_R_ARGS"
-HOST_R_ERRNO="#undef HOST_R_ERRNO"
-HOST_R_OK="#define HOST_R_OK 0"
-HOST_R_RETURN="#define HOST_R_RETURN int"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#define HOSTENT_DATA 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int gethostbyname_r (const char *,
-                                 struct hostent *,
-                                 char *, size_t,
-                                 struct hostent **,
-                                 int *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-HOST_R_ARGS="#define HOST_R_ARGS char *buf, size_t buflen, struct hostent **answerp, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD ERANGE"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK 0"
-HOST_R_RETURN="#define HOST_R_RETURN int"
-HOST_R_SETANSWER="#define HOST_R_SETANSWER 1"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD NULL"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK hptr"
-HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-
-fi
-
-esac
-
-
-
-
-
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for endhostent_r" >&5
-echo $ECHO_N "checking for endhostent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endhostent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endhostent_r to an innocuous variant, in case <limits.h> declares endhostent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endhostent_r innocuous_endhostent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endhostent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endhostent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endhostent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endhostent_r || defined __stub___endhostent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endhostent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endhostent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endhostent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endhostent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endhostent_r" >&6; }
-if test $ac_cv_func_endhostent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endhostent_r(struct hostent_data *buffer);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) return (x)"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN int"
-HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endhostent_r(struct hostent_data *ht_data);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x)"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endhostent_r(void);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/"
-
-fi
-
-esac;
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for sethostent_r" >&5
-echo $ECHO_N "checking for sethostent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_sethostent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define sethostent_r to an innocuous variant, in case <limits.h> declares sethostent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define sethostent_r innocuous_sethostent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char sethostent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef sethostent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sethostent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_sethostent_r || defined __stub___sethostent_r
-choke me
-#endif
-
-int
-main ()
-{
-return sethostent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_sethostent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_sethostent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_sethostent_r" >&5
-echo "${ECHO_T}$ac_cv_func_sethostent_r" >&6; }
-if test $ac_cv_func_sethostent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void sethostent_r(int flag, struct hostent_data *ht_data);
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT /*empty*/"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int sethostent_r(int flag, struct hostent_data *ht_data);
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  HOST_R_SET_RESULT="#define HOST_R_SET_RESULT 0"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN int"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void            sethostent_r (int);
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"
-
-fi
-
-esac
-
-
-
-
-{ echo "$as_me:$LINENO: checking struct passwd element pw_class" >&5
-echo $ECHO_N "checking struct passwd element pw_class... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <pwd.h>
-
-int
-main ()
-{
-struct passwd *pw; pw->pw_class = "";
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-cat >>confdefs.h <<\_ACEOF
-#define HAS_PW_CLASS 1
-_ACEOF
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <pwd.h>
-void
-setpwent(void) {}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  SETPWENT_VOID="#define SETPWENT_VOID 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       SETPWENT_VOID="#undef SETPWENT_VOID"
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <grp.h>
-void
-setgrent(void) {}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  SETGRENT_VOID="#define SETGRENT_VOID 1"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       SETGRENT_VOID="#undef SETGRENT_VOID"
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-case $host in
-ia64-hp-hpux11.*)
-NGR_R_CONST="#define NGR_R_CONST"
-;;
-*-hp-hpux11.*)
-#
-# HPUX doesn't have a prototype for getnetgrent_r().
-#
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-;;
-
-*)
-{ echo "$as_me:$LINENO: checking for getnetgrent_r" >&5
-echo $ECHO_N "checking for getnetgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getnetgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getnetgrent_r to an innocuous variant, in case <limits.h> declares getnetgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getnetgrent_r innocuous_getnetgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getnetgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getnetgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getnetgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getnetgrent_r || defined __stub___getnetgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return getnetgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getnetgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getnetgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getnetgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_getnetgrent_r" >&6; }
-if test $ac_cv_func_getnetgrent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-int getnetgrent_r(char **m, char **u, char **d, char *b, int l) {}
-
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-int getnetgrent_r(char **m, char **u, char **d, char *b, size_t l) {}
-
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, size_t buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int getnetgrent_r(char **, char **, char **, void **);
-
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS void **buf"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-NGR_R_PRIVATE="#define NGR_R_PRIVATE 1"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int getnetgrent_r(const char **, const char **, const char **, void *);
-
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_CONST="#define NGR_R_CONST const"
-NGR_R_ARGS="#define NGR_R_ARGS void *buf"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-NGR_R_PRIVATE="#define NGR_R_PRIVATE 2"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-
-fi
-
-esac
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for endnetgrent_r" >&5
-echo $ECHO_N "checking for endnetgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endnetgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endnetgrent_r to an innocuous variant, in case <limits.h> declares endnetgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endnetgrent_r innocuous_endnetgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endnetgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endnetgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endnetgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endnetgrent_r || defined __stub___endnetgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endnetgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endnetgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endnetgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endnetgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endnetgrent_r" >&6; }
-if test $ac_cv_func_endnetgrent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void endnetgrent_r(void **ptr);
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /* empty */"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void endnetgrent_r(void *ptr);
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /* empty */"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS void *buf"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  return (x)"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN int"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS"
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /*empty*/"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#undef NGR_R_END_ARGS /*empty*/"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_ENDNETGRENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for setnetgrent_r" >&5
-echo $ECHO_N "checking for setnetgrent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setnetgrent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setnetgrent_r to an innocuous variant, in case <limits.h> declares setnetgrent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setnetgrent_r innocuous_setnetgrent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setnetgrent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setnetgrent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setnetgrent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setnetgrent_r || defined __stub___setnetgrent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setnetgrent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setnetgrent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setnetgrent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setnetgrent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setnetgrent_r" >&6; }
-if test $ac_cv_func_setnetgrent_r = yes; then
-
-case "$host" in
-*bsdi*)
-       #
-       # No prototype
-       #
-       NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/"
-       NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-       NGR_R_SET_ARGS="#define NGR_R_SET_ARGS NGR_R_ARGS"
-       NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-       ;;
-*hpux*)
-       #
-       # No prototype
-       #
-       NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-       NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-       NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS /* empty */"
-       NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-       ;;
-*)
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void setnetgrent_r(void **ptr);
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /* empty */"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int setnetgrent_r(char *, void **);
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST const"
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-;;
-esac
-
-
-else
-  NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST const"
-
-fi
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for innetgr_r" >&5
-echo $ECHO_N "checking for innetgr_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_innetgr_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define innetgr_r to an innocuous variant, in case <limits.h> declares innetgr_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define innetgr_r innocuous_innetgr_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char innetgr_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef innetgr_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char innetgr_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_innetgr_r || defined __stub___innetgr_r
-choke me
-#endif
-
-int
-main ()
-{
-return innetgr_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_innetgr_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_innetgr_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_innetgr_r" >&5
-echo "${ECHO_T}$ac_cv_func_innetgr_r" >&6; }
-if test $ac_cv_func_innetgr_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_INNETGR_R 1
-_ACEOF
-
-fi
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for getprotoent_r" >&5
-echo $ECHO_N "checking for getprotoent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getprotoent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getprotoent_r to an innocuous variant, in case <limits.h> declares getprotoent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getprotoent_r innocuous_getprotoent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getprotoent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getprotoent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getprotoent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getprotoent_r || defined __stub___getprotoent_r
-choke me
-#endif
-
-int
-main ()
-{
-return getprotoent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getprotoent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getprotoent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getprotoent_r" >&5
-echo "${ECHO_T}$ac_cv_func_getprotoent_r" >&6; }
-if test $ac_cv_func_getprotoent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct protoent *getprotoent_r(struct protoent *result,
-                char *buffer, int buflen) {}
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen"
-PROTO_R_BAD="#define PROTO_R_BAD NULL"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS"
-PROTO_R_OK="#define PROTO_R_OK pptr"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getprotoent_r (struct protoent *, char *, size_t, struct protoent **);
-
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, size_t buflen, struct protoent **answerp"
-PROTO_R_BAD="#define PROTO_R_BAD ERANGE"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS char *buf, size_t buflen"
-PROTO_R_OK="#define PROTO_R_OK 0"
-PROTO_R_SETANSWER="#define PROTO_R_SETANSWER 1"
-PROTO_R_RETURN="#define PROTO_R_RETURN int"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getprotoent_r (struct protoent *, struct protoent_data *prot_data);
-
-
-
-int
-main ()
-{
-return (0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_ARGS="#define PROTO_R_ARGS struct protoent_data *prot_data"
-PROTO_R_BAD="#define PROTO_R_BAD (-1)"
-PROTO_R_COPY="#define PROTO_R_COPY prot_data"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS struct protoent_data *pdptr"
-PROTO_R_OK="#define PROTO_R_OK 0"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN int"
-PROTOENT_DATA="#define PROTOENT_DATA 1"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen"
-PROTO_R_BAD="#define PROTO_R_BAD NULL"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS"
-PROTO_R_OK="#define PROTO_R_OK pptr"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-
-fi
-
-;;
-esac
-
-
-
-
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for endprotoent_r" >&5
-echo $ECHO_N "checking for endprotoent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endprotoent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endprotoent_r to an innocuous variant, in case <limits.h> declares endprotoent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endprotoent_r innocuous_endprotoent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endprotoent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endprotoent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endprotoent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endprotoent_r || defined __stub___endprotoent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endprotoent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endprotoent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endprotoent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endprotoent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endprotoent_r" >&6; }
-if test $ac_cv_func_endprotoent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endprotoent_r(void);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS"
-PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endprotoent_r(struct protoent_data *);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data"
-PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endprotoent_r(struct protoent_data *);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) return(0)"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN int"
-PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data"
-PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS /*empty*/"
-PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED"
-
-fi
-
-esac
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for setprotoent_r" >&5
-echo $ECHO_N "checking for setprotoent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setprotoent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setprotoent_r to an innocuous variant, in case <limits.h> declares setprotoent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setprotoent_r innocuous_setprotoent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setprotoent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setprotoent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setprotoent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setprotoent_r || defined __stub___setprotoent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setprotoent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setprotoent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setprotoent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setprotoent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setprotoent_r" >&6; }
-if test $ac_cv_func_setprotoent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void               setprotoent_r __P((int));
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int setprotoent_r (int, struct protoent_data *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PROTO_R_SET_RESULT="#define PROTO_R_SET_RESULT (0)"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN int"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void"
-
-fi
-
-esac
-
-
-
-{ echo "$as_me:$LINENO: checking for getpwent_r" >&5
-echo $ECHO_N "checking for getpwent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getpwent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getpwent_r to an innocuous variant, in case <limits.h> declares getpwent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getpwent_r innocuous_getpwent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getpwent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getpwent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getpwent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getpwent_r || defined __stub___getpwent_r
-choke me
-#endif
-
-int
-main ()
-{
-return getpwent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getpwent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getpwent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getpwent_r" >&5
-echo "${ECHO_T}$ac_cv_func_getpwent_r" >&6; }
-if test $ac_cv_func_getpwent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <pwd.h>
-struct passwd *
-getpwent_r(struct passwd *pwptr, char *buf, int buflen) {}
-
-
-int
-main ()
-{
-
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen"
-PASS_R_BAD="#define PASS_R_BAD NULL"
-PASS_R_COPY="#define PASS_R_COPY buf, buflen"
-PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS"
-PASS_R_OK="#define PASS_R_OK pwptr"
-PASS_R_RETURN="#define PASS_R_RETURN struct passwd *"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen"
-PASS_R_BAD="#define PASS_R_BAD NULL"
-PASS_R_COPY="#define PASS_R_COPY buf, buflen"
-PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS"
-PASS_R_OK="#define PASS_R_OK pwptr"
-PASS_R_RETURN="#define PASS_R_RETURN struct passwd *"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_GETPWENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for endpwent_r" >&5
-echo $ECHO_N "checking for endpwent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endpwent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endpwent_r to an innocuous variant, in case <limits.h> declares endpwent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endpwent_r innocuous_endpwent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endpwent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endpwent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endpwent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endpwent_r || defined __stub___endpwent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endpwent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endpwent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endpwent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endpwent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endpwent_r" >&6; }
-if test $ac_cv_func_endpwent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <pwd.h>
-void endpwent_r(FILE **pwfp);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/"
-PASS_R_END_RETURN="#define PASS_R_END_RETURN void"
-PASS_R_ENT_ARGS="#define PASS_R_ENT_ARGS FILE **pwptr"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/"
-PASS_R_END_RETURN="#define PASS_R_END_RETURN void"
-PASS_R_ENT_ARGS="#undef PASS_R_ENT_ARGS"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_ENDPWENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for setpassent_r" >&5
-echo $ECHO_N "checking for setpassent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setpassent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setpassent_r to an innocuous variant, in case <limits.h> declares setpassent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setpassent_r innocuous_setpassent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setpassent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setpassent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setpassent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setpassent_r || defined __stub___setpassent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setpassent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setpassent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setpassent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setpassent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setpassent_r" >&6; }
-if test $ac_cv_func_setpassent_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_SETPASSENT_R 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for setpassent" >&5
-echo $ECHO_N "checking for setpassent... $ECHO_C" >&6; }
-if test "${ac_cv_func_setpassent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setpassent to an innocuous variant, in case <limits.h> declares setpassent.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setpassent innocuous_setpassent
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setpassent (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setpassent
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setpassent ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setpassent || defined __stub___setpassent
-choke me
-#endif
-
-int
-main ()
-{
-return setpassent ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setpassent=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setpassent=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setpassent" >&5
-echo "${ECHO_T}$ac_cv_func_setpassent" >&6; }
-if test $ac_cv_func_setpassent = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_SETPASSENT 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for setpwent_r" >&5
-echo $ECHO_N "checking for setpwent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setpwent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setpwent_r to an innocuous variant, in case <limits.h> declares setpwent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setpwent_r innocuous_setpwent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setpwent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setpwent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setpwent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setpwent_r || defined __stub___setpwent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setpwent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setpwent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setpwent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setpwent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setpwent_r" >&6; }
-if test $ac_cv_func_setpwent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <pwd.h>
-void setpwent_r(FILE **pwfp);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /* empty */"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <pwd.h>
-int setpwent_r(FILE **pwfp);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PASS_R_SET_RESULT="#define PASS_R_SET_RESULT 0"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int"
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /*empty*/"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN void"
-cat >>confdefs.h <<\_ACEOF
-#define NEED_SETPWENT_R 1
-_ACEOF
-
-
-fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for getpwnam_r" >&5
-echo $ECHO_N "checking for getpwnam_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getpwnam_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getpwnam_r to an innocuous variant, in case <limits.h> declares getpwnam_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getpwnam_r innocuous_getpwnam_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getpwnam_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getpwnam_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getpwnam_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getpwnam_r || defined __stub___getpwnam_r
-choke me
-#endif
-
-int
-main ()
-{
-return getpwnam_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getpwnam_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getpwnam_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getpwnam_r" >&5
-echo "${ECHO_T}$ac_cv_func_getpwnam_r" >&6; }
-if test $ac_cv_func_getpwnam_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_GETPWNAM_R 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for getpwuid_r" >&5
-echo $ECHO_N "checking for getpwuid_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getpwuid_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getpwuid_r to an innocuous variant, in case <limits.h> declares getpwuid_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getpwuid_r innocuous_getpwuid_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getpwuid_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getpwuid_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getpwuid_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getpwuid_r || defined __stub___getpwuid_r
-choke me
-#endif
-
-int
-main ()
-{
-return getpwuid_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getpwuid_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getpwuid_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getpwuid_r" >&5
-echo "${ECHO_T}$ac_cv_func_getpwuid_r" >&6; }
-if test $ac_cv_func_getpwuid_r = yes; then
-  :
-else
-  cat >>confdefs.h <<\_ACEOF
-#define NEED_GETPWUID_R 1
-_ACEOF
-
-fi
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for getservent_r" >&5
-echo $ECHO_N "checking for getservent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_getservent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getservent_r to an innocuous variant, in case <limits.h> declares getservent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getservent_r innocuous_getservent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getservent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getservent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getservent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getservent_r || defined __stub___getservent_r
-choke me
-#endif
-
-int
-main ()
-{
-return getservent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_getservent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getservent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_getservent_r" >&5
-echo "${ECHO_T}$ac_cv_func_getservent_r" >&6; }
-if test $ac_cv_func_getservent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct servent *
-getservent_r(struct servent *result, char *buffer, int buflen) {}
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen"
-SERV_R_BAD="#define SERV_R_BAD NULL"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS"
-SERV_R_OK="#define SERV_R_OK sptr"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN struct servent *"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int
-getservent_r (struct servent *, char *, size_t, struct servent **);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_ARGS="#define SERV_R_ARGS char *buf, size_t buflen, struct servent **answerp"
-SERV_R_BAD="#define SERV_R_BAD ERANGE"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS char *buf, size_t buflen"
-SERV_R_OK="#define SERV_R_OK (0)"
-SERV_R_SETANSWER="#define SERV_R_SETANSWER 1"
-SERV_R_RETURN="#define SERV_R_RETURN int"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int
-getservent_r (struct servent *, struct servent_data *serv_data);
-
-int
-main ()
-{
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_ARGS="#define SERV_R_ARGS struct servent_data *serv_data"
-SERV_R_BAD="#define SERV_R_BAD (-1)"
-SERV_R_COPY="#define SERV_R_COPY serv_data"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS struct servent_data *sdptr"
-SERV_R_OK="#define SERV_R_OK (0)"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN int"
-SERVENT_DATA="#define SERVENT_DATA 1"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen"
-SERV_R_BAD="#define SERV_R_BAD NULL"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS"
-SERV_R_OK="#define SERV_R_OK sptr"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN struct servent *"
-
-fi
-
-esac
-
-
-
-
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for endservent_r" >&5
-echo $ECHO_N "checking for endservent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_endservent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define endservent_r to an innocuous variant, in case <limits.h> declares endservent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define endservent_r innocuous_endservent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char endservent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef endservent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char endservent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_endservent_r || defined __stub___endservent_r
-choke me
-#endif
-
-int
-main ()
-{
-return endservent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_endservent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_endservent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_endservent_r" >&5
-echo "${ECHO_T}$ac_cv_func_endservent_r" >&6; }
-if test $ac_cv_func_endservent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endservent_r(void);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/"
-SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endservent_r(struct servent_data *serv_data);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data"
-SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endservent_r(struct servent_data *serv_data);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) return(x)"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN int "
-SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data"
-SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/"
-SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/"
-
-fi
-
-esac
-
-
-
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-{ echo "$as_me:$LINENO: checking for setservent_r" >&5
-echo $ECHO_N "checking for setservent_r... $ECHO_C" >&6; }
-if test "${ac_cv_func_setservent_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define setservent_r to an innocuous variant, in case <limits.h> declares setservent_r.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define setservent_r innocuous_setservent_r
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char setservent_r (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef setservent_r
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setservent_r ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_setservent_r || defined __stub___setservent_r
-choke me
-#endif
-
-int
-main ()
-{
-return setservent_r ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_setservent_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_setservent_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setservent_r" >&5
-echo "${ECHO_T}$ac_cv_func_setservent_r" >&6; }
-if test $ac_cv_func_setservent_r = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void setservent_r(int);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int setservent_r(int, struct servent_data *);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SERV_R_SET_RESULT="#define SERV_R_SET_RESULT (0)"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN int"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void"
-
-fi
-
-esac
-
-
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-int innetgr(const char *netgroup, const char *host, const char *user, const char *domain);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-INNETGR_ARGS="#undef INNETGR_ARGS"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-int innetgr(char *netgroup, char *host, char *user, char *domain);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-INNETGR_ARGS="#define INNETGR_ARGS char *netgroup, char *host, char *user, char *domain"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-void setnetgrent(const char *);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SETNETGRENT_ARGS="#undef SETNETGRENT_ARGS"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-void setnetgrent(char *);
-
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-SETNETGRENT_ARGS="#define SETNETGRENT_ARGS char *netgroup"
-
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-
-#
-# Random remaining OS-specific issues involving compiler warnings.
-# XXXDCL print messages to indicate some compensation is being done?
-#
-BROKEN_IN6ADDR_INIT_MACROS="#undef BROKEN_IN6ADDR_INIT_MACROS"
-
-case "$host" in
-       *-aix5.1.*)
-               hack_shutup_pthreadmutexinit=yes
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-aix5.[23].*)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-bsdi3.1*)
-               hack_shutup_sputaux=yes
-               ;;
-       *-bsdi4.0*)
-               hack_shutup_sigwait=yes
-               hack_shutup_sputaux=yes
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-bsdi4.1*)
-               hack_shutup_stdargcast=yes
-               ;;
-       *-hpux11.11)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-osf5.1|*-osf5.1b)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.8)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.9)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.1[0-9])
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-esac
-
-case "$hack_shutup_pthreadmutexinit" in
-       yes)
-               #
-               # Shut up PTHREAD_MUTEX_INITIALIZER unbraced
-               # initializer warnings.
-               #
-               cat >>confdefs.h <<\_ACEOF
-#define SHUTUP_MUTEX_INITIALIZER 1
-_ACEOF
-
-               ;;
-esac
-
-case "$hack_shutup_sigwait" in
-       yes)
-               #
-               # Shut up a -Wmissing-prototypes warning for sigwait().
-               #
-               cat >>confdefs.h <<\_ACEOF
-#define SHUTUP_SIGWAIT 1
-_ACEOF
-
-               ;;
-esac
-
-case "$hack_shutup_sputaux" in
-       yes)
-               #
-               # Shut up a -Wmissing-prototypes warning from <stdio.h>.
-               #
-               cat >>confdefs.h <<\_ACEOF
-#define SHUTUP_SPUTAUX 1
-_ACEOF
-
-               ;;
-esac
-
-case "$hack_shutup_stdargcast" in
-       yes)
-               #
-               # Shut up a -Wcast-qual warning from va_start().
-               #
-               cat >>confdefs.h <<\_ACEOF
-#define SHUTUP_STDARG_CAST 1
-_ACEOF
-
-               ;;
-esac
-
-case "$hack_shutup_in6addr_init_macros" in
-       yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define BROKEN_IN6ADDR_INIT_MACROS 1
-_ACEOF
-
-               ;;
-esac
-
-#
-# Substitutions
-#
-
-BIND9_TOP_BUILDDIR=`pwd`
-
-
-BIND9_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
-
-
-BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
-
-. $srcdir/../../version
-BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}"
-
-
-
-LIBBIND_API=$srcdir/api
-
-ac_config_files="$ac_config_files make/rules make/mkdep make/includes Makefile bsd/Makefile dst/Makefile include/Makefile inet/Makefile irs/Makefile isc/Makefile nameser/Makefile port_after.h port_before.h resolv/Makefile port/Makefile ${PORT_DIR}/Makefile ${PORT_INCLUDE}/Makefile include/isc/platform.h"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-       "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""       $as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-       case $1 in
-        -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                  instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-                  instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
-  export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "make/rules") CONFIG_FILES="$CONFIG_FILES make/rules" ;;
-    "make/mkdep") CONFIG_FILES="$CONFIG_FILES make/mkdep" ;;
-    "make/includes") CONFIG_FILES="$CONFIG_FILES make/includes" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "bsd/Makefile") CONFIG_FILES="$CONFIG_FILES bsd/Makefile" ;;
-    "dst/Makefile") CONFIG_FILES="$CONFIG_FILES dst/Makefile" ;;
-    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-    "inet/Makefile") CONFIG_FILES="$CONFIG_FILES inet/Makefile" ;;
-    "irs/Makefile") CONFIG_FILES="$CONFIG_FILES irs/Makefile" ;;
-    "isc/Makefile") CONFIG_FILES="$CONFIG_FILES isc/Makefile" ;;
-    "nameser/Makefile") CONFIG_FILES="$CONFIG_FILES nameser/Makefile" ;;
-    "port_after.h") CONFIG_FILES="$CONFIG_FILES port_after.h" ;;
-    "port_before.h") CONFIG_FILES="$CONFIG_FILES port_before.h" ;;
-    "resolv/Makefile") CONFIG_FILES="$CONFIG_FILES resolv/Makefile" ;;
-    "port/Makefile") CONFIG_FILES="$CONFIG_FILES port/Makefile" ;;
-    "${PORT_DIR}/Makefile") CONFIG_FILES="$CONFIG_FILES ${PORT_DIR}/Makefile" ;;
-    "${PORT_INCLUDE}/Makefile") CONFIG_FILES="$CONFIG_FILES ${PORT_INCLUDE}/Makefile" ;;
-    "include/isc/platform.h") CONFIG_FILES="$CONFIG_FILES include/isc/platform.h" ;;
-
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-# Create sed commands to just substitute file output variables.
-
-# Remaining file output variables are in a fragment that also has non-file
-# output varibles.
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-RANLIB!$RANLIB$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-STD_CINCLUDES!$STD_CINCLUDES$ac_delim
-STD_CDEFINES!$STD_CDEFINES$ac_delim
-STD_CWARNINGS!$STD_CWARNINGS$ac_delim
-CCOPT!$CCOPT$ac_delim
-AR!$AR$ac_delim
-ARFLAGS!$ARFLAGS$ac_delim
-LN!$LN$ac_delim
-ETAGS!$ETAGS$ac_delim
-PERL!$PERL$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-CPP!$CPP$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-ISC_PLATFORM_NEEDSYSSELECTH!$ISC_PLATFORM_NEEDSYSSELECTH$ac_delim
-WANT_IRS_GR!$WANT_IRS_GR$ac_delim
-WANT_IRS_GR_OBJS!$WANT_IRS_GR_OBJS$ac_delim
-WANT_IRS_PW!$WANT_IRS_PW$ac_delim
-WANT_IRS_PW_OBJS!$WANT_IRS_PW_OBJS$ac_delim
-WANT_IRS_NIS!$WANT_IRS_NIS$ac_delim
-WANT_IRS_NIS_OBJS!$WANT_IRS_NIS_OBJS$ac_delim
-WANT_IRS_NISGR_OBJS!$WANT_IRS_NISGR_OBJS$ac_delim
-WANT_IRS_NISPW_OBJS!$WANT_IRS_NISPW_OBJS$ac_delim
-WANT_IRS_DBPW_OBJS!$WANT_IRS_DBPW_OBJS$ac_delim
-ALWAYS_DEFINES!$ALWAYS_DEFINES$ac_delim
-DO_PTHREADS!$DO_PTHREADS$ac_delim
-WANT_IRS_THREADSGR_OBJS!$WANT_IRS_THREADSGR_OBJS$ac_delim
-WANT_IRS_THREADSPW_OBJS!$WANT_IRS_THREADSPW_OBJS$ac_delim
-WANT_IRS_THREADS_OBJS!$WANT_IRS_THREADS_OBJS$ac_delim
-WANT_THREADS_OBJS!$WANT_THREADS_OBJS$ac_delim
-USE_IFNAMELINKID!$USE_IFNAMELINKID$ac_delim
-ISC_THREAD_DIR!$ISC_THREAD_DIR$ac_delim
-DAEMON_OBJS!$DAEMON_OBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 88; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-/^[     ]*@BIND9_INCLUDES@[     ]*$/{
-r $BIND9_INCLUDES
-d
-}
-/^[     ]*@BIND9_MAKE_RULES@[   ]*$/{
-r $BIND9_MAKE_RULES
-d
-}
-/^[     ]*@LIBBIND_API@[        ]*$/{
-r $LIBBIND_API
-d
-}
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-NEED_DAEMON!$NEED_DAEMON$ac_delim
-STRSEP_OBJS!$STRSEP_OBJS$ac_delim
-NEED_STRSEP!$NEED_STRSEP$ac_delim
-NEED_STRERROR!$NEED_STRERROR$ac_delim
-MKDEPCC!$MKDEPCC$ac_delim
-MKDEPCFLAGS!$MKDEPCFLAGS$ac_delim
-MKDEPPROG!$MKDEPPROG$ac_delim
-IRIX_DNSSEC_WARNINGS_HACK!$IRIX_DNSSEC_WARNINGS_HACK$ac_delim
-purify_path!$purify_path$ac_delim
-PURIFY!$PURIFY$ac_delim
-LN_S!$LN_S$ac_delim
-ECHO!$ECHO$ac_delim
-STRIP!$STRIP$ac_delim
-CXX!$CXX$ac_delim
-CXXFLAGS!$CXXFLAGS$ac_delim
-ac_ct_CXX!$ac_ct_CXX$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-O!$O$ac_delim
-A!$A$ac_delim
-SA!$SA$ac_delim
-LIBTOOL_MKDEP_SED!$LIBTOOL_MKDEP_SED$ac_delim
-LIBTOOL_MODE_COMPILE!$LIBTOOL_MODE_COMPILE$ac_delim
-LIBTOOL_MODE_INSTALL!$LIBTOOL_MODE_INSTALL$ac_delim
-LIBTOOL_MODE_LINK!$LIBTOOL_MODE_LINK$ac_delim
-HAS_INET6_STRUCTS!$HAS_INET6_STRUCTS$ac_delim
-ISC_PLATFORM_NEEDNETINETIN6H!$ISC_PLATFORM_NEEDNETINETIN6H$ac_delim
-ISC_PLATFORM_NEEDNETINET6IN6H!$ISC_PLATFORM_NEEDNETINET6IN6H$ac_delim
-HAS_IN_ADDR6!$HAS_IN_ADDR6$ac_delim
-NEED_IN6ADDR_ANY!$NEED_IN6ADDR_ANY$ac_delim
-ISC_PLATFORM_HAVEIN6PKTINFO!$ISC_PLATFORM_HAVEIN6PKTINFO$ac_delim
-ISC_PLATFORM_FIXIN6ISADDR!$ISC_PLATFORM_FIXIN6ISADDR$ac_delim
-ISC_IPV6_H!$ISC_IPV6_H$ac_delim
-ISC_IPV6_O!$ISC_IPV6_O$ac_delim
-ISC_ISCIPV6_O!$ISC_ISCIPV6_O$ac_delim
-ISC_IPV6_C!$ISC_IPV6_C$ac_delim
-HAVE_SIN6_SCOPE_ID!$HAVE_SIN6_SCOPE_ID$ac_delim
-HAVE_SOCKADDR_STORAGE!$HAVE_SOCKADDR_STORAGE$ac_delim
-ISC_PLATFORM_NEEDNTOP!$ISC_PLATFORM_NEEDNTOP$ac_delim
-ISC_PLATFORM_NEEDPTON!$ISC_PLATFORM_NEEDPTON$ac_delim
-ISC_PLATFORM_NEEDATON!$ISC_PLATFORM_NEEDATON$ac_delim
-HAVE_SA_LEN!$HAVE_SA_LEN$ac_delim
-HAVE_MINIMUM_IFREQ!$HAVE_MINIMUM_IFREQ$ac_delim
-BSD_COMP!$BSD_COMP$ac_delim
-SOLARIS_BITTYPES!$SOLARIS_BITTYPES$ac_delim
-USE_FIONBIO_IOCTL!$USE_FIONBIO_IOCTL$ac_delim
-PORT_NONBLOCK!$PORT_NONBLOCK$ac_delim
-PORT_DIR!$PORT_DIR$ac_delim
-USE_POLL!$USE_POLL$ac_delim
-HAVE_MD5!$HAVE_MD5$ac_delim
-SOLARIS2!$SOLARIS2$ac_delim
-PORT_INCLUDE!$PORT_INCLUDE$ac_delim
-ISC_PLATFORM_MSGHDRFLAVOR!$ISC_PLATFORM_MSGHDRFLAVOR$ac_delim
-ISC_PLATFORM_NEEDPORTT!$ISC_PLATFORM_NEEDPORTT$ac_delim
-ISC_PLATFORM_NEEDTIMESPEC!$ISC_PLATFORM_NEEDTIMESPEC$ac_delim
-ISC_LWRES_ENDHOSTENTINT!$ISC_LWRES_ENDHOSTENTINT$ac_delim
-ISC_LWRES_SETNETENTINT!$ISC_LWRES_SETNETENTINT$ac_delim
-ISC_LWRES_ENDNETENTINT!$ISC_LWRES_ENDNETENTINT$ac_delim
-ISC_LWRES_GETHOSTBYADDRVOID!$ISC_LWRES_GETHOSTBYADDRVOID$ac_delim
-ISC_LWRES_NEEDHERRNO!$ISC_LWRES_NEEDHERRNO$ac_delim
-ISC_LWRES_GETIPNODEPROTO!$ISC_LWRES_GETIPNODEPROTO$ac_delim
-ISC_LWRES_GETADDRINFOPROTO!$ISC_LWRES_GETADDRINFOPROTO$ac_delim
-ISC_LWRES_GETNAMEINFOPROTO!$ISC_LWRES_GETNAMEINFOPROTO$ac_delim
-NEED_PSELECT!$NEED_PSELECT$ac_delim
-NEED_GETTIMEOFDAY!$NEED_GETTIMEOFDAY$ac_delim
-HAVE_STRNDUP!$HAVE_STRNDUP$ac_delim
-ISC_PLATFORM_NEEDSTRSEP!$ISC_PLATFORM_NEEDSTRSEP$ac_delim
-ISC_PLATFORM_NEEDVSNPRINTF!$ISC_PLATFORM_NEEDVSNPRINTF$ac_delim
-ISC_EXTRA_OBJS!$ISC_EXTRA_OBJS$ac_delim
-ISC_EXTRA_SRCS!$ISC_EXTRA_SRCS$ac_delim
-ISC_PLATFORM_QUADFORMAT!$ISC_PLATFORM_QUADFORMAT$ac_delim
-ISC_SOCKLEN_T!$ISC_SOCKLEN_T$ac_delim
-GETGROUPLIST_ARGS!$GETGROUPLIST_ARGS$ac_delim
-NET_R_ARGS!$NET_R_ARGS$ac_delim
-NET_R_BAD!$NET_R_BAD$ac_delim
-NET_R_COPY!$NET_R_COPY$ac_delim
-NET_R_COPY_ARGS!$NET_R_COPY_ARGS$ac_delim
-NET_R_OK!$NET_R_OK$ac_delim
-NET_R_SETANSWER!$NET_R_SETANSWER$ac_delim
-NET_R_RETURN!$NET_R_RETURN$ac_delim
-GETNETBYADDR_ADDR_T!$GETNETBYADDR_ADDR_T$ac_delim
-NETENT_DATA!$NETENT_DATA$ac_delim
-NET_R_ENT_ARGS!$NET_R_ENT_ARGS$ac_delim
-NET_R_SET_RESULT!$NET_R_SET_RESULT$ac_delim
-NET_R_SET_RETURN!$NET_R_SET_RETURN$ac_delim
-NET_R_END_RESULT!$NET_R_END_RESULT$ac_delim
-NET_R_END_RETURN!$NET_R_END_RETURN$ac_delim
-GROUP_R_ARGS!$GROUP_R_ARGS$ac_delim
-GROUP_R_BAD!$GROUP_R_BAD$ac_delim
-GROUP_R_OK!$GROUP_R_OK$ac_delim
-GROUP_R_RETURN!$GROUP_R_RETURN$ac_delim
-GROUP_R_END_RESULT!$GROUP_R_END_RESULT$ac_delim
-GROUP_R_END_RETURN!$GROUP_R_END_RETURN$ac_delim
-GROUP_R_ENT_ARGS!$GROUP_R_ENT_ARGS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-GROUP_R_SET_RESULT!$GROUP_R_SET_RESULT$ac_delim
-GROUP_R_SET_RETURN!$GROUP_R_SET_RETURN$ac_delim
-HOST_R_ARGS!$HOST_R_ARGS$ac_delim
-HOST_R_BAD!$HOST_R_BAD$ac_delim
-HOST_R_COPY!$HOST_R_COPY$ac_delim
-HOST_R_COPY_ARGS!$HOST_R_COPY_ARGS$ac_delim
-HOST_R_ERRNO!$HOST_R_ERRNO$ac_delim
-HOST_R_OK!$HOST_R_OK$ac_delim
-HOST_R_RETURN!$HOST_R_RETURN$ac_delim
-HOST_R_SETANSWER!$HOST_R_SETANSWER$ac_delim
-HOSTENT_DATA!$HOSTENT_DATA$ac_delim
-HOST_R_END_RESULT!$HOST_R_END_RESULT$ac_delim
-HOST_R_END_RETURN!$HOST_R_END_RETURN$ac_delim
-HOST_R_ENT_ARGS!$HOST_R_ENT_ARGS$ac_delim
-HOST_R_SET_RESULT!$HOST_R_SET_RESULT$ac_delim
-HOST_R_SET_RETURN!$HOST_R_SET_RETURN$ac_delim
-SETPWENT_VOID!$SETPWENT_VOID$ac_delim
-SETGRENT_VOID!$SETGRENT_VOID$ac_delim
-NGR_R_CONST!$NGR_R_CONST$ac_delim
-NGR_R_ARGS!$NGR_R_ARGS$ac_delim
-NGR_R_BAD!$NGR_R_BAD$ac_delim
-NGR_R_COPY!$NGR_R_COPY$ac_delim
-NGR_R_COPY_ARGS!$NGR_R_COPY_ARGS$ac_delim
-NGR_R_OK!$NGR_R_OK$ac_delim
-NGR_R_RETURN!$NGR_R_RETURN$ac_delim
-NGR_R_PRIVATE!$NGR_R_PRIVATE$ac_delim
-NGR_R_END_RESULT!$NGR_R_END_RESULT$ac_delim
-NGR_R_END_RETURN!$NGR_R_END_RETURN$ac_delim
-NGR_R_END_ARGS!$NGR_R_END_ARGS$ac_delim
-NGR_R_SET_RESULT!$NGR_R_SET_RESULT$ac_delim
-NGR_R_SET_RETURN!$NGR_R_SET_RETURN$ac_delim
-NGR_R_SET_ARGS!$NGR_R_SET_ARGS$ac_delim
-NGR_R_SET_CONST!$NGR_R_SET_CONST$ac_delim
-PROTO_R_ARGS!$PROTO_R_ARGS$ac_delim
-PROTO_R_BAD!$PROTO_R_BAD$ac_delim
-PROTO_R_COPY!$PROTO_R_COPY$ac_delim
-PROTO_R_COPY_ARGS!$PROTO_R_COPY_ARGS$ac_delim
-PROTO_R_OK!$PROTO_R_OK$ac_delim
-PROTO_R_SETANSWER!$PROTO_R_SETANSWER$ac_delim
-PROTO_R_RETURN!$PROTO_R_RETURN$ac_delim
-PROTOENT_DATA!$PROTOENT_DATA$ac_delim
-PROTO_R_END_RESULT!$PROTO_R_END_RESULT$ac_delim
-PROTO_R_END_RETURN!$PROTO_R_END_RETURN$ac_delim
-PROTO_R_ENT_ARGS!$PROTO_R_ENT_ARGS$ac_delim
-PROTO_R_ENT_UNUSED!$PROTO_R_ENT_UNUSED$ac_delim
-PROTO_R_SET_RESULT!$PROTO_R_SET_RESULT$ac_delim
-PROTO_R_SET_RETURN!$PROTO_R_SET_RETURN$ac_delim
-PASS_R_ARGS!$PASS_R_ARGS$ac_delim
-PASS_R_BAD!$PASS_R_BAD$ac_delim
-PASS_R_COPY!$PASS_R_COPY$ac_delim
-PASS_R_COPY_ARGS!$PASS_R_COPY_ARGS$ac_delim
-PASS_R_OK!$PASS_R_OK$ac_delim
-PASS_R_RETURN!$PASS_R_RETURN$ac_delim
-PASS_R_END_RESULT!$PASS_R_END_RESULT$ac_delim
-PASS_R_END_RETURN!$PASS_R_END_RETURN$ac_delim
-PASS_R_ENT_ARGS!$PASS_R_ENT_ARGS$ac_delim
-PASS_R_SET_RESULT!$PASS_R_SET_RESULT$ac_delim
-PASS_R_SET_RETURN!$PASS_R_SET_RETURN$ac_delim
-SERV_R_ARGS!$SERV_R_ARGS$ac_delim
-SERV_R_BAD!$SERV_R_BAD$ac_delim
-SERV_R_COPY!$SERV_R_COPY$ac_delim
-SERV_R_COPY_ARGS!$SERV_R_COPY_ARGS$ac_delim
-SERV_R_OK!$SERV_R_OK$ac_delim
-SERV_R_SETANSWER!$SERV_R_SETANSWER$ac_delim
-SERV_R_RETURN!$SERV_R_RETURN$ac_delim
-SERVENT_DATA!$SERVENT_DATA$ac_delim
-SERV_R_END_RESULT!$SERV_R_END_RESULT$ac_delim
-SERV_R_END_RETURN!$SERV_R_END_RETURN$ac_delim
-SERV_R_ENT_ARGS!$SERV_R_ENT_ARGS$ac_delim
-SERV_R_ENT_UNUSED!$SERV_R_ENT_UNUSED$ac_delim
-SERV_R_SET_RESULT!$SERV_R_SET_RESULT$ac_delim
-SERV_R_SET_RETURN!$SERV_R_SET_RETURN$ac_delim
-SETNETGRENT_ARGS!$SETNETGRENT_ARGS$ac_delim
-INNETGR_ARGS!$INNETGR_ARGS$ac_delim
-BIND9_TOP_BUILDDIR!$BIND9_TOP_BUILDDIR$ac_delim
-BIND9_VERSION!$BIND9_VERSION$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 78; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[    ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[      ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-   { (exit 1); exit 1; }; };;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-        # (if the path is not absolute).  The absolute path cannot be DOS-style,
-        # because $ac_f cannot contain `:'.
-        test -f "$ac_f" ||
-          case $ac_f in
-          [\\/$]*) false;;
-          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-          esac ||
-          { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
-      esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-         echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    fi
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([  #]*\\)[^        ]*\\([  ]*'
-ac_dB='\\)[     (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-       t rset
-       :rset
-       s/^[     ]*#[    ]*define[       ][      ]*//
-       t ok
-       d
-       :ok
-       s/[\\&,]/\\&/g
-       s/^\('"$ac_word_re"'\)\(([^()]*)\)[      ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-       s/^\('"$ac_word_re"'\)[  ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[    #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:         sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:        sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:    sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[     ]*#[    ]*undef[        ][      ]*$ac_word_re[  ]*\$/b def
-/^[     ]*#[    ]*define[       ][      ]*$ac_word_re[(         ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
-  if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
-    fi
-  else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
-  fi
-  rm -f "$tmp/out12"
- ;;
-
-
-  esac
-
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-# Tell Emacs to edit this file in shell mode.
-# Local Variables:
-# mode: sh
-# End:
diff --git a/lib/bind/configure.in b/lib/bind/configure.in
deleted file mode 100644 (file)
index 7d17f8a..0000000
+++ /dev/null
@@ -1,2872 +0,0 @@
-# Copyright (C) 2004-2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001, 2003  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
-
-AC_REVISION($Revision: 1.137 $)
-
-AC_INIT(resolv/herror.c)
-AC_PREREQ(2.13)
-
-AC_CONFIG_HEADER(config.h)
-
-AC_CANONICAL_HOST
-
-AC_PROG_MAKE_SET
-AC_PROG_RANLIB
-AC_PROG_INSTALL
-
-AC_SUBST(STD_CINCLUDES)
-AC_SUBST(STD_CDEFINES)
-AC_SUBST(STD_CWARNINGS)
-AC_SUBST(CCOPT)
-
-AC_PATH_PROG(AR, ar)
-ARFLAGS="cruv"
-AC_SUBST(AR)
-AC_SUBST(ARFLAGS)
-
-# The POSIX ln(1) program.  Non-POSIX systems may substitute
-# "copy" or something.
-LN=ln
-AC_SUBST(LN)
-
-case "$AR" in
-       "")
-               AC_MSG_ERROR([
-ar program not found.  Please fix your PATH to include the directory in
-which ar resides, or set AR in the environment with the full path to ar.
-])
-
-               ;;
-esac
-
-#
-# Etags.
-#
-AC_PATH_PROGS(ETAGS, etags emacs-etags)
-
-#
-# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
-# GNU emacs etags, and it requires the -L flag.
-#
-if test "X$ETAGS" != "X"; then
-       AC_MSG_CHECKING(for Exuberant Ctags etags)
-       if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
-               AC_MSG_RESULT(yes)
-               ETAGS="$ETAGS -L"
-       else
-               AC_MSG_RESULT(no)
-       fi
-fi
-AC_SUBST(ETAGS)
-
-#
-# Perl is optional; it is used only by some of the system test scripts.
-#
-AC_PATH_PROGS(PERL, perl5 perl)
-AC_SUBST(PERL)
-
-#
-# isc/list.h and others clash with the rest of BIND 9
-#
-case "$includedir" in
-       '${prefix}/include')
-               includedir='${prefix}/bind/include'
-               ;;
-esac
-case "$libdir" in
-       '${prefix}/lib')
-               libdir='${prefix}/bind/lib'
-               ;;
-esac
-
-#
-# Make sure INSTALL uses an absolute path, else it will be wrong in all
-# Makefiles, since they use make/rules.in and INSTALL will be adjusted by
-# configure based on the location of the file where it is substituted.
-# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
-# subdirectory of install-sh, This relative path will be wrong for all
-# directories more than one level down from install-sh.
-#
-case "$INSTALL" in
-       /*)
-                ;;
-        *)
-                #
-                # Not all systems have dirname.
-                #
-                changequote({, })
-                ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
-                changequote([, ])
-
-                ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
-                test "$ac_dir" = "$ac_prog" && ac_dir=.
-                test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
-                INSTALL="$ac_dir/$ac_prog"
-                ;;
-esac
-
-#
-# On these hosts, we really want to use cc, not gcc, even if it is
-# found.  The gcc that these systems have will not correctly handle
-# pthreads.
-#
-# However, if the user sets $CC to be something, let that override
-# our change.
-#
-if test "X$CC" = "X" ; then
-       case "$host" in
-               *-dec-osf*)
-                       CC="cc"
-                       ;;
-               *-solaris*)
-                        # Use Sun's cc if it is available, but watch
-                        # out for /usr/ucb/cc; it will never be the right
-                        # compiler to use.
-                        #
-                        # If setting CC here fails, the AC_PROG_CC done
-                        # below might still find gcc.
-                       IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS=":"
-                       for ac_dir in $PATH; do
-                               test -z "$ac_dir" && ac_dir=.
-                               case "$ac_dir" in
-                               /usr/ucb)
-                                       # exclude
-                                       ;;
-                               *)
-                                       if test -f "$ac_dir/cc"; then
-                                               CC="$ac_dir/cc"
-                                               break
-                                       fi
-                                       ;;
-                               esac
-                       done
-                       IFS="$ac_save_ifs"
-                       ;;
-               *-hp-hpux*)
-                       CC="cc"
-                       ;;
-               mips-sgi-irix*)
-                       CC="cc"
-                       ;;
-       esac
-fi
-
-
-AC_PROG_CC
-
-AC_HEADER_STDC
-
-
-AC_CHECK_HEADERS(fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h stropts.h memory.h)
-
-AC_C_CONST
-AC_C_INLINE
-AC_TYPE_SIZE_T
-AC_CHECK_TYPE(ssize_t,signed)
-AC_CHECK_TYPE(uintptr_t,unsigned long)
-AC_HEADER_TIME
-#
-# check if we need to #include sys/select.h explicitly
-#
-case $ac_cv_header_unistd_h in
-yes)
-AC_MSG_CHECKING(if unistd.h defines fd_set)
-AC_TRY_COMPILE([
-#include <unistd.h>],
-[fd_set read_set; return (0);],
-       [AC_MSG_RESULT(yes)
-        ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
-        ],
-       [AC_MSG_RESULT(no)
-       case ac_cv_header_sys_select_h in
-       yes)
-         ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
-               ;;
-       no)
-               AC_MSG_ERROR([need either working unistd.h or sys/select.h])
-               ;;
-       esac
-       ])
-       ;;
-no)
-       case ac_cv_header_sys_select_h in
-       yes)
-             ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
-               ;;
-       no)
-               AC_MSG_ERROR([need either unistd.h or sys/select.h])
-               ;;
-       esac
-       ;;
-esac
-AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
-
-#
-# Find the machine's endian flavor.
-#
-AC_C_BIGENDIAN
-
-AC_ARG_WITH(irs-gr,[ --with-irs-gr             Build ....],
-want_irs_gr="$withval", want_irs_gr="no")
-case "$want_irs_gr" in
-yes) WANT_IRS_GR="#define WANT_IRS_GR 1"
-     WANT_IRS_GR_OBJS="\${WANT_IRS_GR_OBJS}"
-       ;;
-*) WANT_IRS_GR="#undef WANT_IRS_GR" WANT_IRS_GR_OBJS="";;
-esac
-AC_SUBST(WANT_IRS_GR)
-AC_SUBST(WANT_IRS_GR_OBJS)
-
-AC_ARG_WITH(irs-pw,[ --with-irs-pw             Build ....],
-want_irs_pw="$withval", want_irs_pw="no")
-case "$want_irs_pw" in
-yes) WANT_IRS_PW="#define WANT_IRS_PW 1"
-     WANT_IRS_PW_OBJS="\${WANT_IRS_PW_OBJS}";;
-*) WANT_IRS_PW="#undef WANT_IRS_PW" WANT_IRS_PW_OBJS="";;
-esac
-AC_SUBST(WANT_IRS_PW)
-AC_SUBST(WANT_IRS_PW_OBJS)
-
-AC_ARG_WITH(irs-nis,[ --with-irs-nis           Build ....],
-want_irs_nis="$withval", want_irs_nis="no")
-case "$want_irs_nis" in
-yes)
-       WANT_IRS_NIS="#define WANT_IRS_NIS 1"
-       WANT_IRS_NIS_OBJS="\${WANT_IRS_NIS_OBJS}"
-       case "$want_irs_gr" in
-       yes)
-               WANT_IRS_NISGR_OBJS="\${WANT_IRS_NISGR_OBJS}";;
-       *)
-               WANT_IRS_NISGR_OBJS="";;
-       esac
-       case "$want_irs_pw" in
-       yes)
-               WANT_IRS_NISPW_OBJS="\${WANT_IRS_NISPW_OBJS}";;
-       *)
-               WANT_IRS_NISPW_OBJS="";;
-       esac
-       ;;
-*)
-       WANT_IRS_NIS="#undef WANT_IRS_NIS"
-       WANT_IRS_NIS_OBJS=""
-       WANT_IRS_NISGR_OBJS=""
-       WANT_IRS_NISPW_OBJS="";;
-esac
-AC_SUBST(WANT_IRS_NIS)
-AC_SUBST(WANT_IRS_NIS_OBJS)
-AC_SUBST(WANT_IRS_NISGR_OBJS)
-AC_SUBST(WANT_IRS_NISPW_OBJS)
-AC_TRY_RUN([
-#ifdef HAVE_DB_H
-int have_db_h = 1;
-#else
-int have_db_h = 0;
-#endif
-main() { return(!have_db_h); }
-],
-WANT_IRS_DBPW_OBJS="\${WANT_IRS_DBPW_OBJS}"
-,
-WANT_IRS_DBPW_OBJS=""
-,
-WANT_IRS_DBPW_OBJS=""
-)
-AC_SUBST(WANT_IRS_DBPW_OBJS)
-
-#
-# was --with-randomdev specified?
-#
-AC_MSG_CHECKING(for random device)
-AC_ARG_WITH(randomdev,
-[  --with-randomdev=PATH Specify path for random device],
-    use_randomdev="$withval", use_randomdev="unspec")
-
-case "$use_randomdev" in
-       unspec)
-               case "$host" in
-                       *-openbsd*)
-                               devrandom=/dev/srandom
-                               ;;
-                       *)
-                               devrandom=/dev/random
-                               ;;
-               esac
-               AC_MSG_RESULT($devrandom)
-               AC_CHECK_FILE($devrandom,
-                             AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
-                                                "$devrandom"),)
-               ;;
-       yes)
-               AC_MSG_ERROR([--with-randomdev must specify a path])
-               ;;
-       *)
-               AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
-               AC_MSG_RESULT(using "$use_randomdev")
-               ;;
-esac
-
-sinclude(../../config.threads.in)dnl
-
-if $use_threads
-then
-       if test "X$GCC" = "Xyes"; then
-               case "$host" in
-               *-freebsd*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               *-openbsd*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       ;;
-               *-solaris*)
-                       LIBS="$LIBS -lthread"
-                       ;;
-               *-ibm-aix*)
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               esac
-       else
-               case $host in
-               *-dec-osf*)
-                       CC="$CC -pthread"
-                       CCOPT="$CCOPT -pthread"
-                       ;;
-               *-solaris*)
-                       CC="$CC -mt"
-                       CCOPT="$CCOPT -mt"
-                       ;;
-               *-ibm-aix*)
-                       STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
-                       ;;
-               *-UnixWare*)
-                       CC="$CC -Kthread"
-                       CCOPT="$CCOPT -Kthread"
-                       ;;
-               esac
-       fi
-       AC_DEFINE(_REENTRANT)
-       ALWAYS_DEFINES="-D_REENTRANT"
-       DO_PTHREADS="#define DO_PTHREADS 1"
-       WANT_IRS_THREADSGR_OBJS="\${WANT_IRS_THREADSGR_OBJS}"
-       WANT_IRS_THREADSPW_OBJS="\${WANT_IRS_THREADSPW_OBJS}"
-       case $host in
-       ia64-hp-hpux11.*)
-               WANT_IRS_THREADS_OBJS="";;
-       *)
-               WANT_IRS_THREADS_OBJS="\${WANT_IRS_THREADS_OBJS}";;
-       esac
-       WANT_THREADS_OBJS="\${WANT_THREADS_OBJS}"
-       thread_dir=pthreads
-
-       #
-       # We'd like to use sigwait() too
-       #
-       AC_CHECK_FUNC(sigwait,
-                     AC_DEFINE(HAVE_SIGWAIT),
-                     AC_CHECK_LIB(c, sigwait,
-                     AC_DEFINE(HAVE_SIGWAIT),
-                     AC_CHECK_LIB(pthread, sigwait,
-                                  AC_DEFINE(HAVE_SIGWAIT),
-                                  AC_CHECK_LIB(pthread, _Psigwait,
-                                               AC_DEFINE(HAVE_SIGWAIT),))))
-
-       AC_CHECK_FUNC(pthread_attr_getstacksize,
-                     AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
-
-       #
-       # Additional OS-specific issues related to pthreads and sigwait.
-       #
-       case "$host" in
-               #
-               # One more place to look for sigwait.
-               #
-               *-freebsd*)
-                       AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
-                       ;;
-               #
-               # BSDI 3.0 through 4.0.1 needs pthread_init() to be
-               # called before certain pthreads calls.  This is deprecated
-               # in BSD/OS 4.1.
-               #
-               *-bsdi3.*|*-bsdi4.0*)
-                       AC_DEFINE(NEED_PTHREAD_INIT)
-                       ;;
-               #
-               # LinuxThreads requires some changes to the way we
-               # deal with signals.
-               #
-               *-linux*)
-                       AC_DEFINE(HAVE_LINUXTHREADS)
-                       ;;
-               #
-               # Ensure the right sigwait() semantics on Solaris and make
-               # sure we call pthread_setconcurrency.
-               #
-               *-solaris*)
-                       AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
-                       AC_CHECK_FUNC(pthread_setconcurrency,
-                                     AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
-                       AC_DEFINE(POSIX_GETPWUID_R)
-                       AC_DEFINE(POSIX_GETPWNAM_R)
-                       AC_DEFINE(POSIX_GETGRGID_R)
-                       AC_DEFINE(POSIX_GETGRNAM_R)
-                       ;;
-               *hpux11*)
-                       AC_DEFINE(NEED_ENDNETGRENT_R)
-                       AC_DEFINE(_PTHREADS_DRAFT4)
-                       ;;
-               #
-               # UnixWare does things its own way.
-               #
-               *-UnixWare*)
-                       AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
-                       ;;
-       esac
-
-       #
-       # Look for sysconf to allow detection of the number of processors.
-       #
-       AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
-
-else
-       ALWAYS_DEFINES=""
-       DO_PTHREADS="#undef DO_PTHREADS"
-       WANT_IRS_THREADSGR_OBJS=""
-       WANT_IRS_THREADSPW_OBJS=""
-       WANT_IRS_THREADS_OBJS=""
-       WANT_THREADS_OBJS=""
-       thread_dir=nothreads
-fi
-
-AC_SUBST(ALWAYS_DEFINES)
-AC_SUBST(DO_PTHREADS)
-AC_SUBST(WANT_IRS_THREADSGR_OBJS)
-AC_SUBST(WANT_IRS_THREADSPW_OBJS)
-AC_SUBST(WANT_IRS_THREADS_OBJS)
-AC_SUBST(WANT_THREADS_OBJS)
-
-AC_CHECK_FUNC(strlcat, AC_DEFINE(HAVE_STRLCAT))
-AC_CHECK_FUNC(memmove, AC_DEFINE(HAVE_MEMMOVE))
-AC_CHECK_FUNC(memchr, AC_DEFINE(HAVE_MEMCHR))
-AC_CHECK_FUNC(strtoul, , AC_DEFINE(NEED_STRTOUL))
-
-AC_CHECK_FUNC(if_nametoindex,
-       [USE_IFNAMELINKID="#define USE_IFNAMELINKID 1"],
-       [USE_IFNAMELINKID="#undef USE_IFNAMELINKID"])
-AC_SUBST(USE_IFNAMELINKID)
-
-ISC_THREAD_DIR=$thread_dir
-AC_SUBST(ISC_THREAD_DIR)
-
-AC_CHECK_FUNC(daemon,
-[DAEMON_OBJS="" NEED_DAEMON="#undef NEED_DAEMON"]
-,
-[DAEMON_OBJS="\${DAEMON_OBJS}" NEED_DAEMON="#define NEED_DAEMON 1"]
-)
-AC_SUBST(DAEMON_OBJS)
-AC_SUBST(NEED_DAEMON)
-
-AC_CHECK_FUNC(strsep,
-[STRSEP_OBJS="" NEED_STRSEP="#undef NEED_STRSEP"]
-,
-[STRSEP_OBJS="\${STRSEP_OBJS}" NEED_STRSEP="#define NEED_STRSEP 1"]
-)
-AC_SUBST(STRSEP_OBJS)
-AC_SUBST(NEED_STRSEP)
-
-AC_CHECK_FUNC(strerror, [NEED_STRERROR="#undef NEED_STRERROR"],
-[NEED_STRERROR="#define NEED_STRERROR 1"])
-AC_SUBST(NEED_STRERROR)
-
-if test -n "$NEED_STRERROR"
-then
-       AC_MSG_CHECKING([for extern char * sys_errlist[]])
-       AC_TRY_LINK([ extern int sys_nerr; extern char *sys_errlist[]; ],
-                   [ const char *p = sys_errlist[0]; ],
-                   AC_MSG_RESULT(yes)
-                   AC_DEFINE(USE_SYSERROR_LIST),
-                   AC_MSG_RESULT(no))
-fi
-
-#
-# flockfile is usually provided by pthreads, but we may want to use it
-# even if compiled with --disable-threads.
-#
-AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
-
-# 
-# Indicate what the final decision was regarding threads.
-#
-AC_MSG_CHECKING(whether to build with threads)
-if $use_threads; then
-       AC_MSG_RESULT(yes)
-else
-       AC_MSG_RESULT(no)
-fi
-
-# 
-# End of pthreads stuff.
-#
-
-#
-# Additional compiler settings.
-#
-MKDEPCC="$CC"
-MKDEPCFLAGS="-M"
-IRIX_DNSSEC_WARNINGS_HACK=""
-
-if test "X$GCC" = "Xyes"; then
-        AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
-        SAVE_CFLAGS=$CFLAGS
-        CFLAGS=-fno-strict-aliasing
-        AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
-        CFLAGS=$SAVE_CFLAGS
-        if test "$FNOSTRICTALIASING" = "yes"; then
-                AC_MSG_RESULT(yes)
-               STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
-        else
-                AC_MSG_RESULT(no)
-               STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
-        fi
-else
-       case $host in
-       *-dec-osf*)
-               CC="$CC -std"
-               CCOPT="$CCOPT -std"
-               MKDEPCC="$CC"
-               ;;
-       *-hp-hpux*)
-               CC="$CC -Ae -z"
-               # The version of the C compiler that constantly warns about
-                # 'const' as well as alignment issues is unfortunately not
-                # able to be discerned via the version of the operating
-                # system, nor does cc have a version flag.
-               case "`$CC +W 123 2>&1`" in
-               *Unknown?option*)
-                       STD_CWARNINGS="+w1"
-                       ;;
-               *)
-                       # Turn off the pointlessly noisy warnings.
-                       STD_CWARNINGS="+w1 +W 474,530,2193,2236"
-                       ;;
-               esac
-               CCOPT="$CCOPT -Ae -z"
-               LIBS="-Wl,+vnocompatwarnings $LIBS"
-MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>&1 | awk '"'"'BEGIN {colon=0; rec="";} { for (i = 0 ; i < NF; i++) { if (colon && a[$i]) continue; if ($i == "\\") continue; if (!colon) { rec =  $i continue; } if ($i == ":") { rec = rec " :" colon = 1 continue; } if (length(rec $i) > 76) { print rec " \\"; rec = "\t" $i; a[$i] = 1; } else { rec = rec " " $i a[$i] = 1; } } } END {print rec}'"'"' >>$TMP'
-               MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
-               ;;
-       *-sgi-irix*)
-               STD_CWARNINGS="-fullwarn -woff 1209"
-               #
-               # Silence more than 250 instances of
-               #   "prototyped function redeclared without prototype"
-               # and 11 instances of
-               #   "variable ... was set but never used"
-               # from lib/dns/sec/openssl.
-               #
-               IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
-               ;;
-       *-solaris*)
-               MKDEPCFLAGS="-xM"
-               ;;
-       *-UnixWare*)
-               CC="$CC -w"
-               ;;
-       esac
-fi
-
-#
-# _GNU_SOURCE is needed to access the fd_bits field of struct fd_set, which
-# is supposed to be opaque.
-#
-case $host in
-       *linux*)
-               STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
-               ;;
-esac
-
-AC_SUBST(MKDEPCC)
-AC_SUBST(MKDEPCFLAGS)
-AC_SUBST(MKDEPPROG)
-AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
-
-#
-# NLS
-#
-AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
-
-#
-# -lxnet buys us one big porting headache...  standards, gotta love 'em.
-#
-# AC_CHECK_LIB(xnet, socket, ,
-#    AC_CHECK_LIB(socket, socket)
-#    AC_CHECK_LIB(nsl, inet_ntoa)
-# )
-#
-# Use this for now, instead:
-#
-case "$host" in
-       mips-sgi-irix*)
-               ;;
-       ia64-hp-hpux11.*)
-               AC_CHECK_LIB(socket, socket)
-               AC_CHECK_LIB(nsl, inet_ntoa)
-               ;;
-       *)
-               AC_CHECK_LIB(d4r, gethostbyname_r)
-               AC_CHECK_LIB(socket, socket)
-               AC_CHECK_LIB(nsl, inet_ntoa)
-               ;;
-esac
-
-#
-# Purify support
-#
-AC_MSG_CHECKING(whether to use purify)
-AC_ARG_WITH(purify,
-       [  --with-purify[=PATH] use Rational purify],
-       use_purify="$withval", use_purify="no")
-
-case "$use_purify" in
-       no)
-               ;;
-       yes)
-               AC_PATH_PROG(purify_path, purify, purify)
-               ;;
-       *)
-               purify_path="$use_purify"
-               ;;
-esac
-
-case "$use_purify" in
-       no)
-               AC_MSG_RESULT(no)
-               PURIFY=""
-               ;;
-       *)
-               if test -f $purify_path || test $purify_path = purify; then
-                       AC_MSG_RESULT($purify_path)
-                       PURIFYFLAGS="`echo $PURIFYOPTIONS`"
-                       PURIFY="$purify_path $PURIFYFLAGS"
-               else
-                       AC_MSG_ERROR([$purify_path not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-purify=PATH
-])
-               fi
-               ;;
-esac
-
-AC_SUBST(PURIFY)
-
-#
-# GNU libtool support
-#
-case $host in
-sunos*)
-    # Just set the maximum command line length for sunos as it otherwise
-    # takes a exceptionally long time to work it out. Required for libtool.
-    lt_cv_sys_max_cmd_len=4096;
-    ;;
-esac
-
-AC_ARG_WITH(libtool,
-           [  --with-libtool   use GNU libtool (following indented options supported)],
-           use_libtool="$withval", use_libtool="no")
-
-case $use_libtool in
-       yes)
-               AM_PROG_LIBTOOL
-               O=lo
-               A=la
-               LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
-               LIBTOOL_MODE_COMPILE='--mode=compile'
-               LIBTOOL_MODE_INSTALL='--mode=install'
-               LIBTOOL_MODE_LINK='--mode=link'
-               ;;
-       *)
-               O=o
-               A=a
-               LIBTOOL=
-               AC_SUBST(LIBTOOL)
-               LIBTOOL_MKDEP_SED=
-               LIBTOOL_MODE_COMPILE=
-               LIBTOOL_MODE_INSTALL=
-               LIBTOOL_MODE_LINK=
-               ;;
-esac
-
-#
-# File name extension for static archive files, for those few places
-# where they are treated differently from dynamic ones.
-#
-SA=a
-
-AC_SUBST(O)
-AC_SUBST(A)
-AC_SUBST(SA)
-AC_SUBST(LIBTOOL_MKDEP_SED)
-AC_SUBST(LIBTOOL_MODE_COMPILE)
-AC_SUBST(LIBTOOL_MODE_INSTALL)
-AC_SUBST(LIBTOOL_MODE_LINK)
-
-#
-# Here begins a very long section to determine the system's networking
-# capabilities.  The order of the tests is signficant.
-#
-
-#
-# IPv6
-#
-AC_ARG_ENABLE(ipv6,
-       [  --enable-ipv6                use IPv6 [default=autodetect]])
-
-case "$enable_ipv6" in
-       yes|''|autodetect)
-               AC_DEFINE(WANT_IPV6)
-               ;;
-       no)
-               ;;
-esac
-
-#
-# We do the IPv6 compilation checking after libtool so that we can put
-# the right suffix on the files.
-#
-AC_MSG_CHECKING(for IPv6 structures)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>],
-[struct sockaddr_in6 sin6; return (0);],
-       [AC_MSG_RESULT(yes)
-        found_ipv6=yes],
-       [AC_MSG_RESULT(no)
-        found_ipv6=no])
-
-#
-# See whether IPv6 support is provided via a Kame add-on.
-# This is done before other IPv6 linking tests to LIBS is properly set.
-#
-AC_MSG_CHECKING(for Kame IPv6 support)
-AC_ARG_WITH(kame,
-       [  --with-kame[=PATH]   use Kame IPv6 [default path /usr/local/v6]],
-       use_kame="$withval", use_kame="no")
-
-case "$use_kame" in
-       no)
-               ;;
-       yes)
-               kame_path=/usr/local/v6
-               ;;
-       *)
-               kame_path="$use_kame"
-               ;;
-esac
-
-case "$use_kame" in
-       no)
-               AC_MSG_RESULT(no)
-               ;;
-       *)
-               if test -f $kame_path/lib/libinet6.a; then
-                       AC_MSG_RESULT($kame_path/lib/libinet6.a)
-                       LIBS="-L$kame_path/lib -linet6 $LIBS"
-               else
-                       AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
-
-Please choose the proper path with the following command:
-
-    configure --with-kame=PATH
-])
-               fi
-               ;;
-esac
-
-#
-# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
-# Including it on Kame-using platforms is very bad, though, because
-# Kame uses #error against direct inclusion.   So include it on only
-# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
-# This is done before the in6_pktinfo check because that's what
-# netinet6/in6.h is needed for.
-#
-changequote({, })
-case "$host" in
-*-bsdi4.[01]*)
-       ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
-       isc_netinet6in6_hack="#include <netinet6/in6.h>"
-       ;;
-*)
-       ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
-       isc_netinet6in6_hack=""
-       ;;
-esac
-changequote([, ])
-
-#
-# This is similar to the netinet6/in6.h issue.
-#
-case "$host" in
-*-UnixWare*)
-       ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
-        ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
-       isc_netinetin6_hack="#include <netinet/in6.h>"
-       ;;
-*)
-       ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
-        ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
-       isc_netinetin6_hack=""
-       ;;
-esac
-
-#
-# Now delve deeper into the suitability of the IPv6 support.
-#
-case "$found_ipv6" in
-       yes)
-               HAS_INET6_STRUCTS="#define HAS_INET6_STRUCTS 1"
-
-               AC_MSG_CHECKING(for in6_addr)
-               AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-],
-[struct in6_addr in6; return (0);],
-               [AC_MSG_RESULT(yes)
-                HAS_IN_ADDR6="#undef HAS_IN_ADDR6"
-                isc_in_addr6_hack=""],
-               [AC_MSG_RESULT(no)
-                HAS_IN_ADDR6="#define HAS_IN_ADDR6 1"
-                isc_in_addr6_hack="#define in6_addr in_addr6"])
-
-               AC_MSG_CHECKING(for in6addr_any)
-               AC_TRY_LINK([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-$isc_in_addr6_hack
-],
-               [struct in6_addr in6; in6 = in6addr_any; return (0);],
-                       [AC_MSG_RESULT(yes)
-                        NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"],
-                       [AC_MSG_RESULT(no)
-                        NEED_IN6ADDR_ANY="#define NEED_IN6ADDR_ANY 1"])
-
-               AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6)
-               AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-],
-               [struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);],
-                       [AC_MSG_RESULT(yes)
-                        result="#define HAVE_SIN6_SCOPE_ID 1"],
-                       [AC_MSG_RESULT(no)
-                        result="#undef HAVE_SIN6_SCOPE_ID"])
-               HAVE_SIN6_SCOPE_ID="$result"
-
-               AC_MSG_CHECKING(for in6_pktinfo)
-               AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-$isc_netinetin6_hack
-$isc_netinet6in6_hack
-],
-               [struct in6_pktinfo xyzzy; return (0);],
-                       [AC_MSG_RESULT(yes)
-                        ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
-                       [AC_MSG_RESULT(no -- disabling runtime ipv6 support)
-                        ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
-               ;;
-       no)
-               HAS_INET6_STRUCTS="#undef HAS_INET6_STRUCTS"
-               NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"
-               ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
-               HAVE_SIN6_SCOPE_ID="#define HAVE_SIN6_SCOPE_ID 1"
-               ISC_IPV6_H="ipv6.h"
-               ISC_IPV6_O="ipv6.$O"
-               ISC_ISCIPV6_O="unix/ipv6.$O"
-               ISC_IPV6_C="ipv6.c"
-               ;;
-esac
-
-AC_MSG_CHECKING(for sockaddr_storage)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-],
-[struct sockaddr_storage xyzzy; return (0);],
-       [AC_MSG_RESULT(yes)
-        HAVE_SOCKADDR_STORAGE="#define HAVE_SOCKADDR_STORAGE 1"],
-       [AC_MSG_RESULT(no)
-        HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE"])
-
-AC_SUBST(HAS_INET6_STRUCTS)
-AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)
-AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)
-AC_SUBST(HAS_IN_ADDR6)
-AC_SUBST(NEED_IN6ADDR_ANY)
-AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
-AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
-AC_SUBST(ISC_IPV6_H)
-AC_SUBST(ISC_IPV6_O)
-AC_SUBST(ISC_ISCIPV6_O)
-AC_SUBST(ISC_IPV6_C)
-AC_SUBST(HAVE_SIN6_SCOPE_ID)
-AC_SUBST(HAVE_SOCKADDR_STORAGE)
-
-#
-# Check for network functions that are often missing.  We do this
-# after the libtool checking, so we can put the right suffix on
-# the files.  It also needs to come after checking for a Kame add-on,
-# which provides some (all?) of the desired functions.
-#
-AC_MSG_CHECKING([for inet_ntop])
-AC_TRY_LINK([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>],
-        [inet_ntop(0, 0, 0, 0); return (0);],
-        [AC_MSG_RESULT(yes)
-        ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
-
-        [AC_MSG_RESULT(no)
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
-        ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"])
-AC_MSG_CHECKING([for inet_pton])
-AC_TRY_LINK([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>],
-        [inet_pton(0, 0, 0); return (0);],
-        [AC_MSG_RESULT(yes)
-        ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
-
-        [AC_MSG_RESULT(no)
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
-        ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"])
-AC_MSG_CHECKING([for inet_aton])
-AC_TRY_LINK([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>],
-        [struct in_addr in; inet_aton(0, &in); return (0);],
-        [AC_MSG_RESULT(yes)
-        ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"],
-
-        [AC_MSG_RESULT(no)
-        ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c"
-        ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"])
-
-AC_SUBST(ISC_PLATFORM_NEEDNTOP)
-AC_SUBST(ISC_PLATFORM_NEEDPTON)
-AC_SUBST(ISC_PLATFORM_NEEDATON)
-
-#
-# Look for a 4.4BSD-style sa_len member in struct sockaddr.
-#
-case "$host" in
-       *-dec-osf*)
-               # Tru64 broke send() by defining it to send_OBSOLETE
-               AC_DEFINE(REENABLE_SEND)
-               # Turn on 4.4BSD style sa_len support.
-               AC_DEFINE(_SOCKADDR_LEN)
-               ;;
-esac
-
-AC_MSG_CHECKING(for sa_len in struct sockaddr)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>],
-[struct sockaddr sa; sa.sa_len = 0; return (0);],
-       [AC_MSG_RESULT(yes)
-       HAVE_SA_LEN="#define HAVE_SA_LEN 1"],
-       [AC_MSG_RESULT(no)
-       HAVE_SA_LEN="#undef HAVE_SA_LEN"])
-AC_SUBST(HAVE_SA_LEN)
-
-# HAVE_MINIMUM_IFREQ
-
-case "$host" in
-       *-bsdi[2345]*)  have_minimum_ifreq=yes;;
-       *-darwin*)      have_minimum_ifreq=yes;;
-       *-freebsd*)     have_minimum_ifreq=yes;;
-       *-lynxos*)      have_minimum_ifreq=yes;;
-       *-netbsd*)      have_minimum_ifreq=yes;;
-       *-next*)        have_minimum_ifreq=yes;;
-       *-openbsd*)     have_minimum_ifreq=yes;;
-       *-rhapsody*)    have_minimum_ifreq=yes;;
-esac
-
-case "$have_minimum_ifreq" in
-       yes)
-               HAVE_MINIMUM_IFREQ="#define HAVE_MINIMUM_IFREQ 1";;
-       no)
-               HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";;
-       *)
-               HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";;
-esac
-AC_SUBST(HAVE_MINIMUM_IFREQ)
-
-# PORT_DIR
-PORT_DIR=port/unknown
-SOLARIS_BITTYPES="#undef NEED_SOLARIS_BITTYPES"
-BSD_COMP="#undef BSD_COMP"
-USE_FIONBIO_IOCTL="#undef USE_FIONBIO_IOCTL"
-PORT_NONBLOCK="#define PORT_NONBLOCK O_NONBLOCK"
-HAVE_MD5="#undef HAVE_MD5"
-USE_POLL="#undef HAVE_POLL"
-SOLARIS2="#undef SOLARIS2"
-case "$host" in
-       *aix3.2*)       PORT_DIR="port/aix32";;
-       *aix4*)         PORT_DIR="port/aix4";;
-       *aix5*)         PORT_DIR="port/aix5";;
-       *aux3*)         PORT_DIR="port/aux3";;
-       *-bsdi2*)       PORT_DIR="port/bsdos2";;
-       *-bsdi*)        PORT_DIR="port/bsdos";;
-       *-cygwin*)
-                       PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY"
-                       PORT_DIR="port/cygwin";;
-       *-darwin*)      PORT_DIR="port/darwin";;
-       *-osf*)         PORT_DIR="port/decunix";;
-       *-freebsd*)     PORT_DIR="port/freebsd";;
-       *-hpux9*)       PORT_DIR="port/hpux9";;
-       *-hpux10*)      PORT_DIR="port/hpux10";;
-       *-hpux11*)      PORT_DIR="port/hpux";;
-       *-irix*)        PORT_DIR="port/irix";;
-       *-linux*)       PORT_DIR="port/linux";;
-       *-lynxos*)      PORT_DIR="port/lynxos";;
-       *-mpe*)         PORT_DIR="port/mpe";;
-       *-netbsd*)      PORT_DIR="port/netbsd";;
-       *-next*)        PORT_DIR="port/next";;
-       *-openbsd*)     PORT_DIR="port/openbsd";;
-       *-qnx*)         PORT_DIR="port/qnx";;
-       *-rhapsody*)    PORT_DIR="port/rhapsody";;
-       *-sunos4*)
-                       AC_DEFINE(NEED_SUN4PROTOS)
-                       PORT_NONBLOCK="#define PORT_NONBLOCK O_NDELAY"
-                       PORT_DIR="port/sunos";;
-       *-solaris2.[[01234]])
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1"
-                       USE_FIONBIO_IOCTL="#define USE_FIONBIO_IOCTL 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2.5)
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2.[[67]])
-                       BSD_COMP="#define BSD_COMP 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-solaris2*)    BSD_COMP="#define BSD_COMP 1"
-                       USE_POLL="#define USE_POLL 1"
-                       HAVE_MD5="#define HAVE_MD5 1"
-                       SOLARIS2="#define SOLARIS2 1"
-                       PORT_DIR="port/solaris";;
-       *-ultrix*)      PORT_DIR="port/ultrix";;
-       *-sco-sysv*uw2.0*)      PORT_DIR="port/unixware20";;
-       *-sco-sysv*uw2.1.2*)    PORT_DIR="port/unixware212";;
-       *-sco-sysv*uw7*)        PORT_DIR="port/unixware7";;
-esac
-
-AC_SUBST(BSD_COMP)
-AC_SUBST(SOLARIS_BITTYPES)
-AC_SUBST(USE_FIONBIO_IOCTL)
-AC_SUBST(PORT_NONBLOCK)
-AC_SUBST(PORT_DIR)
-AC_SUBST(USE_POLL)
-AC_SUBST(HAVE_MD5)
-AC_SUBST(SOLARIS2)
-PORT_INCLUDE=${PORT_DIR}/include
-AC_SUBST(PORT_INCLUDE)
-
-#
-# Look for a 4.4BSD or 4.3BSD struct msghdr
-#
-AC_MSG_CHECKING(for struct msghdr flavor)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>],
-[struct msghdr msg; msg.msg_flags = 0; return (0);],
-       [AC_MSG_RESULT(4.4BSD)
-       ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
-       [AC_MSG_RESULT(4.3BSD)
-       ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
-AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
-
-#
-# Look for in_port_t.
-#
-AC_MSG_CHECKING(for type in_port_t)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <netinet/in.h>],
-[in_port_t port = 25; return (0);],
-       [AC_MSG_RESULT(yes)
-       ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
-        [AC_MSG_RESULT(no)
-       ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
-AC_SUBST(ISC_PLATFORM_NEEDPORTT)
-
-AC_MSG_CHECKING(for struct timespec)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <time.h>],
-[struct timespec ts = { 0, 0 }; return (0);],
-       [AC_MSG_RESULT(yes)
-       ISC_PLATFORM_NEEDTIMESPEC="#undef ISC_PLATFORM_NEEDTIMESPEC"],
-        [AC_MSG_RESULT(no)
-       ISC_PLATFORM_NEEDTIMESPEC="#define ISC_PLATFORM_NEEDTIMESPEC 1"])
-AC_SUBST(ISC_PLATFORM_NEEDTIMESPEC)
-
-#
-# Check for addrinfo
-#
-AC_MSG_CHECKING(for struct addrinfo)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[struct addrinfo a; return (0);],
-       [AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_ADDRINFO)],
-       [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for int sethostent)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[int i = sethostent(0); return(0);],
-       [AC_MSG_RESULT(yes)],
-       [AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for int endhostent)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[int i = endhostent(); return(0);],
-       [AC_MSG_RESULT(yes)
-       ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
-       [AC_MSG_RESULT(no)
-       ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
-AC_SUBST(ISC_LWRES_ENDHOSTENTINT)
-
-AC_MSG_CHECKING(for int setnetent)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[int i = setnetent(0); return(0);],
-       [AC_MSG_RESULT(yes)
-       ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
-       [AC_MSG_RESULT(no)
-       ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
-AC_SUBST(ISC_LWRES_SETNETENTINT)
-
-AC_MSG_CHECKING(for int endnetent)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[int i = endnetent(); return(0);],
-       [AC_MSG_RESULT(yes)
-       ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
-       [AC_MSG_RESULT(no)
-       ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
-AC_SUBST(ISC_LWRES_ENDNETENTINT)
-
-AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))
-AC_TRY_COMPILE([
-#include <netdb.h>
-struct hostent *gethostbyaddr(const void *, size_t, int);],
-[return(0);],
-       [AC_MSG_RESULT(yes)
-       ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
-       [AC_MSG_RESULT(no)
-       ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
-AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)
-
-AC_MSG_CHECKING(for h_errno in netdb.h)
-AC_TRY_COMPILE([
-#include <netdb.h>],
-[h_errno = 1; return(0);],
-       [AC_MSG_RESULT(yes)
-       ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
-       [AC_MSG_RESULT(no)
-       ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
-AC_SUBST(ISC_LWRES_NEEDHERRNO)
-
-AC_CHECK_FUNC(getipnodebyname,
-        [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
-        [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
-AC_CHECK_FUNC(getnameinfo,
-        [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
-        [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
-AC_CHECK_FUNC(getaddrinfo,
-        [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
-       AC_DEFINE(HAVE_GETADDRINFO)],
-        [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
-AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))
-AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
-AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
-AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)
-AC_CHECK_FUNC(pselect,
-             [NEED_PSELECT="#undef NEED_PSELECT"],
-             [NEED_PSELECT="#define NEED_PSELECT"])
-AC_SUBST(NEED_PSELECT)
-AC_CHECK_FUNC(gettimeofday,
-             [NEED_GETTIMEOFDAY="#undef NEED_GETTIMEOFDAY"],
-             [NEED_GETTIMEOFDAY="#define NEED_GETTIMEOFDAY 1"])
-AC_SUBST(NEED_GETTIMEOFDAY)
-AC_CHECK_FUNC(strndup,
-             [HAVE_STRNDUP="#define HAVE_STRNDUP 1"],
-             [HAVE_STRNDUP="#undef HAVE_STRNDUP"])
-AC_SUBST(HAVE_STRNDUP)
-
-#
-# Look for a sysctl call to get the list of network interfaces.
-#
-AC_MSG_CHECKING(for interface list sysctl)
-AC_EGREP_CPP(found_rt_iflist, [
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/socket.h>
-#ifdef NET_RT_IFLIST
-found_rt_iflist
-#endif
-],
-       [AC_MSG_RESULT(yes)
-        AC_DEFINE(HAVE_IFLIST_SYSCTL)],
-       [AC_MSG_RESULT(no)])
-
-#
-# Check for some other useful functions that are not ever-present.
-#
-AC_CHECK_FUNC(strsep,
-       [ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
-       [ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
-
-
-AC_MSG_CHECKING(for char *sprintf)
-AC_TRY_COMPILE([
-#include <stdio.h>
-],
-[ char buf[2]; return(*sprintf(buf,"x"));],
-AC_DEFINE(SPRINTF_CHAR)
-AC_MSG_RESULT(yes)
-,
-AC_MSG_RESULT(no)
-)
-
-AC_MSG_CHECKING(for char *vsprintf)
-case $host in
-*sunos4*) # not decared in any header file.
-AC_DEFINE(VSPRINTF_CHAR)
-AC_MSG_RESULT(yes)
-;;
-*)
-AC_TRY_COMPILE([
-#include <stdio.h>
-],
-[ char buf[2]; return(*vsprintf(buf,"x"));],
-AC_DEFINE(VSPRINTF_CHAR)
-AC_MSG_RESULT(yes)
-,
-AC_MSG_RESULT(no)
-)
-;;
-esac
-
-AC_CHECK_FUNC(vsnprintf,
-       [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"],
-       [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O"
-        ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c"
-        ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"])
-AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
-AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
-
-AC_SUBST(ISC_EXTRA_OBJS)
-AC_SUBST(ISC_EXTRA_SRCS)
-
-# Determine the printf format characters to use when printing
-# values of type isc_int64_t.  We make the assumption that platforms
-# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1)
-# want "%ld" and everyone else can use "%lld".  Win32 uses "%I64d",
-# but that's defined elsewhere since we don't use configure on Win32.
-#
-AC_MSG_CHECKING(printf format modifier for 64-bit integers)
-AC_TRY_RUN([main() { exit(!(sizeof(long long int) == sizeof(long int))); }],
-       [AC_MSG_RESULT(l)
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'],
-       [AC_MSG_RESULT(ll)
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'],
-       [AC_MSG_RESULT(default ll)
-       ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'])
-AC_SUBST(ISC_PLATFORM_QUADFORMAT)
-
-#
-# Security Stuff
-#
-AC_CHECK_FUNC(chroot, AC_DEFINE(HAVE_CHROOT))
-
-#
-# for accept, recvfrom, getpeername etc.
-#
-AC_MSG_CHECKING(for socket length type)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, socklen_t *);
-],[],
-[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T socklen_t"
-AC_MSG_RESULT(socklen_t)]
-,
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, unsigned int *);
-],[],
-[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned int"
-AC_MSG_RESULT(unsigned int)]
-,
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, unsigned long *);
-],[],
-[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned long"
-AC_MSG_RESULT(unsigned long)]
-,
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-int accept(int, struct sockaddr *, long *);
-],[],
-[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T long"
-AC_MSG_RESULT(long)]
-,
-ISC_SOCKLEN_T="#define ISC_SOCKLEN_T int"
-AC_MSG_RESULT(int)
-))))
-AC_SUBST(ISC_SOCKLEN_T)
-
-AC_CHECK_FUNC(getgrouplist,
-AC_TRY_COMPILE(
-[#include <unistd.h>
-int
-getgrouplist(const char *name, int basegid, int *groups, int *ngroups) {
-}
-],
-[return (0);],
-GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, int basegid, int *groups, int *ngroups"
-,
-GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"
-),
-GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"
-AC_DEFINE(NEED_GETGROUPLIST)
-)
-AC_SUBST(GETGROUPLIST_ARGS)
-
-AC_CHECK_FUNC(setgroupent,,AC_DEFINE(NEED_SETGROUPENT))
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(getnetbyaddr_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct netent *
-getnetbyaddr_r(long net, int type, struct netent *result, char *buffer,
-int buflen) {}
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"
-NET_R_BAD="#define NET_R_BAD NULL"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"
-NET_R_OK="#define NET_R_OK nptr"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN struct netent *"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#undef NETENT_DATA"
-],
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getnetbyaddr_r (unsigned long int, int, struct netent *,
-                    char *, size_t, struct netent **, int *);
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"
-NET_R_BAD="#define NET_R_BAD ERANGE"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#define NET_R_SETANSWER 1"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"
-NETENT_DATA="#undef NETENT_DATA"
-],
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#define _OSF_SOURCE
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int getnetbyaddr_r(int, int, struct netent *, struct netent_data *);
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int"
-NETENT_DATA="#define NETENT_DATA 1"
-],
-AC_TRY_COMPILE(
-#undef __USE_MISC
-#define __USE_MISC
-[#include <netdb.h>
-int getnetbyaddr_r (in_addr_t, int, struct netent *, struct netent_data *);
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#define NETENT_DATA 1"
-],
-AC_TRY_COMPILE(
-#undef __USE_MISC
-#define __USE_MISC
-[#include <netdb.h>
-int getnetbyaddr_r (long, int, struct netent *, struct netent_data *);
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"
-NET_R_BAD="#define NET_R_BAD (-1)"
-NET_R_COPY="#define NET_R_COPY ndptr"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#define NETENT_DATA 1"
-],
-AC_TRY_COMPILE(
-#undef __USE_MISC
-#define __USE_MISC
-[#include <netdb.h>
-int getnetbyaddr_r (uint32_t, int, struct netent *,
-                    char *, size_t, struct netent **, int *);
-],
-[return (0)],
-[
-NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"
-NET_R_BAD="#define NET_R_BAD ERANGE"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"
-NET_R_OK="#define NET_R_OK 0"
-NET_R_SETANSWER="#define NET_R_SETANSWER 1"
-NET_R_RETURN="#define NET_R_RETURN int"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"
-NETENT_DATA="#undef NETENT_DATA"
-],
-)
-)
-)
-)
-)
-)
-,
-NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"
-NET_R_BAD="#define NET_R_BAD NULL"
-NET_R_COPY="#define NET_R_COPY buf, buflen"
-NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"
-NET_R_OK="#define NET_R_OK nptr"
-NET_R_SETANSWER="#undef NET_R_SETANSWER"
-NET_R_RETURN="#define NET_R_RETURN struct netent *"
-GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"
-NETENT_DATA="#undef NETENT_DATA"
-)
-esac
-
-case "$host" in
-*dec-osf*) GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int" ;;
-esac
-AC_SUBST(NET_R_ARGS)
-AC_SUBST(NET_R_BAD)
-AC_SUBST(NET_R_COPY)
-AC_SUBST(NET_R_COPY_ARGS)
-AC_SUBST(NET_R_OK)
-AC_SUBST(NET_R_SETANSWER)
-AC_SUBST(NET_R_RETURN)
-AC_SUBST(GETNETBYADDR_ADDR_T)
-AC_SUBST(NETENT_DATA)
-
-AC_CHECK_FUNC(setnetent_r,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void  setnetent_r (int);
-] ,[return (0);],[
-NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"
-NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN void"
-],
-AC_TRY_COMPILE(
-[
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int setnetent_r(int, struct netent_data *);
-] ,[return (0);],[
-NET_R_ENT_ARGS="#define NET_R_ENT_ARGS struct netent_data *ndptr"
-NET_R_SET_RESULT="#define NET_R_SET_RESULT NET_R_OK"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN int"
-],
-)
-)
-,
-NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"
-NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"
-NET_R_SET_RETURN="#define NET_R_SET_RETURN void"
-)
-AC_SUBST(NET_R_ENT_ARGS)
-AC_SUBST(NET_R_SET_RESULT)
-AC_SUBST(NET_R_SET_RETURN)
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(endnetent_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void  endnetent_r (void);
-] ,[return (0);],[
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-],
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int endnetent_r(struct netent_data *);
-] ,[return (0);],[
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) return (x)"
-NET_R_END_RETURN="#define NET_R_END_RETURN int"
-],
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endnetent_r(struct netent_data *);
-] ,[return (0);],[
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-],
-)
-)
-)
-,
-NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"
-NET_R_END_RETURN="#define NET_R_END_RETURN void"
-)
-esac
-AC_SUBST(NET_R_END_RESULT)
-AC_SUBST(NET_R_END_RETURN)
-
-AC_CHECK_FUNC(getgrnam_r,,AC_DEFINE(NEED_GETGRNAM_R))
-AC_CHECK_FUNC(getgrgid_r,,AC_DEFINE(NEED_GETGRGID_R))
-
-AC_CHECK_FUNC(getgrent_r,
-AC_TRY_COMPILE(
-[
-#include <grp.h>
-struct group *getgrent_r(struct group *grp, char *buffer,
-           int buflen) {}
-] ,[return (0);],[
-GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"
-GROUP_R_BAD="#define GROUP_R_BAD NULL"
-GROUP_R_OK="#define GROUP_R_OK gptr"
-GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"
-],
-)
-,
-GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"
-GROUP_R_BAD="#define GROUP_R_BAD NULL"
-GROUP_R_OK="#define GROUP_R_OK gptr"
-GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"
-AC_DEFINE(NEED_GETGRENT_R)
-)
-AC_SUBST(GROUP_R_ARGS)
-AC_SUBST(GROUP_R_BAD)
-AC_SUBST(GROUP_R_OK)
-AC_SUBST(GROUP_R_RETURN)
-
-AC_CHECK_FUNC(endgrent_r,
-,
-GROUP_R_END_RESULT="#define GROUP_R_END_RESULT(x) /*empty*/"
-GROUP_R_END_RETURN="#define GROUP_R_END_RETURN void"
-GROUP_R_ENT_ARGS="#define GROUP_R_ENT_ARGS void"
-AC_DEFINE(NEED_ENDGRENT_R)
-)
-AC_SUBST(GROUP_R_END_RESULT)
-AC_SUBST(GROUP_R_END_RETURN)
-AC_SUBST(GROUP_R_ENT_ARGS)
-
-AC_CHECK_FUNC(setgrent_r,
-,
-GROUP_R_SET_RESULT="#undef GROUP_R_SET_RESULT /*empty*/"
-GROUP_R_SET_RETURN="#define GROUP_R_SET_RETURN void"
-AC_DEFINE(NEED_SETGRENT_R)
-)
-AC_SUBST(GROUP_R_SET_RESULT)
-AC_SUBST(GROUP_R_SET_RETURN)
-
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(gethostbyname_r,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct hostent  *gethostbyname_r
-(const char *name, struct hostent *hp, char *buf, int len, int *h_errnop) {}
-],
-[return (0);],
-[
-HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD NULL"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK hptr"
-HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-]
-,
-AC_TRY_COMPILE([
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int gethostbyname_r(const char *name,
-                          struct hostent *result,
-                          struct hostent_data *hdptr);
-],,[
-HOST_R_ARGS="#define HOST_R_ARGS struct hostent_data *hdptr"
-HOST_R_BAD="#define HOST_R_BAD (-1)"
-HOST_R_COPY="#define HOST_R_COPY hdptr"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS HOST_R_ARGS"
-HOST_R_ERRNO="#undef HOST_R_ERRNO"
-HOST_R_OK="#define HOST_R_OK 0"
-HOST_R_RETURN="#define HOST_R_RETURN int"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#define HOSTENT_DATA 1"
-],
-AC_TRY_COMPILE([
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int gethostbyname_r (const char *,
-                                 struct hostent *,
-                                 char *, size_t,
-                                 struct hostent **,
-                                 int *);
-],,[
-HOST_R_ARGS="#define HOST_R_ARGS char *buf, size_t buflen, struct hostent **answerp, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD ERANGE"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK 0"
-HOST_R_RETURN="#define HOST_R_RETURN int"
-HOST_R_SETANSWER="#define HOST_R_SETANSWER 1"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-],
-)))
-,
-HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"
-HOST_R_BAD="#define HOST_R_BAD NULL"
-HOST_R_COPY="#define HOST_R_COPY buf, buflen"
-HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"
-HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"
-HOST_R_OK="#define HOST_R_OK hptr"
-HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"
-HOST_R_SETANSWER="#undef HOST_R_SETANSWER"
-HOSTENT_DATA="#undef HOSTENT_DATA"
-)
-esac
-AC_SUBST(HOST_R_ARGS)
-AC_SUBST(HOST_R_BAD)
-AC_SUBST(HOST_R_COPY)
-AC_SUBST(HOST_R_COPY_ARGS)
-AC_SUBST(HOST_R_ERRNO)
-AC_SUBST(HOST_R_OK)
-AC_SUBST(HOST_R_RETURN)
-AC_SUBST(HOST_R_SETANSWER)
-AC_SUBST(HOSTENT_DATA)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(endhostent_r,
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endhostent_r(struct hostent_data *buffer);
-], ,
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) return (x)"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN int"
-HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr"
-,
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endhostent_r(struct hostent_data *ht_data);
-],[],[
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x)"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr"
-],
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void endhostent_r(void);
-],[],[
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/"
-],
-)
-)
-)
-,
-HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"
-HOST_R_END_RETURN="#define HOST_R_END_RETURN void"
-HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/"
-)
-esac;
-AC_SUBST(HOST_R_END_RESULT)
-AC_SUBST(HOST_R_END_RETURN)
-AC_SUBST(HOST_R_ENT_ARGS)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(sethostent_r,
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern void sethostent_r(int flag, struct hostent_data *ht_data);],[],
-[HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT /*empty*/"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"],
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-extern int sethostent_r(int flag, struct hostent_data *ht_data);],[],
-[HOST_R_SET_RESULT="#define HOST_R_SET_RESULT 0"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN int"],
-AC_TRY_COMPILE([
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void            sethostent_r (int);],[],
-[HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"],
-)
-)
-)
-,
-HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"
-HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"
-)
-esac
-AC_SUBST(HOST_R_SET_RESULT)
-AC_SUBST(HOST_R_SET_RETURN)
-
-
-AC_MSG_CHECKING(struct passwd element pw_class)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <pwd.h>
-],[struct passwd *pw; pw->pw_class = "";],
-AC_MSG_RESULT(yes)
-AC_DEFINE(HAS_PW_CLASS)
-,
-               AC_MSG_RESULT(no)
-)
-
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <pwd.h>
-void
-setpwent(void) {}
-],
-[return (0);],
-SETPWENT_VOID="#define SETPWENT_VOID 1"
-,
-SETPWENT_VOID="#undef SETPWENT_VOID"
-)
-AC_SUBST(SETPWENT_VOID)
-
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <grp.h>
-void
-setgrent(void) {}
-],
-[return (0);],
-SETGRENT_VOID="#define SETGRENT_VOID 1"
-,
-SETGRENT_VOID="#undef SETGRENT_VOID"
-)
-AC_SUBST(SETGRENT_VOID)
-
-case $host in
-ia64-hp-hpux11.*)
-NGR_R_CONST="#define NGR_R_CONST"
-;;
-*-hp-hpux11.*)
-#
-# HPUX doesn't have a prototype for getnetgrent_r().
-#
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-;;
-
-*)
-AC_CHECK_FUNC(getnetgrent_r,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-int getnetgrent_r(char **m, char **u, char **d, char *b, int l) {}
-]
-,
-[return (0);],
-[
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-int getnetgrent_r(char **m, char **u, char **d, char *b, size_t l) {}
-]
-,
-[return (0);],
-[
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, size_t buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int getnetgrent_r(char **, char **, char **, void **);
-]
-,
-[return (0);],
-[
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS void **buf"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-NGR_R_PRIVATE="#define NGR_R_PRIVATE 1"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int getnetgrent_r(const char **, const char **, const char **, void *);
-]
-,
-[return (0);],
-[
-NGR_R_CONST="#define NGR_R_CONST const"
-NGR_R_ARGS="#define NGR_R_ARGS void *buf"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-NGR_R_PRIVATE="#define NGR_R_PRIVATE 2"
-]
-,
-)
-)
-)
-)
-,
-NGR_R_CONST="#define NGR_R_CONST"
-NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"
-NGR_R_BAD="#define NGR_R_BAD (0)"
-NGR_R_COPY="#define NGR_R_COPY buf, buflen"
-NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"
-NGR_R_OK="#define NGR_R_OK 1"
-NGR_R_RETURN="#define NGR_R_RETURN int"
-)
-esac
-AC_SUBST(NGR_R_CONST)
-AC_SUBST(NGR_R_ARGS)
-AC_SUBST(NGR_R_BAD)
-AC_SUBST(NGR_R_COPY)
-AC_SUBST(NGR_R_COPY_ARGS)
-AC_SUBST(NGR_R_OK)
-AC_SUBST(NGR_R_RETURN)
-AC_SUBST(NGR_R_PRIVATE)
-
-AC_CHECK_FUNC(endnetgrent_r,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void endnetgrent_r(void **ptr);
-]
-,
-[return (0);]
-,
-[
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /* empty */"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void endnetgrent_r(void *ptr);
-]
-,
-[return (0);]
-,
-[
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /* empty */"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS void *buf"
-]
-,
-[
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  return (x)"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN int"
-NGR_R_END_ARGS="#define NGR_R_END_ARGS NGR_R_ARGS"
-]
-)
-)
-,
-NGR_R_END_RESULT="#define NGR_R_END_RESULT(x)  /*empty*/"
-NGR_R_END_RETURN="#define NGR_R_END_RETURN void"
-NGR_R_END_ARGS="#undef NGR_R_END_ARGS /*empty*/"
-AC_DEFINE(NEED_ENDNETGRENT_R)
-)
-AC_SUBST(NGR_R_END_RESULT)
-AC_SUBST(NGR_R_END_RETURN)
-AC_SUBST(NGR_R_END_ARGS)
-
-AC_CHECK_FUNC(setnetgrent_r,
-[
-case "$host" in
-*bsdi*)
-       #
-       # No prototype
-       #
-       NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/"
-       NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-       NGR_R_SET_ARGS="#define NGR_R_SET_ARGS NGR_R_ARGS"
-       NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-       ;;
-*hpux*)
-       #
-       # No prototype
-       #
-       NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-       NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-       NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS /* empty */"
-       NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-       ;;
-*)
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-void setnetgrent_r(void **ptr);
-]
-,
-[return (0);]
-,
-[
-NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /* empty */"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#undef _REEENTRANT
-#define _REEENTRANT
-#include <netdb.h>
-#include <unistd.h>
-extern int setnetgrent_r(char *, void **);
-]
-,
-[return (0);]
-,
-[
-NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-NGR_R_SET_ARGS="#define NGR_R_SET_ARGS void **buf"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST"
-]
-,
-[
-NGR_R_SET_RESULT="#define NGR_R_SET_RESULT NGR_R_OK"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN int"
-NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST const"
-]
-))
-;;
-esac
-]
-,
-NGR_R_SET_RESULT="#undef NGR_R_SET_RESULT /*empty*/"
-NGR_R_SET_RETURN="#define NGR_R_SET_RETURN void"
-NGR_R_SET_ARGS="#undef NGR_R_SET_ARGS"
-NGR_R_SET_CONST="#define NGR_R_SET_CONST const"
-)
-
-AC_SUBST(NGR_R_SET_RESULT)
-AC_SUBST(NGR_R_SET_RETURN)
-AC_SUBST(NGR_R_SET_ARGS)
-AC_SUBST(NGR_R_SET_CONST)
-
-AC_CHECK_FUNC(innetgr_r,,AC_DEFINE(NEED_INNETGR_R))
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(getprotoent_r,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct protoent *getprotoent_r(struct protoent *result,
-                char *buffer, int buflen) {}
-]
-,
-[return (0);]
-,
-[
-PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen"
-PROTO_R_BAD="#define PROTO_R_BAD NULL"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS"
-PROTO_R_OK="#define PROTO_R_OK pptr"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getprotoent_r (struct protoent *, char *, size_t, struct protoent **);
-
-]
-,
-[return (0);]
-,
-[
-PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, size_t buflen, struct protoent **answerp"
-PROTO_R_BAD="#define PROTO_R_BAD ERANGE"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS char *buf, size_t buflen"
-PROTO_R_OK="#define PROTO_R_OK 0"
-PROTO_R_SETANSWER="#define PROTO_R_SETANSWER 1"
-PROTO_R_RETURN="#define PROTO_R_RETURN int"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int getprotoent_r (struct protoent *, struct protoent_data *prot_data);
-
-]
-,
-[return (0);]
-,
-[
-PROTO_R_ARGS="#define PROTO_R_ARGS struct protoent_data *prot_data"
-PROTO_R_BAD="#define PROTO_R_BAD (-1)"
-PROTO_R_COPY="#define PROTO_R_COPY prot_data"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS struct protoent_data *pdptr"
-PROTO_R_OK="#define PROTO_R_OK 0"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN int"
-PROTOENT_DATA="#define PROTOENT_DATA 1"
-]
-,
-)
-)
-)
-,
-PROTO_R_ARGS="#define PROTO_R_ARGS char *buf, int buflen"
-PROTO_R_BAD="#define PROTO_R_BAD NULL"
-PROTO_R_COPY="#define PROTO_R_COPY buf, buflen"
-PROTO_R_COPY_ARGS="#define PROTO_R_COPY_ARGS PROTO_R_ARGS"
-PROTO_R_OK="#define PROTO_R_OK pptr"
-PROTO_R_SETANSWER="#undef PROTO_R_SETANSWER"
-PROTO_R_RETURN="#define PROTO_R_RETURN struct protoent *"
-PROTOENT_DATA="#undef PROTOENT_DATA"
-)
-;;
-esac
-AC_SUBST(PROTO_R_ARGS)
-AC_SUBST(PROTO_R_BAD)
-AC_SUBST(PROTO_R_COPY)
-AC_SUBST(PROTO_R_COPY_ARGS)
-AC_SUBST(PROTO_R_OK)
-AC_SUBST(PROTO_R_SETANSWER)
-AC_SUBST(PROTO_R_RETURN)
-AC_SUBST(PROTOENT_DATA)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(endprotoent_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endprotoent_r(void);
-]
-,,
-[
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS"
-PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endprotoent_r(struct protoent_data *);
-]
-,,
-[
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data"
-PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endprotoent_r(struct protoent_data *);
-]
-,,
-[
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) return(0)"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN int"
-PROTO_R_ENT_ARGS="#define PROTO_R_ENT_ARGS struct protoent_data *proto_data"
-PROTO_R_ENT_UNUSED="#define PROTO_R_ENT_UNUSED UNUSED(proto_data)"
-]
-,
-)
-)
-)
-,
-PROTO_R_END_RESULT="#define PROTO_R_END_RESULT(x) /*empty*/"
-PROTO_R_END_RETURN="#define PROTO_R_END_RETURN void"
-PROTO_R_ENT_ARGS="#undef PROTO_R_ENT_ARGS /*empty*/"
-PROTO_R_ENT_UNUSED="#undef PROTO_R_ENT_UNUSED"
-)
-esac
-AC_SUBST(PROTO_R_END_RESULT)
-AC_SUBST(PROTO_R_END_RETURN)
-AC_SUBST(PROTO_R_ENT_ARGS)
-AC_SUBST(PROTO_R_ENT_UNUSED)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(setprotoent_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void               setprotoent_r __P((int));
-],[],
-PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void"
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int setprotoent_r (int, struct protoent_data *);
-],[],
-PROTO_R_SET_RESULT="#define PROTO_R_SET_RESULT (0)"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN int"
-,
-)
-)
-,
-PROTO_R_SET_RESULT="#undef PROTO_R_SET_RESULT"
-PROTO_R_SET_RETURN="#define PROTO_R_SET_RETURN void"
-)
-esac
-AC_SUBST(PROTO_R_SET_RESULT)
-AC_SUBST(PROTO_R_SET_RETURN)
-
-AC_CHECK_FUNC(getpwent_r,
-AC_TRY_COMPILE(
-[
-#include <sys/types.h>
-#include <pwd.h>
-struct passwd *
-getpwent_r(struct passwd *pwptr, char *buf, int buflen) {}
-]
-,
-[]
-,
-PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen"
-PASS_R_BAD="#define PASS_R_BAD NULL"
-PASS_R_COPY="#define PASS_R_COPY buf, buflen"
-PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS"
-PASS_R_OK="#define PASS_R_OK pwptr"
-PASS_R_RETURN="#define PASS_R_RETURN struct passwd *"
-,
-)
-,
-PASS_R_ARGS="#define PASS_R_ARGS char *buf, int buflen"
-PASS_R_BAD="#define PASS_R_BAD NULL"
-PASS_R_COPY="#define PASS_R_COPY buf, buflen"
-PASS_R_COPY_ARGS="#define PASS_R_COPY_ARGS PASS_R_ARGS"
-PASS_R_OK="#define PASS_R_OK pwptr"
-PASS_R_RETURN="#define PASS_R_RETURN struct passwd *"
-AC_DEFINE(NEED_GETPWENT_R)
-)
-AC_SUBST(PASS_R_ARGS)
-AC_SUBST(PASS_R_BAD)
-AC_SUBST(PASS_R_COPY)
-AC_SUBST(PASS_R_COPY_ARGS)
-AC_SUBST(PASS_R_OK)
-AC_SUBST(PASS_R_RETURN)
-
-AC_CHECK_FUNC(endpwent_r,
-AC_TRY_COMPILE(
-[
-#include <pwd.h>
-void endpwent_r(FILE **pwfp);
-], ,
-PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/"
-PASS_R_END_RETURN="#define PASS_R_END_RETURN void"
-PASS_R_ENT_ARGS="#define PASS_R_ENT_ARGS FILE **pwptr"
-,
-)
-,
-PASS_R_END_RESULT="#define PASS_R_END_RESULT(x) /*empty*/"
-PASS_R_END_RETURN="#define PASS_R_END_RETURN void"
-PASS_R_ENT_ARGS="#undef PASS_R_ENT_ARGS"
-AC_DEFINE(NEED_ENDPWENT_R)
-)
-AC_SUBST(PASS_R_END_RESULT)
-AC_SUBST(PASS_R_END_RETURN)
-AC_SUBST(PASS_R_ENT_ARGS)
-AC_CHECK_FUNC(setpassent_r,,AC_DEFINE(NEED_SETPASSENT_R))
-AC_CHECK_FUNC(setpassent,,AC_DEFINE(NEED_SETPASSENT))
-
-AC_CHECK_FUNC(setpwent_r,
-AC_TRY_COMPILE([
-#include <pwd.h>
-void setpwent_r(FILE **pwfp);
-], ,
-PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /* empty */"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int"
-,
-AC_TRY_COMPILE([
-#include <pwd.h>
-int setpwent_r(FILE **pwfp);
-], ,
-PASS_R_SET_RESULT="#define PASS_R_SET_RESULT 0"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN int"
-,
-)
-)
-,
-PASS_R_SET_RESULT="#undef PASS_R_SET_RESULT /*empty*/"
-PASS_R_SET_RETURN="#define PASS_R_SET_RETURN void"
-AC_DEFINE(NEED_SETPWENT_R)
-)
-AC_SUBST(PASS_R_SET_RESULT)
-AC_SUBST(PASS_R_SET_RETURN)
-
-AC_CHECK_FUNC(getpwnam_r,,AC_DEFINE(NEED_GETPWNAM_R))
-AC_CHECK_FUNC(getpwuid_r,,AC_DEFINE(NEED_GETPWUID_R))
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(getservent_r,
-AC_TRY_COMPILE([
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-struct servent *
-getservent_r(struct servent *result, char *buffer, int buflen) {}
-],[return (0);],
-[
-SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen"
-SERV_R_BAD="#define SERV_R_BAD NULL"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS"
-SERV_R_OK="#define SERV_R_OK sptr"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN struct servent *"
-]
-,
-AC_TRY_COMPILE([
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int
-getservent_r (struct servent *, char *, size_t, struct servent **);
-],[return (0);],
-[
-SERV_R_ARGS="#define SERV_R_ARGS char *buf, size_t buflen, struct servent **answerp"
-SERV_R_BAD="#define SERV_R_BAD ERANGE"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS char *buf, size_t buflen"
-SERV_R_OK="#define SERV_R_OK (0)"
-SERV_R_SETANSWER="#define SERV_R_SETANSWER 1"
-SERV_R_RETURN="#define SERV_R_RETURN int"
-]
-,
-AC_TRY_COMPILE([
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int
-getservent_r (struct servent *, struct servent_data *serv_data);
-],[return (0);],
-[
-SERV_R_ARGS="#define SERV_R_ARGS struct servent_data *serv_data"
-SERV_R_BAD="#define SERV_R_BAD (-1)"
-SERV_R_COPY="#define SERV_R_COPY serv_data"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS struct servent_data *sdptr"
-SERV_R_OK="#define SERV_R_OK (0)"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN int"
-SERVENT_DATA="#define SERVENT_DATA 1"
-]
-,
-)
-)
-)
-,
-SERV_R_ARGS="#define SERV_R_ARGS char *buf, int buflen"
-SERV_R_BAD="#define SERV_R_BAD NULL"
-SERV_R_COPY="#define SERV_R_COPY buf, buflen"
-SERV_R_COPY_ARGS="#define SERV_R_COPY_ARGS SERV_R_ARGS"
-SERV_R_OK="#define SERV_R_OK sptr"
-SERV_R_SETANSWER="#undef SERV_R_SETANSWER"
-SERV_R_RETURN="#define SERV_R_RETURN struct servent *"
-)
-esac
-AC_SUBST(SERV_R_ARGS)
-AC_SUBST(SERV_R_BAD)
-AC_SUBST(SERV_R_COPY)
-AC_SUBST(SERV_R_COPY_ARGS)
-AC_SUBST(SERV_R_OK)
-AC_SUBST(SERV_R_SETANSWER)
-AC_SUBST(SERV_R_RETURN)
-AC_SUBST(SERVENT_DATA)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(endservent_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endservent_r(void);
-]
-,
-,
-[
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/"
-SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void endservent_r(struct servent_data *serv_data);
-]
-,
-,
-[
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data"
-SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int endservent_r(struct servent_data *serv_data);
-]
-,
-,
-[
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) return(x)"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN int "
-SERV_R_ENT_ARGS="#define SERV_R_ENT_ARGS struct servent_data *serv_data"
-SERV_R_ENT_UNUSED="#define SERV_R_ENT_UNUSED UNUSED(serv_data)"
-]
-,
-)
-)
-)
-,
-SERV_R_END_RESULT="#define SERV_R_END_RESULT(x) /*empty*/"
-SERV_R_END_RETURN="#define SERV_R_END_RETURN void "
-SERV_R_ENT_ARGS="#undef SERV_R_ENT_ARGS /*empty*/"
-SERV_R_ENT_UNUSED="#undef SERV_R_ENT_UNUSED /*empty*/"
-)
-esac
-AC_SUBST(SERV_R_END_RESULT)
-AC_SUBST(SERV_R_END_RETURN)
-AC_SUBST(SERV_R_ENT_ARGS)
-AC_SUBST(SERV_R_ENT_UNUSED)
-
-case $host in
-ia64-hp-hpux11.*)
-;;
-*)
-AC_CHECK_FUNC(setservent_r,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-void setservent_r(int);
-]
-,,
-[
-SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <netdb.h>
-int setservent_r(int, struct servent_data *);
-]
-,,
-[
-SERV_R_SET_RESULT="#define SERV_R_SET_RESULT (0)"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN int"
-]
-,
-)
-)
-,
-SERV_R_SET_RESULT="#undef SERV_R_SET_RESULT"
-SERV_R_SET_RETURN="#define SERV_R_SET_RETURN void"
-)
-esac
-AC_SUBST(SERV_R_SET_RESULT)
-AC_SUBST(SERV_R_SET_RETURN)
-
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-int innetgr(const char *netgroup, const char *host, const char *user, const char *domain);
-]
-,,
-[
-INNETGR_ARGS="#undef INNETGR_ARGS"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-int innetgr(char *netgroup, char *host, char *user, char *domain);
-]
-,,
-[
-INNETGR_ARGS="#define INNETGR_ARGS char *netgroup, char *host, char *user, char *domain"
-]
-,
-))
-
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-void setnetgrent(const char *);
-]
-,,
-[
-SETNETGRENT_ARGS="#undef SETNETGRENT_ARGS"
-]
-,
-AC_TRY_COMPILE(
-[
-#undef _REENTRANT
-#define _REENTRANT
-#undef __USE_MISC
-#define __USE_MISC
-#include <unistd.h>
-#include <netdb.h>
-void setnetgrent(char *);
-]
-,,
-[
-SETNETGRENT_ARGS="#define SETNETGRENT_ARGS char *netgroup"
-]
-,
-))
-AC_SUBST(SETNETGRENT_ARGS)
-AC_SUBST(INNETGR_ARGS)
-
-#
-# Random remaining OS-specific issues involving compiler warnings.
-# XXXDCL print messages to indicate some compensation is being done?
-#
-BROKEN_IN6ADDR_INIT_MACROS="#undef BROKEN_IN6ADDR_INIT_MACROS"
-
-case "$host" in
-       *-aix5.1.*)
-               hack_shutup_pthreadmutexinit=yes
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-aix5.[[23]].*)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-bsdi3.1*)
-               hack_shutup_sputaux=yes
-               ;;
-       *-bsdi4.0*)
-               hack_shutup_sigwait=yes
-               hack_shutup_sputaux=yes
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-bsdi4.1*)
-               hack_shutup_stdargcast=yes
-               ;;
-       *-hpux11.11)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-osf5.1|*-osf5.1b)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.8)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.9)
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-       *-solaris2.1[[0-9]])
-               hack_shutup_in6addr_init_macros=yes
-               ;;
-esac
-
-case "$hack_shutup_pthreadmutexinit" in
-       yes)
-               #
-               # Shut up PTHREAD_MUTEX_INITIALIZER unbraced
-               # initializer warnings.
-               #
-               AC_DEFINE(SHUTUP_MUTEX_INITIALIZER)
-               ;;
-esac
-
-case "$hack_shutup_sigwait" in
-       yes)
-               #
-               # Shut up a -Wmissing-prototypes warning for sigwait().
-               #
-               AC_DEFINE(SHUTUP_SIGWAIT)
-               ;;
-esac
-
-case "$hack_shutup_sputaux" in
-       yes)
-               #
-               # Shut up a -Wmissing-prototypes warning from <stdio.h>.
-               #
-               AC_DEFINE(SHUTUP_SPUTAUX)
-               ;;
-esac
-
-case "$hack_shutup_stdargcast" in
-       yes)
-               #
-               # Shut up a -Wcast-qual warning from va_start().
-               #
-               AC_DEFINE(SHUTUP_STDARG_CAST)
-               ;;
-esac
-
-case "$hack_shutup_in6addr_init_macros" in
-       yes)
-               AC_DEFINE(BROKEN_IN6ADDR_INIT_MACROS, 1, [Defined if IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT need to be redefined.] )
-               ;;
-esac
-
-#
-# Substitutions
-#
-AC_SUBST(BIND9_TOP_BUILDDIR)
-BIND9_TOP_BUILDDIR=`pwd`
-
-AC_SUBST_FILE(BIND9_INCLUDES)
-BIND9_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
-
-AC_SUBST_FILE(BIND9_MAKE_RULES)
-BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
-
-. $srcdir/../../version
-BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}"
-AC_SUBST(BIND9_VERSION)
-
-AC_SUBST_FILE(LIBBIND_API)
-LIBBIND_API=$srcdir/api
-
-AC_OUTPUT(
-       make/rules
-       make/mkdep
-       make/includes
-       Makefile
-       bsd/Makefile
-       dst/Makefile
-       include/Makefile
-       inet/Makefile
-       irs/Makefile
-       isc/Makefile
-       nameser/Makefile
-       port_after.h
-       port_before.h
-       resolv/Makefile
-       port/Makefile
-       ${PORT_DIR}/Makefile
-       ${PORT_INCLUDE}/Makefile
-       include/isc/platform.h
-)
-
-# Tell Emacs to edit this file in shell mode.
-# Local Variables:
-# mode: sh
-# End:
diff --git a/lib/bind/dst/.cvsignore b/lib/bind/dst/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/dst/Makefile.in b/lib/bind/dst/Makefile.in
deleted file mode 100644 (file)
index 53f18dc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.10 2008/03/20 23:47:00 tbox Exp $
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-OBJS=  dst_api.@O@ hmac_link.@O@ md5_dgst.@O@ support.@O@
-
-SRCS=  dst_api.c hmac_link.c md5_dgst.c support.c
-
-TARGETS= ${OBJS}
-
-CRYPTFLAGS=     -DCYLINK_DSS -DHMAC_MD5 -DUSE_MD5 -DDNSSAFE
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include ${CRYPTINCL}
-CDEFINES= ${CRYPTFLAGS}
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/dst/dst_api.c b/lib/bind/dst/dst_api.c
deleted file mode 100644 (file)
index 7ff5d13..0000000
+++ /dev/null
@@ -1,1048 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Header: /u0/home/explorer/proj/ISC/git-conversion/cvsroot/bind9/lib/bind/dst/Attic/dst_api.c,v 1.17 2007/09/24 17:18:25 each Exp $";
-#endif
-
-/*
- * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
- *
- * 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 TRUSTED INFORMATION SYSTEMS
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL
- * TRUSTED INFORMATION SYSTEMS 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 THE SOFTWARE.
- */
-/*
- * This file contains the interface between the DST API and the crypto API.
- * This is the only file that needs to be changed if the crypto system is
- * changed.  Exported functions are:
- * void dst_init()      Initialize the toolkit
- * int  dst_check_algorithm()   Function to determines if alg is suppored.
- * int  dst_compare_keys()      Function to compare two keys for equality.
- * int  dst_sign_data()         Incremental signing routine.
- * int  dst_verify_data()       Incremental verify routine.
- * int  dst_generate_key()      Function to generate new KEY
- * DST_KEY *dst_read_key()      Function to retrieve private/public KEY.
- * void dst_write_key()         Function to write out a key.
- * DST_KEY *dst_dnskey_to_key() Function to convert DNS KEY RR to a DST
- *                             KEY structure.
- * int dst_key_to_dnskey()     Function to return a public key in DNS 
- *                             format binary
- * DST_KEY *dst_buffer_to_key() Converst a data in buffer to KEY
- * int *dst_key_to_buffer()    Writes out DST_KEY key matterial in buffer
- * void dst_free_key()         Releases all memory referenced by key structure
- */
-
-#include "port_before.h"
-#include <stdio.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <memory.h>
-#include <ctype.h>
-#include <time.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include "dst_internal.h"
-#include "port_after.h"
-
-/* static variables */
-static int done_init = 0;
-dst_func *dst_t_func[DST_MAX_ALGS];
-const char *key_file_fmt_str = "Private-key-format: v%s\nAlgorithm: %d (%s)\n";
-const char *dst_path = "";
-
-/* internal I/O functions */
-static DST_KEY *dst_s_read_public_key(const char *in_name, 
-                                     const u_int16_t in_id, int in_alg);
-static int dst_s_read_private_key_file(char *name, DST_KEY *pk_key,
-                                      u_int16_t in_id, int in_alg);
-static int dst_s_write_public_key(const DST_KEY *key);
-static int dst_s_write_private_key(const DST_KEY *key);
-
-/* internal function to set up data structure */
-static DST_KEY *dst_s_get_key_struct(const char *name, const int alg,
-                                    const int flags, const int protocol,
-                                    const int bits);
-
-/*%
- *  dst_init
- *     This function initializes the Digital Signature Toolkit.
- *     Right now, it just checks the DSTKEYPATH environment variable.
- *  Parameters
- *     none
- *  Returns
- *     none
- */
-void
-dst_init()
-{
-       char *s;
-       int len;
-
-       if (done_init != 0)
-               return;
-       done_init = 1;
-
-       s = getenv("DSTKEYPATH");
-       len = 0;
-       if (s) {
-               struct stat statbuf;
-
-               len = strlen(s);
-               if (len > PATH_MAX) {
-                       EREPORT(("%s is longer than %d characters, ignoring\n",
-                                s, PATH_MAX));
-               } else if (stat(s, &statbuf) != 0 || !S_ISDIR(statbuf.st_mode)) {
-                       EREPORT(("%s is not a valid directory\n", s));
-               } else {
-                       char *tmp;
-                       tmp = (char *) malloc(len + 2);
-                       memcpy(tmp, s, len + 1);
-                       if (tmp[strlen(tmp) - 1] != '/') {
-                               tmp[strlen(tmp) + 1] = 0;
-                               tmp[strlen(tmp)] = '/';
-                       }
-                       dst_path = tmp;
-               }
-       }
-       memset(dst_t_func, 0, sizeof(dst_t_func));
-       /* first one is selected */
-       dst_hmac_md5_init();
-}
-
-/*%
- *  dst_check_algorithm
- *     This function determines if the crypto system for the specified
- *     algorithm is present.
- *  Parameters
- *     alg     1       KEY_RSA
- *             3       KEY_DSA
- *           157     KEY_HMAC_MD5
- *                   future algorithms TBD and registered with IANA.
- *  Returns
- *     1 - The algorithm is available.
- *     0 - The algorithm is not available.
- */
-int
-dst_check_algorithm(const int alg)
-{
-       return (dst_t_func[alg] != NULL);
-}
-
-/*%
- * dst_s_get_key_struct 
- *     This function allocates key structure and fills in some of the 
- *     fields of the structure. 
- * Parameters: 
- *     name:     the name of the key 
- *     alg:      the algorithm number 
- *     flags:    the dns flags of the key
- *     protocol: the dns protocol of the key
- *     bits:     the size of the key
- * Returns:
- *       NULL if error
- *       valid pointer otherwise
- */
-static DST_KEY *
-dst_s_get_key_struct(const char *name, const int alg, const int flags,
-                    const int protocol, const int bits)
-{
-       DST_KEY *new_key = NULL; 
-
-       if (dst_check_algorithm(alg)) /*%< make sure alg is available */
-               new_key = (DST_KEY *) malloc(sizeof(*new_key));
-       if (new_key == NULL)
-               return (NULL);
-
-       memset(new_key, 0, sizeof(*new_key));
-       new_key->dk_key_name = strdup(name);
-       if (new_key->dk_key_name == NULL) {
-               free(new_key);
-               return (NULL);
-       }
-       new_key->dk_alg = alg;
-       new_key->dk_flags = flags;
-       new_key->dk_proto = protocol;
-       new_key->dk_KEY_struct = NULL;
-       new_key->dk_key_size = bits;
-       new_key->dk_func = dst_t_func[alg];
-       return (new_key);
-}
-
-/*%
- *  dst_compare_keys
- *     Compares two keys for equality.
- *  Parameters
- *     key1, key2      Two keys to be compared.
- *  Returns
- *     0              The keys are equal.
- *     non-zero        The keys are not equal.
- */
-
-int
-dst_compare_keys(const DST_KEY *key1, const DST_KEY *key2)
-{
-       if (key1 == key2)
-               return (0);
-       if (key1 == NULL || key2 == NULL)
-               return (4);
-       if (key1->dk_alg != key2->dk_alg)
-               return (1);
-       if (key1->dk_key_size != key2->dk_key_size)
-               return (2);
-       if (key1->dk_id != key2->dk_id)
-               return (3);
-       return (key1->dk_func->compare(key1, key2));
-}
-
-/*%
- * dst_sign_data
- *     An incremental signing function.  Data is signed in steps.
- *     First the context must be initialized (SIG_MODE_INIT).
- *     Then data is hashed (SIG_MODE_UPDATE).  Finally the signature
- *     itself is created (SIG_MODE_FINAL).  This function can be called
- *     once with INIT, UPDATE and FINAL modes all set, or it can be
- *     called separately with a different mode set for each step.  The
- *     UPDATE step can be repeated.
- * Parameters
- *     mode    A bit mask used to specify operation(s) to be performed.
- *               SIG_MODE_INIT    1   Initialize digest
- *               SIG_MODE_UPDATE        2   Add data to digest
- *               SIG_MODE_FINAL          4   Generate signature
- *                                           from signature
- *               SIG_MODE_ALL (SIG_MODE_INIT,SIG_MODE_UPDATE,SIG_MODE_FINAL
- *     data    Data to be signed.
- *     len     The length in bytes of data to be signed.
- *     in_key  Contains a private key to sign with.
- *               KEY structures should be handled (created, converted,
- *               compared, stored, freed) by the DST.
- *     signature
- *           The location to which the signature will be written.
- *     sig_len Length of the signature field in bytes.
- * Return
- *      0      Successfull INIT or Update operation
- *     &gt;0      success FINAL (sign) operation
- *     &lt;0      failure
- */
-
-int
-dst_sign_data(const int mode, DST_KEY *in_key, void **context, 
-             const u_char *data, const int len,
-             u_char *signature, const int sig_len)
-{
-       DUMP(data, mode, len, "dst_sign_data()");
-
-       if (mode & SIG_MODE_FINAL &&
-           (in_key->dk_KEY_struct == NULL || signature == NULL))
-               return (MISSING_KEY_OR_SIGNATURE);
-
-       if (in_key->dk_func && in_key->dk_func->sign)
-               return (in_key->dk_func->sign(mode, in_key, context, data, len,
-                                             signature, sig_len));
-       return (UNKNOWN_KEYALG);
-}
-
-/*%
- *  dst_verify_data
- *     An incremental verify function.  Data is verified in steps.
- *     First the context must be initialized (SIG_MODE_INIT).
- *     Then data is hashed (SIG_MODE_UPDATE).  Finally the signature
- *     is verified (SIG_MODE_FINAL).  This function can be called
- *     once with INIT, UPDATE and FINAL modes all set, or it can be
- *     called separately with a different mode set for each step.  The
- *     UPDATE step can be repeated.
- *  Parameters
- *     mode    Operations to perform this time.
- *                   SIG_MODE_INIT       1   Initialize digest
- *                   SIG_MODE_UPDATE     2   add data to digest
- *                   SIG_MODE_FINAL      4   verify signature
- *                   SIG_MODE_ALL
- *                       (SIG_MODE_INIT,SIG_MODE_UPDATE,SIG_MODE_FINAL)
- *     data    Data to pass through the hash function.
- *     len      Length of the data in bytes.
- *     in_key      Key for verification.
- *     signature   Location of signature.
- *     sig_len     Length of the signature in bytes.
- *  Returns
- *     0          Verify success
- *     Non-Zero    Verify Failure
- */
-
-int
-dst_verify_data(const int mode, DST_KEY *in_key, void **context, 
-               const u_char *data, const int len,
-               const u_char *signature, const int sig_len)
-{
-       DUMP(data, mode, len, "dst_verify_data()");
-       if (mode & SIG_MODE_FINAL &&
-           (in_key->dk_KEY_struct == NULL || signature == NULL))
-               return (MISSING_KEY_OR_SIGNATURE);
-
-       if (in_key->dk_func == NULL || in_key->dk_func->verify == NULL)
-               return (UNSUPPORTED_KEYALG);
-       return (in_key->dk_func->verify(mode, in_key, context, data, len,
-                                       signature, sig_len));
-}
-
-/*%
- *  dst_read_private_key
- *     Access a private key.  First the list of private keys that have
- *     already been read in is searched, then the key accessed on disk.
- *     If the private key can be found, it is returned.  If the key cannot
- *     be found, a null pointer is returned.  The options specify required
- *     key characteristics.  If the private key requested does not have
- *     these characteristics, it will not be read.
- *  Parameters
- *     in_keyname  The private key name.
- *     in_id       The id of the private key.
- *     options     DST_FORCE_READ  Read from disk - don't use a previously
- *                                   read key.
- *               DST_CAN_SIGN    The key must be useable for signing.
- *               DST_NO_AUTHEN   The key must be useable for authentication.
- *               DST_STANDARD    Return any key 
- *  Returns
- *     NULL    If there is no key found in the current directory or
- *                   this key has not been loaded before.
- *     !NULL       Success - KEY structure returned.
- */
-
-DST_KEY *
-dst_read_key(const char *in_keyname, const u_int16_t in_id, 
-            const int in_alg, const int type)
-{
-       char keyname[PATH_MAX];
-       DST_KEY *dg_key = NULL, *pubkey = NULL;
-
-       if (!dst_check_algorithm(in_alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_read_private_key(): Algorithm %d not suppored\n",
-                        in_alg));
-               return (NULL);
-       }
-       if ((type & (DST_PUBLIC | DST_PRIVATE)) == 0) 
-               return (NULL);
-       if (in_keyname == NULL) {
-               EREPORT(("dst_read_private_key(): Null key name passed in\n"));
-               return (NULL);
-       } else if (strlen(in_keyname) >= sizeof(keyname)) {
-               EREPORT(("dst_read_private_key(): keyname too big\n"));
-               return (NULL);
-       } else 
-               strcpy(keyname, in_keyname);
-
-       /* before I read in the public key, check if it is allowed to sign */
-       if ((pubkey = dst_s_read_public_key(keyname, in_id, in_alg)) == NULL)
-               return (NULL);
-
-       if (type == DST_PUBLIC) 
-               return pubkey; 
-
-       if (!(dg_key = dst_s_get_key_struct(keyname, pubkey->dk_alg,
-                                           pubkey->dk_flags, pubkey->dk_proto,
-                                           0)))
-               return (dg_key);
-       /* Fill in private key and some fields in the general key structure */
-       if (dst_s_read_private_key_file(keyname, dg_key, pubkey->dk_id,
-                                       pubkey->dk_alg) == 0)
-               dg_key = dst_free_key(dg_key);
-
-       (void)dst_free_key(pubkey);
-       return (dg_key);
-}
-
-int 
-dst_write_key(const DST_KEY *key, const int type)
-{
-       int pub = 0, priv = 0;
-
-       if (key == NULL) 
-               return (0);
-       if (!dst_check_algorithm(key->dk_alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_write_key(): Algorithm %d not suppored\n", 
-                        key->dk_alg));
-               return (UNSUPPORTED_KEYALG);
-       }
-       if ((type & (DST_PRIVATE|DST_PUBLIC)) == 0)
-               return (0);
-
-       if (type & DST_PUBLIC) 
-               if ((pub = dst_s_write_public_key(key)) < 0)
-                       return (pub);
-       if (type & DST_PRIVATE)
-               if ((priv = dst_s_write_private_key(key)) < 0)
-                       return (priv);
-       return (priv+pub);
-}
-
-/*%
- *  dst_write_private_key
- *     Write a private key to disk.  The filename will be of the form:
- *     K&lt;key-&gt;dk_name&gt;+&lt;key-&gt;dk_alg+&gt;&lt;key-d&gt;k_id.&gt;&lt;private key suffix&gt;.
- *     If there is already a file with this name, an error is returned.
- *
- *  Parameters
- *     key     A DST managed key structure that contains
- *           all information needed about a key.
- *  Return
- *     &gt;= 0    Correct behavior.  Returns length of encoded key value
- *               written to disk.
- *     &lt;  0    error.
- */
-
-static int
-dst_s_write_private_key(const DST_KEY *key)
-{
-       u_char encoded_block[RAW_KEY_SIZE];
-       char file[PATH_MAX];
-       int len;
-       FILE *fp;
-
-       /* First encode the key into the portable key format */
-       if (key == NULL)
-               return (-1);
-       if (key->dk_KEY_struct == NULL)
-               return (0);     /*%< null key has no private key */
-       if (key->dk_func == NULL || key->dk_func->to_file_fmt == NULL) {
-               EREPORT(("dst_write_private_key(): Unsupported operation %d\n",
-                        key->dk_alg));
-               return (-5);
-       } else if ((len = key->dk_func->to_file_fmt(key, (char *)encoded_block,
-                                            sizeof(encoded_block))) <= 0) {
-               EREPORT(("dst_write_private_key(): Failed encoding private RSA bsafe key %d\n", len));
-               return (-8);
-       }
-       /* Now I can create the file I want to use */
-       dst_s_build_filename(file, key->dk_key_name, key->dk_id, key->dk_alg,
-                            PRIVATE_KEY, PATH_MAX);
-
-       /* Do not overwrite an existing file */
-       if ((fp = dst_s_fopen(file, "w", 0600)) != NULL) {
-               int nn;
-               if ((nn = fwrite(encoded_block, 1, len, fp)) != len) {
-                       EREPORT(("dst_write_private_key(): Write failure on %s %d != %d errno=%d\n",
-                                file, len, nn, errno));
-                       fclose(fp);
-                       return (-5);
-               }
-               fclose(fp);
-       } else {
-               EREPORT(("dst_write_private_key(): Can not create file %s\n"
-                        ,file));
-               return (-6);
-       }
-       memset(encoded_block, 0, len);
-       return (len);
-}
-
-/*%
-*
- *  dst_read_public_key
- *     Read a public key from disk and store in a DST key structure.
- *  Parameters
- *     in_name  K&lt;in_name&gt;&lt;in_id&gt;.&lt;public key suffix&gt; is the
- *                   filename of the key file to be read.
- *  Returns
- *     NULL        If the key does not exist or no name is supplied.
- *     NON-NULL        Initialized key structure if the key exists.
- */
-
-static DST_KEY *
-dst_s_read_public_key(const char *in_name, const u_int16_t in_id, int in_alg)
-{
-       int flags, proto, alg, len, dlen;
-       int c;
-       char name[PATH_MAX], enckey[RAW_KEY_SIZE], *notspace;
-       u_char deckey[RAW_KEY_SIZE];
-       FILE *fp;
-
-       if (in_name == NULL) {
-               EREPORT(("dst_read_public_key(): No key name given\n"));
-               return (NULL);
-       }
-       if (dst_s_build_filename(name, in_name, in_id, in_alg, PUBLIC_KEY,
-                                PATH_MAX) == -1) {
-               EREPORT(("dst_read_public_key(): Cannot make filename from %s, %d, and %s\n",
-                        in_name, in_id, PUBLIC_KEY));
-               return (NULL);
-       }
-       /*
-        * Open the file and read it's formatted contents up to key
-        * File format:
-        *    domain.name [ttl] [IN] KEY  &lt;flags&gt; &lt;protocol&gt; &lt;algorithm&gt; &lt;key&gt;
-        * flags, proto, alg stored as decimal (or hex numbers FIXME).
-        * (FIXME: handle parentheses for line continuation.)
-        */
-       if ((fp = dst_s_fopen(name, "r", 0)) == NULL) {
-               EREPORT(("dst_read_public_key(): Public Key not found %s\n",
-                        name));
-               return (NULL);
-       }
-       /* Skip domain name, which ends at first blank */
-       while ((c = getc(fp)) != EOF)
-               if (isspace(c))
-                       break;
-       /* Skip blank to get to next field */
-       while ((c = getc(fp)) != EOF)
-               if (!isspace(c))
-                       break;
-
-       /* Skip optional TTL -- if initial digit, skip whole word. */
-       if (isdigit(c)) {
-               while ((c = getc(fp)) != EOF)
-                       if (isspace(c))
-                               break;
-               while ((c = getc(fp)) != EOF)
-                       if (!isspace(c))
-                               break;
-       }
-       /* Skip optional "IN" */
-       if (c == 'I' || c == 'i') {
-               while ((c = getc(fp)) != EOF)
-                       if (isspace(c))
-                               break;
-               while ((c = getc(fp)) != EOF)
-                       if (!isspace(c))
-                               break;
-       }
-       /* Locate and skip "KEY" */
-       if (c != 'K' && c != 'k') {
-               EREPORT(("\"KEY\" doesn't appear in file: %s", name));
-               return NULL;
-       }
-       while ((c = getc(fp)) != EOF)
-               if (isspace(c))
-                       break;
-       while ((c = getc(fp)) != EOF)
-               if (!isspace(c))
-                       break;
-       ungetc(c, fp);          /*%< return the charcter to the input field */
-       /* Handle hex!! FIXME.  */
-
-       if (fscanf(fp, "%d %d %d", &flags, &proto, &alg) != 3) {
-               EREPORT(("dst_read_public_key(): Can not read flag/proto/alg field from %s\n"
-                        ,name));
-               return (NULL);
-       }
-       /* read in the key string */
-       fgets(enckey, sizeof(enckey), fp);
-
-       /* If we aren't at end-of-file, something is wrong.  */
-       while ((c = getc(fp)) != EOF)
-               if (!isspace(c))
-                       break;
-       if (!feof(fp)) {
-               EREPORT(("Key too long in file: %s", name));
-               return NULL;
-       }
-       fclose(fp);
-
-       if ((len = strlen(enckey)) <= 0)
-               return (NULL);
-
-       /* discard \n */
-       enckey[--len] = '\0';
-
-       /* remove leading spaces */
-       for (notspace = (char *) enckey; isspace((*notspace)&0xff); len--)
-               notspace++;
-
-       dlen = b64_pton(notspace, deckey, sizeof(deckey));
-       if (dlen < 0) {
-               EREPORT(("dst_read_public_key: bad return from b64_pton = %d",
-                        dlen));
-               return (NULL);
-       }
-       /* store key and info in a key structure that is returned */
-/*     return dst_store_public_key(in_name, alg, proto, 666, flags, deckey,
-                                   dlen);*/
-       return dst_buffer_to_key(in_name, alg, flags, proto, deckey, dlen);
-}
-
-/*%
- *  dst_write_public_key
- *     Write a key to disk in DNS format.
- *  Parameters
- *     key     Pointer to a DST key structure.
- *  Returns
- *     0       Failure
- *     1       Success
- */
-
-static int
-dst_s_write_public_key(const DST_KEY *key)
-{
-       FILE *fp;
-       char filename[PATH_MAX];
-       u_char out_key[RAW_KEY_SIZE];
-       char enc_key[RAW_KEY_SIZE];
-       int len = 0;
-       int mode;
-
-       memset(out_key, 0, sizeof(out_key));
-       if (key == NULL) {
-               EREPORT(("dst_write_public_key(): No key specified \n"));
-               return (0);
-       } else if ((len = dst_key_to_dnskey(key, out_key, sizeof(out_key)))< 0)
-               return (0);
-
-       /* Make the filename */
-       if (dst_s_build_filename(filename, key->dk_key_name, key->dk_id,
-                                key->dk_alg, PUBLIC_KEY, PATH_MAX) == -1) {
-               EREPORT(("dst_write_public_key(): Cannot make filename from %s, %d, and %s\n",
-                        key->dk_key_name, key->dk_id, PUBLIC_KEY));
-               return (0);
-       }
-       /* XXX in general this should be a check for symmetric keys */
-       mode = (key->dk_alg == KEY_HMAC_MD5) ? 0600 : 0644;
-       /* create public key file */
-       if ((fp = dst_s_fopen(filename, "w+", mode)) == NULL) {
-               EREPORT(("DST_write_public_key: open of file:%s failed (errno=%d)\n",
-                        filename, errno));
-               return (0);
-       }
-       /*write out key first base64 the key data */
-       if (key->dk_flags & DST_EXTEND_FLAG)
-               b64_ntop(&out_key[6], len - 6, enc_key, sizeof(enc_key));
-       else
-               b64_ntop(&out_key[4], len - 4, enc_key, sizeof(enc_key));
-       fprintf(fp, "%s IN KEY %d %d %d %s\n",
-               key->dk_key_name,
-               key->dk_flags, key->dk_proto, key->dk_alg, enc_key);
-       fclose(fp);
-       return (1);
-}
-
-/*%
- *  dst_dnskey_to_public_key
- *     This function converts the contents of a DNS KEY RR into a DST
- *     key structure.
- *  Paramters
- *     len      Length of the RDATA of the KEY RR RDATA
- *     rdata    A pointer to the the KEY RR RDATA.
- *     in_name     Key name to be stored in key structure.
- *  Returns
- *     NULL        Failure
- *     NON-NULL        Success.  Pointer to key structure.
- *                     Caller's responsibility to free() it.
- */
-
-DST_KEY *
-dst_dnskey_to_key(const char *in_name, const u_char *rdata, const int len)
-{
-       DST_KEY *key_st;
-       int alg ;
-       int start = DST_KEY_START;
-
-       if (rdata == NULL || len <= DST_KEY_ALG) /*%< no data */
-               return (NULL);
-       alg = (u_int8_t) rdata[DST_KEY_ALG];
-       if (!dst_check_algorithm(alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_dnskey_to_key(): Algorithm %d not suppored\n",
-                        alg));
-               return (NULL);
-       }
-
-       if (in_name == NULL)
-               return (NULL);
-
-       if ((key_st = dst_s_get_key_struct(in_name, alg, 0, 0, 0)) == NULL)
-               return (NULL);
-
-       key_st->dk_id = dst_s_dns_key_id(rdata, len);
-       key_st->dk_flags = dst_s_get_int16(rdata);
-       key_st->dk_proto = (u_int16_t) rdata[DST_KEY_PROT];
-       if (key_st->dk_flags & DST_EXTEND_FLAG) {
-               u_int32_t ext_flags;
-               ext_flags = (u_int32_t) dst_s_get_int16(&rdata[DST_EXT_FLAG]);
-               key_st->dk_flags = key_st->dk_flags | (ext_flags << 16);
-               start += 2;
-       }
-       /*
-        * now point to the begining of the data representing the encoding
-        * of the key
-        */
-       if (key_st->dk_func && key_st->dk_func->from_dns_key) {
-               if (key_st->dk_func->from_dns_key(key_st, &rdata[start],
-                                                 len - start) > 0)
-                       return (key_st);
-       } else
-               EREPORT(("dst_dnskey_to_public_key(): unsuppored alg %d\n",
-                        alg));
-
-       SAFE_FREE(key_st);
-       return (key_st);
-}
-
-/*%
- *  dst_public_key_to_dnskey
- *     Function to encode a public key into DNS KEY wire format 
- *  Parameters
- *     key          Key structure to encode.
- *     out_storage     Location to write the encoded key to.
- *     out_len  Size of the output array.
- *  Returns
- *     <0      Failure
- *     >=0     Number of bytes written to out_storage
- */
-
-int
-dst_key_to_dnskey(const DST_KEY *key, u_char *out_storage,
-                        const int out_len)
-{
-       u_int16_t val;
-       int loc = 0;
-       int enc_len = 0;
-       if (key == NULL)
-               return (-1);
-
-       if (!dst_check_algorithm(key->dk_alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_key_to_dnskey(): Algorithm %d not suppored\n",
-                        key->dk_alg));
-               return (UNSUPPORTED_KEYALG);
-       }
-       memset(out_storage, 0, out_len);
-       val = (u_int16_t)(key->dk_flags & 0xffff);
-       dst_s_put_int16(out_storage, val);
-       loc += 2;
-
-       out_storage[loc++] = (u_char) key->dk_proto;
-       out_storage[loc++] = (u_char) key->dk_alg;
-
-       if (key->dk_flags > 0xffff) {   /*%< Extended flags */
-               val = (u_int16_t)((key->dk_flags >> 16) & 0xffff);
-               dst_s_put_int16(&out_storage[loc], val);
-               loc += 2;
-       }
-       if (key->dk_KEY_struct == NULL)
-               return (loc);
-       if (key->dk_func && key->dk_func->to_dns_key) {
-               enc_len = key->dk_func->to_dns_key(key,
-                                                (u_char *) &out_storage[loc],
-                                                  out_len - loc);
-               if (enc_len > 0)
-                       return (enc_len + loc);
-               else
-                       return (-1);
-       } else
-               EREPORT(("dst_key_to_dnskey(): Unsupported ALG %d\n",
-                        key->dk_alg));
-       return (-1);
-}
-
-/*%
- *  dst_buffer_to_key
- *     Function to encode a string of raw data into a DST key
- *  Parameters
- *     alg             The algorithm (HMAC only)
- *     key             A pointer to the data
- *     keylen          The length of the data
- *  Returns
- *     NULL        an error occurred
- *     NON-NULL        the DST key
- */
-DST_KEY *
-dst_buffer_to_key(const char *key_name,                /*!< name of the key  */
-                 const int alg,                /*!< algorithm  */
-                 const int flags,              /*!< dns flags  */
-                 const int protocol,           /*!< dns protocol  */
-                 const u_char *key_buf,        /*!< key in dns wire fmt  */
-                 const int key_len)            /*!< size of key  */
-{
-       
-       DST_KEY *dkey = NULL; 
-       int dnslen;
-       u_char dns[2048];
-
-       if (!dst_check_algorithm(alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_buffer_to_key(): Algorithm %d not suppored\n", alg));
-               return (NULL);
-       }
-
-       dkey = dst_s_get_key_struct(key_name, alg, flags, protocol, -1);
-
-       if (dkey == NULL || dkey->dk_func == NULL ||
-           dkey->dk_func->from_dns_key == NULL) 
-               return (dst_free_key(dkey));
-
-       if (dkey->dk_func->from_dns_key(dkey, key_buf, key_len) < 0) {
-               EREPORT(("dst_buffer_to_key(): dst_buffer_to_hmac failed\n"));
-               return (dst_free_key(dkey));
-       }
-
-       dnslen = dst_key_to_dnskey(dkey, dns, sizeof(dns));
-       dkey->dk_id = dst_s_dns_key_id(dns, dnslen);
-       return (dkey);
-}
-
-int 
-dst_key_to_buffer(DST_KEY *key, u_char *out_buff, int buf_len)
-{
-       int len;
-  /* this function will extrac the secret of HMAC into a buffer */
-       if (key == NULL) 
-               return (0);
-       if (key->dk_func != NULL && key->dk_func->to_dns_key != NULL) {
-               len = key->dk_func->to_dns_key(key, out_buff, buf_len);
-               if (len < 0)
-                       return (0);
-               return (len);
-       }
-       return (0);
-}
-
-/*%
- * dst_s_read_private_key_file
- *     Function reads in private key from a file.
- *     Fills out the KEY structure.
- * Parameters
- *     name    Name of the key to be read.
- *     pk_key  Structure that the key is returned in.
- *     in_id   Key identifier (tag)
- * Return
- *     1 if everthing works
- *     0 if there is any problem
- */
-
-static int
-dst_s_read_private_key_file(char *name, DST_KEY *pk_key, u_int16_t in_id,
-                           int in_alg)
-{
-       int cnt, alg, len, major, minor, file_major, file_minor;
-       int ret, id;
-       char filename[PATH_MAX];
-       u_char in_buff[RAW_KEY_SIZE], *p;
-       FILE *fp;
-       int dnslen;
-       u_char dns[2048];
-
-       if (name == NULL || pk_key == NULL) {
-               EREPORT(("dst_read_private_key_file(): No key name given\n"));
-               return (0);
-       }
-       /* Make the filename */
-       if (dst_s_build_filename(filename, name, in_id, in_alg, PRIVATE_KEY,
-                                PATH_MAX) == -1) {
-               EREPORT(("dst_read_private_key(): Cannot make filename from %s, %d, and %s\n",
-                        name, in_id, PRIVATE_KEY));
-               return (0);
-       }
-       /* first check if we can find the key file */
-       if ((fp = dst_s_fopen(filename, "r", 0)) == NULL) {
-               EREPORT(("dst_s_read_private_key_file: Could not open file %s in directory %s\n",
-                        filename, dst_path[0] ? dst_path :
-                        (char *) getcwd(NULL, PATH_MAX - 1)));
-               return (0);
-       }
-       /* now read the header info from the file */
-       if ((cnt = fread(in_buff, 1, sizeof(in_buff), fp)) < 5) {
-               fclose(fp);
-               EREPORT(("dst_s_read_private_key_file: error reading file %s (empty file)\n",
-                        filename));
-               return (0);
-       }
-       /* decrypt key */
-       fclose(fp);
-       if (memcmp(in_buff, "Private-key-format: v", 20) != 0)
-               goto fail;
-       len = cnt;
-       p = in_buff;
-
-       if (!dst_s_verify_str((const char **) (void *)&p,
-                              "Private-key-format: v")) {
-               EREPORT(("dst_s_read_private_key_file(): Not a Key file/Decrypt failed %s\n", name));
-               goto fail;
-       }
-       /* read in file format */
-       sscanf((char *)p, "%d.%d", &file_major, &file_minor);
-       sscanf(KEY_FILE_FORMAT, "%d.%d", &major, &minor);
-       if (file_major < 1) {
-               EREPORT(("dst_s_read_private_key_file(): Unknown keyfile %d.%d version for %s\n",
-                        file_major, file_minor, name));
-               goto fail;
-       } else if (file_major > major || file_minor > minor)
-               EREPORT((
-                               "dst_s_read_private_key_file(): Keyfile %s version higher than mine %d.%d MAY FAIL\n",
-                               name, file_major, file_minor));
-
-       while (*p++ != '\n') ;  /*%< skip to end of line */
-
-       if (!dst_s_verify_str((const char **) (void *)&p, "Algorithm: "))
-               goto fail;
-
-       if (sscanf((char *)p, "%d", &alg) != 1)
-               goto fail;
-       while (*p++ != '\n') ;  /*%< skip to end of line */
-
-       if (pk_key->dk_key_name && !strcmp(pk_key->dk_key_name, name))
-               SAFE_FREE2(pk_key->dk_key_name, strlen(pk_key->dk_key_name));
-       pk_key->dk_key_name = (char *) strdup(name);
-
-       /* allocate and fill in key structure */
-       if (pk_key->dk_func == NULL || pk_key->dk_func->from_file_fmt == NULL)
-               goto fail;
-
-       ret = pk_key->dk_func->from_file_fmt(pk_key, (char *)p, &in_buff[len] - p);
-       if (ret < 0)
-               goto fail;
-
-       dnslen = dst_key_to_dnskey(pk_key, dns, sizeof(dns));
-       id = dst_s_dns_key_id(dns, dnslen);
-
-       /* Make sure the actual key tag matches the input tag used in the filename
-        */
-       if (id != in_id) {
-               EREPORT(("dst_s_read_private_key_file(): actual tag of key read %d != input tag used to build filename %d.\n", id, in_id));
-               goto fail;
-       }
-       pk_key->dk_id = (u_int16_t) id;
-       pk_key->dk_alg = alg;
-       memset(in_buff, 0, cnt);
-       return (1);
-
- fail:
-       memset(in_buff, 0, cnt);
-       return (0);
-}
-
-/*%
- *     Generate and store a public/private keypair.
- *     Keys will be stored in formatted files.
- *
- *  Parameters
- &
- *\par name    Name of the new key.  Used to create key files
- *\li            K&lt;name&gt;+&lt;alg&gt;+&lt;id&gt;.public and K&lt;name&gt;+&lt;alg&gt;+&lt;id&gt;.private.
- *\par bits    Size of the new key in bits.
- *\par exp     What exponent to use:
- *\li            0        use exponent 3
- *\li            non-zero    use Fermant4
- *\par flags   The default value of the DNS Key flags.
- *\li            The DNS Key RR Flag field is defined in RFC2065,
- *               section 3.3.  The field has 16 bits.
- *\par protocol
- *\li        Default value of the DNS Key protocol field.
- *\li            The DNS Key protocol field is defined in RFC2065,
- *               section 3.4.  The field has 8 bits.
- *\par alg     What algorithm to use.  Currently defined:
- *\li            KEY_RSA       1
- *\li            KEY_DSA       3
- *\li            KEY_HMAC    157
- *\par out_id The key tag is returned.
- *
- *  Return
- *\li  NULL            Failure
- *\li  non-NULL        the generated key pair
- *                     Caller frees the result, and its dk_name pointer.
- */
-DST_KEY *
-dst_generate_key(const char *name, const int bits, const int exp,
-                const int flags, const int protocol, const int alg)
-{
-       DST_KEY *new_key = NULL;
-       int dnslen;
-       u_char dns[2048];
-
-       if (name == NULL)
-               return (NULL);
-
-       if (!dst_check_algorithm(alg)) { /*%< make sure alg is available */
-               EREPORT(("dst_generate_key(): Algorithm %d not suppored\n", alg));
-               return (NULL);
-       }
-
-       new_key = dst_s_get_key_struct(name, alg, flags, protocol, bits);
-       if (new_key == NULL)
-               return (NULL);
-       if (bits == 0) /*%< null key we are done */
-               return (new_key);
-       if (new_key->dk_func == NULL || new_key->dk_func->generate == NULL) {
-               EREPORT(("dst_generate_key_pair():Unsupported algorithm %d\n",
-                        alg));
-               return (dst_free_key(new_key));
-       }
-       if (new_key->dk_func->generate(new_key, exp) <= 0) {
-               EREPORT(("dst_generate_key_pair(): Key generation failure %s %d %d %d\n",
-                        new_key->dk_key_name, new_key->dk_alg,
-                        new_key->dk_key_size, exp));
-               return (dst_free_key(new_key));
-       }
-
-       dnslen = dst_key_to_dnskey(new_key, dns, sizeof(dns));
-       if (dnslen != UNSUPPORTED_KEYALG)
-               new_key->dk_id = dst_s_dns_key_id(dns, dnslen);
-       else
-               new_key->dk_id = 0;
-
-       return (new_key);
-}
-
-/*%
- *     Release all data structures pointed to by a key structure.
- *
- *  Parameters
- *\li  f_key   Key structure to be freed.
- */
-
-DST_KEY *
-dst_free_key(DST_KEY *f_key)
-{
-
-       if (f_key == NULL)
-               return (f_key);
-       if (f_key->dk_func && f_key->dk_func->destroy)
-               f_key->dk_KEY_struct =
-                       f_key->dk_func->destroy(f_key->dk_KEY_struct);
-       else {
-               EREPORT(("dst_free_key(): Unknown key alg %d\n",
-                        f_key->dk_alg));
-       }
-       if (f_key->dk_KEY_struct) {
-               free(f_key->dk_KEY_struct);
-               f_key->dk_KEY_struct = NULL;
-       }
-       if (f_key->dk_key_name)
-               SAFE_FREE(f_key->dk_key_name);
-       SAFE_FREE(f_key);
-       return (NULL);
-}
-
-/*%
- *     Return the maximim size of signature from the key specified in bytes
- *
- * Parameters
- *\li      key 
- *
- * Returns
- *  \li   bytes
- */
-int
-dst_sig_size(DST_KEY *key) {
-       switch (key->dk_alg) {
-           case KEY_HMAC_MD5:
-               return (16);
-           case KEY_HMAC_SHA1:
-               return (20);
-           case KEY_RSA:
-               return (key->dk_key_size + 7) / 8;
-           case KEY_DSA:
-               return (40);
-           default:
-               EREPORT(("dst_sig_size(): Unknown key alg %d\n", key->dk_alg));
-               return -1;
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/dst/dst_internal.h b/lib/bind/dst/dst_internal.h
deleted file mode 100644 (file)
index e9bc6fc..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-#ifndef DST_INTERNAL_H
-#define DST_INTERNAL_H
-
-/*
- * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
- *
- * 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 TRUSTED INFORMATION SYSTEMS
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL
- * TRUSTED INFORMATION SYSTEMS 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 THE SOFTWARE.
- */
-#include <limits.h>
-#include <sys/param.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#else
-# include <sys/types.h>
-#endif
-
-#ifndef PATH_MAX
-# ifdef POSIX_PATH_MAX
-#  define PATH_MAX POSIX_PATH_MAX
-# else
-#  define PATH_MAX 255 /*%< this is the value of POSIX_PATH_MAX */
-# endif
-#endif 
-
-typedef struct dst_key {
-       char    *dk_key_name;   /*%< name of the key */
-       int     dk_key_size;    /*%< this is the size of the key in bits */
-       int     dk_proto;       /*%< what protocols this key can be used for */
-       int     dk_alg;         /*%< algorithm number from key record */
-       u_int32_t dk_flags;     /*%< and the flags of the public key */
-       u_int16_t dk_id;        /*%< identifier of the key */
-       void    *dk_KEY_struct; /*%< pointer to key in crypto pkg fmt */
-       struct dst_func *dk_func; /*%< point to cryptto pgk specific function table */
-} DST_KEY;
-#define HAS_DST_KEY 
-
-#include <isc/dst.h>
-/* 
- * define what crypto systems are supported for RSA, 
- * BSAFE is prefered over RSAREF; only one can be set at any time
- */
-#if defined(BSAFE) && defined(RSAREF)
-# error "Cannot have both BSAFE and RSAREF defined"
-#endif
-
-/* Declare dst_lib specific constants */
-#define KEY_FILE_FORMAT "1.2"
-
-/* suffixes for key file names */
-#define PRIVATE_KEY            "private"
-#define PUBLIC_KEY             "key"
-
-/* error handling */
-#ifdef REPORT_ERRORS
-#define EREPORT(str)           printf str
-#else
-#define EREPORT(str)           (void)0
-#endif
-
-/* use our own special macro to FRRE memory */
-
-#ifndef SAFE_FREE
-#define SAFE_FREE(a) \
-do{if(a != NULL){memset(a,0, sizeof(*a)); free(a); a=NULL;}} while (0)
-#define SAFE_FREE2(a,s) if (a != NULL && (long)s > 0){memset(a,0, s);free(a); a=NULL;}
-#endif
-
-typedef struct dst_func {
-       int (*sign)(const int mode, DST_KEY *key, void **context,
-                    const u_int8_t *data, const int len,
-                    u_int8_t *signature, const int sig_len);
-       int (*verify)(const int mode, DST_KEY *key, void **context,
-                      const u_int8_t *data, const int len,
-                      const u_int8_t *signature, const int sig_len);
-       int (*compare)(const DST_KEY *key1, const DST_KEY *key2);
-       int (*generate)(DST_KEY *key, int parms);
-       void *(*destroy)(void *key);
-       /* conversion functions */
-       int (*to_dns_key)(const DST_KEY *key, u_int8_t *out,
-                          const int out_len);
-       int (*from_dns_key)(DST_KEY *key, const u_int8_t *str,
-                            const int str_len);
-       int (*to_file_fmt)(const DST_KEY *key, char *out,
-                           const int out_len);
-       int (*from_file_fmt)(DST_KEY *key, const char *out,
-                             const int out_len);
-
-} dst_func;
-
-extern dst_func *dst_t_func[DST_MAX_ALGS];
-extern const char *key_file_fmt_str;
-extern const char *dst_path;
-
-#ifndef DST_HASH_SIZE
-#define DST_HASH_SIZE 20       /*%< RIPEMD160 and SHA-1 are 20 bytes MD5 is 16 */
-#endif
-
-int dst_bsafe_init(void);
-
-int dst_rsaref_init(void);
-
-int dst_hmac_md5_init(void);
-
-int dst_cylink_init(void);
-
-int dst_eay_dss_init(void);
-
-/* from higher level support routines */
-int       dst_s_calculate_bits( const u_int8_t *str, const int max_bits); 
-int       dst_s_verify_str( const char **buf, const char *str);
-
-
-/* conversion between dns names and key file names */
-size_t    dst_s_filename_length( const char *name, const char *suffix); 
-int       dst_s_build_filename(  char *filename, const char *name, 
-                                u_int16_t id, int alg, const char *suffix, 
-                                size_t filename_length);
-
-FILE      *dst_s_fopen (const char *filename, const char *mode, int perm);
-
-/*%
- * read and write network byte order into u_int?_t  
- *  all of these should be retired
- */
-u_int16_t dst_s_get_int16( const u_int8_t *buf);
-void      dst_s_put_int16( u_int8_t *buf, const u_int16_t val);
-
-u_int32_t dst_s_get_int32( const u_int8_t *buf);
-void      dst_s_put_int32( u_int8_t *buf, const u_int32_t val);
-
-#ifdef DUMP
-# undef DUMP
-# define DUMP(a,b,c,d) dst_s_dump(a,b,c,d)
-#else
-# define DUMP(a,b,c,d)
-#endif
-void
-dst_s_dump(const int mode, const u_char *data, const int size,
-            const char *msg);
-
-
-
-#endif /* DST_INTERNAL_H */
-/*! \file */
diff --git a/lib/bind/dst/hmac_link.c b/lib/bind/dst/hmac_link.c
deleted file mode 100644 (file)
index 23e4bb6..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-#ifdef HMAC_MD5
-#ifndef LINT
-static const char rcsid[] = "$Header: /u0/home/explorer/proj/ISC/git-conversion/cvsroot/bind9/lib/bind/dst/Attic/hmac_link.c,v 1.8 2007/09/24 17:18:25 each Exp $";
-#endif
-/*
- * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
- *
- * 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 TRUSTED INFORMATION SYSTEMS
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL
- * TRUSTED INFORMATION SYSTEMS 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 THE SOFTWARE.
- */
-
-/*%
- * This file contains an implementation of the HMAC-MD5 algorithm.
- */
-#include "port_before.h"
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <memory.h>
-#include <sys/param.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include "dst_internal.h"
-
-#ifdef USE_MD5
-# ifndef HAVE_MD5
-#  include "md5.h"
-# else
-#  ifdef SOLARIS2
-#   include <sys/md5.h>
-#  endif
-# endif
-# ifndef _MD5_H_
-#  define _MD5_H_ 1    /*%< make sure we do not include rsaref md5.h file */
-# endif
-#endif
-
-#include "port_after.h"
-
-
-#define HMAC_LEN       64
-#define HMAC_IPAD      0x36
-#define HMAC_OPAD      0x5c
-#define MD5_LEN                16
-
-
-typedef struct hmackey {
-       u_char hk_ipad[64], hk_opad[64];
-} HMAC_Key;
-
-
-/************************************************************************** 
- * dst_hmac_md5_sign
- *     Call HMAC signing functions to sign a block of data.
- *     There are three steps to signing, INIT (initialize structures), 
- *     UPDATE (hash (more) data), FINAL (generate a signature).  This
- *     routine performs one or more of these steps.
- * Parameters
- *     mode    SIG_MODE_INIT, SIG_MODE_UPDATE and/or SIG_MODE_FINAL.
- *     priv_key    key to use for signing.
- *     context   the context to be used in this digest
- *     data    data to be signed.
- *     len      length in bytes of data.
- *     signature   location to store signature.
- *     sig_len     size of the signature location
- * returns 
- *     N  Success on SIG_MODE_FINAL = returns signature length in bytes
- *     0  Success on SIG_MODE_INIT  and UPDATE
- *      <0  Failure
- */
-
-static int
-dst_hmac_md5_sign(const int mode, DST_KEY *d_key, void **context, 
-                 const u_char *data, const int len, 
-                 u_char *signature, const int sig_len)
-{
-       HMAC_Key *key;
-       int sign_len = 0;
-       MD5_CTX *ctx = NULL;
-
-       if (d_key == NULL || d_key->dk_KEY_struct == NULL)
-               return (-1);
-
-       if (mode & SIG_MODE_INIT) 
-               ctx = (MD5_CTX *) malloc(sizeof(*ctx));
-       else if (context)
-               ctx = (MD5_CTX *) *context;
-       if (ctx == NULL) 
-               return (-1);
-
-       key = (HMAC_Key *) d_key->dk_KEY_struct;
-
-       if (mode & SIG_MODE_INIT) {
-               MD5Init(ctx);
-               MD5Update(ctx, key->hk_ipad, HMAC_LEN);
-       }
-
-       if ((mode & SIG_MODE_UPDATE) && (data && len > 0))
-               MD5Update(ctx, data, len);
-
-       if (mode & SIG_MODE_FINAL) {
-               if (signature == NULL || sig_len < MD5_LEN)
-                       return (SIGN_FINAL_FAILURE);
-               MD5Final(signature, ctx);
-
-               /* perform outer MD5 */
-               MD5Init(ctx);
-               MD5Update(ctx, key->hk_opad, HMAC_LEN);
-               MD5Update(ctx, signature, MD5_LEN);
-               MD5Final(signature, ctx);
-               sign_len = MD5_LEN;
-               SAFE_FREE(ctx);
-       }
-       else { 
-               if (context == NULL) 
-                       return (-1);
-               *context = (void *) ctx;
-       }               
-       return (sign_len);
-}
-
-
-/************************************************************************** 
- * dst_hmac_md5_verify() 
- *     Calls HMAC verification routines.  There are three steps to 
- *     verification, INIT (initialize structures), UPDATE (hash (more) data), 
- *     FINAL (generate a signature).  This routine performs one or more of 
- *     these steps.
- * Parameters
- *     mode    SIG_MODE_INIT, SIG_MODE_UPDATE and/or SIG_MODE_FINAL.
- *     dkey    key to use for verify.
- *     data    data signed.
- *     len      length in bytes of data.
- *     signature   signature.
- *     sig_len     length in bytes of signature.
- * returns 
- *     0  Success 
- *    <0  Failure
- */
-
-static int
-dst_hmac_md5_verify(const int mode, DST_KEY *d_key, void **context,
-               const u_char *data, const int len,
-               const u_char *signature, const int sig_len)
-{
-       HMAC_Key *key;
-       MD5_CTX *ctx = NULL;
-
-       if (d_key == NULL || d_key->dk_KEY_struct == NULL)
-               return (-1);
-
-       if (mode & SIG_MODE_INIT) 
-               ctx = (MD5_CTX *) malloc(sizeof(*ctx));
-       else if (context)
-               ctx = (MD5_CTX *) *context;
-       if (ctx == NULL) 
-               return (-1);
-
-       key = (HMAC_Key *) d_key->dk_KEY_struct;
-       if (mode & SIG_MODE_INIT) {
-               MD5Init(ctx);
-               MD5Update(ctx, key->hk_ipad, HMAC_LEN);
-       }
-       if ((mode & SIG_MODE_UPDATE) && (data && len > 0))
-               MD5Update(ctx, data, len);
-
-       if (mode & SIG_MODE_FINAL) {
-               u_char digest[MD5_LEN];
-               if (signature == NULL || key == NULL || sig_len != MD5_LEN)
-                       return (VERIFY_FINAL_FAILURE);
-               MD5Final(digest, ctx);
-
-               /* perform outer MD5 */
-               MD5Init(ctx);
-               MD5Update(ctx, key->hk_opad, HMAC_LEN);
-               MD5Update(ctx, digest, MD5_LEN);
-               MD5Final(digest, ctx);
-
-               SAFE_FREE(ctx);
-               if (memcmp(digest, signature, MD5_LEN) != 0)
-                       return (VERIFY_FINAL_FAILURE);
-       }
-       else { 
-               if (context == NULL) 
-                       return (-1);
-               *context = (void *) ctx;
-       }               
-       return (0);
-}
-
-
-/************************************************************************** 
- * dst_buffer_to_hmac_md5
- *     Converts key from raw data to an HMAC Key
- *     This function gets in a pointer to the data
- * Parameters
- *     hkey    the HMAC key to be filled in
- *     key     the key in raw format
- *     keylen  the length of the key
- * Return
- *     0       Success
- *     <0      Failure
- */
-static int
-dst_buffer_to_hmac_md5(DST_KEY *dkey, const u_char *key, const int keylen)
-{
-       int i;
-       HMAC_Key *hkey = NULL;
-       MD5_CTX ctx;
-       int local_keylen = keylen;
-       u_char tk[MD5_LEN];
-
-       if (dkey == NULL || key == NULL || keylen < 0)
-               return (-1);
-
-       if ((hkey = (HMAC_Key *) malloc(sizeof(HMAC_Key))) == NULL)
-                 return (-2);
-
-       memset(hkey->hk_ipad, 0, sizeof(hkey->hk_ipad));
-       memset(hkey->hk_opad, 0, sizeof(hkey->hk_opad));
-
-       /* if key is longer than HMAC_LEN bytes reset it to key=MD5(key) */
-       if (keylen > HMAC_LEN) {
-               MD5Init(&ctx);
-               MD5Update(&ctx, key, keylen);
-               MD5Final(tk, &ctx);
-               memset((void *) &ctx, 0, sizeof(ctx));
-               key = tk;
-               local_keylen = MD5_LEN;
-       }
-       /* start out by storing key in pads */
-       memcpy(hkey->hk_ipad, key, local_keylen);
-       memcpy(hkey->hk_opad, key, local_keylen);
-
-       /* XOR key with hk_ipad and opad values */
-       for (i = 0; i < HMAC_LEN; i++) {
-               hkey->hk_ipad[i] ^= HMAC_IPAD;
-               hkey->hk_opad[i] ^= HMAC_OPAD;
-       }
-       dkey->dk_key_size = local_keylen;
-       dkey->dk_KEY_struct = (void *) hkey;
-       return (1);
-}
-
-
-/************************************************************************** 
- *  dst_hmac_md5_key_to_file_format
- *     Encodes an HMAC Key into the portable file format.
- *  Parameters 
- *     hkey      HMAC KEY structure 
- *     buff      output buffer
- *     buff_len  size of output buffer 
- *  Return
- *     0  Failure - null input hkey
- *     -1  Failure - not enough space in output area
- *     N  Success - Length of data returned in buff
- */
-
-static int
-dst_hmac_md5_key_to_file_format(const DST_KEY *dkey, char *buff,
-                               const int buff_len)
-{
-       char *bp;
-       int len, i, key_len;
-       u_char key[HMAC_LEN];
-       HMAC_Key *hkey;
-
-       if (dkey == NULL || dkey->dk_KEY_struct == NULL) 
-               return (0);
-       /*
-        * Using snprintf() would be so much simpler here.
-        */
-       if (buff == NULL ||
-           buff_len <= (int)(strlen(key_file_fmt_str) +
-                             strlen(KEY_FILE_FORMAT) + 4))
-               return (-1);    /*%< no OR not enough space in output area */
-       hkey = (HMAC_Key *) dkey->dk_KEY_struct;
-       memset(buff, 0, buff_len);      /*%< just in case */
-       /* write file header */
-       sprintf(buff, key_file_fmt_str, KEY_FILE_FORMAT, KEY_HMAC_MD5, "HMAC");
-
-       bp = buff + strlen(buff);
-
-       memset(key, 0, HMAC_LEN);
-       for (i = 0; i < HMAC_LEN; i++)
-               key[i] = hkey->hk_ipad[i] ^ HMAC_IPAD;
-       for (i = HMAC_LEN - 1; i >= 0; i--)
-               if (key[i] != 0)
-                       break;
-       key_len = i + 1;
-
-       if (buff_len - (bp - buff) < 6)
-               return (-1);
-       strcat(bp, "Key: ");
-       bp += strlen("Key: ");
-
-       len = b64_ntop(key, key_len, bp, buff_len - (bp - buff));
-       if (len < 0) 
-               return (-1);
-       bp += len;
-       if (buff_len - (bp - buff) < 2)
-               return (-1);
-       *(bp++) = '\n';
-       *bp = '\0';
-
-       return (bp - buff);
-}
-
-
-/************************************************************************** 
- * dst_hmac_md5_key_from_file_format
- *     Converts contents of a key file into an HMAC key. 
- * Parameters 
- *     hkey    structure to put key into 
- *     buff       buffer containing the encoded key 
- *     buff_len   the length of the buffer
- * Return
- *     n >= 0 Foot print of the key converted 
- *     n <  0 Error in conversion 
- */
-
-static int
-dst_hmac_md5_key_from_file_format(DST_KEY *dkey, const char *buff,
-                             const int buff_len)
-{
-       const char *p = buff, *eol;
-       u_char key[HMAC_LEN+1]; /* b64_pton needs more than 64 bytes do decode
-                                * it should probably be fixed rather than doing
-                                * this
-                                */
-       u_char *tmp;
-       int key_len, len;
-
-       if (dkey == NULL)
-               return (-2);
-       if (buff == NULL || buff_len < 0)
-               return (-1);
-
-       memset(key, 0, sizeof(key));
-
-       if (!dst_s_verify_str(&p, "Key: "))
-               return (-3);
-
-       eol = strchr(p, '\n');
-       if (eol == NULL)
-               return (-4);
-       len = eol - p;
-       tmp = malloc(len + 2);
-       if (tmp == NULL)
-               return (-5);
-       memcpy(tmp, p, len);
-       *(tmp + len) = 0x0;
-       key_len = b64_pton((char *)tmp, key, HMAC_LEN+1);       /*%< see above */
-       SAFE_FREE2(tmp, len + 2);
-
-       if (dst_buffer_to_hmac_md5(dkey, key, key_len) < 0) {
-               return (-6);
-       }
-       return (0);
-}
-
-/*%
- * dst_hmac_md5_to_dns_key() 
- *         function to extract hmac key from DST_KEY structure 
- * intput: 
- *      in_key:  HMAC-MD5 key 
- * output: 
- *     out_str: buffer to write ot
- *      out_len: size of output buffer 
- * returns:
- *      number of bytes written to output buffer 
- */
-static int
-dst_hmac_md5_to_dns_key(const DST_KEY *in_key, u_char *out_str,
-                       const int out_len)
-{
-
-       HMAC_Key *hkey;
-       int i;
-       
-       if (in_key == NULL || in_key->dk_KEY_struct == NULL ||
-           out_len <= in_key->dk_key_size || out_str == NULL)
-               return (-1);
-
-       hkey = (HMAC_Key *) in_key->dk_KEY_struct;
-       for (i = 0; i < in_key->dk_key_size; i++)
-               out_str[i] = hkey->hk_ipad[i] ^ HMAC_IPAD;
-       return (i);
-}
-
-/************************************************************************** 
- *  dst_hmac_md5_compare_keys
- *     Compare two keys for equality.
- *  Return
- *     0         The keys are equal
- *     NON-ZERO   The keys are not equal
- */
-
-static int
-dst_hmac_md5_compare_keys(const DST_KEY *key1, const DST_KEY *key2)
-{
-       HMAC_Key *hkey1 = (HMAC_Key *) key1->dk_KEY_struct;
-       HMAC_Key *hkey2 = (HMAC_Key *) key2->dk_KEY_struct;
-       return memcmp(hkey1->hk_ipad, hkey2->hk_ipad, HMAC_LEN);
-}
-
-/************************************************************************** 
- * dst_hmac_md5_free_key_structure
- *     Frees all (none) dynamically allocated structures in hkey
- */
-
-static void *
-dst_hmac_md5_free_key_structure(void *key)
-{
-       HMAC_Key *hkey = key;
-       SAFE_FREE(hkey);
-       return (NULL);
-}
-
-
-/*************************************************************************** 
- * dst_hmac_md5_generate_key
- *     Creates a HMAC key of size size with a maximum size of 63 bytes
- *     generating a HMAC key larger than 63 bytes makes no sense as that key 
- *     is digested before use. 
- */
-
-static int
-dst_hmac_md5_generate_key(DST_KEY *key, const int nothing)
-{
-       (void)key;
-       (void)nothing;
-       return (-1);
-}
-
-/*%
- * dst_hmac_md5_init()  Function to answer set up function pointers for HMAC
- *        related functions 
- */
-int
-#ifdef SUNW_LIBMD5
-dst_md5_hmac_init()
-#else
-dst_hmac_md5_init()
-#endif
-{
-       if (dst_t_func[KEY_HMAC_MD5] != NULL)
-               return (1);
-       dst_t_func[KEY_HMAC_MD5] = malloc(sizeof(struct dst_func));
-       if (dst_t_func[KEY_HMAC_MD5] == NULL)
-               return (0);
-       memset(dst_t_func[KEY_HMAC_MD5], 0, sizeof(struct dst_func));
-       dst_t_func[KEY_HMAC_MD5]->sign = dst_hmac_md5_sign;
-       dst_t_func[KEY_HMAC_MD5]->verify = dst_hmac_md5_verify;
-       dst_t_func[KEY_HMAC_MD5]->compare = dst_hmac_md5_compare_keys;
-       dst_t_func[KEY_HMAC_MD5]->generate = dst_hmac_md5_generate_key;
-       dst_t_func[KEY_HMAC_MD5]->destroy = dst_hmac_md5_free_key_structure;
-       dst_t_func[KEY_HMAC_MD5]->to_dns_key = dst_hmac_md5_to_dns_key;
-       dst_t_func[KEY_HMAC_MD5]->from_dns_key = dst_buffer_to_hmac_md5;
-       dst_t_func[KEY_HMAC_MD5]->to_file_fmt = dst_hmac_md5_key_to_file_format;
-       dst_t_func[KEY_HMAC_MD5]->from_file_fmt = dst_hmac_md5_key_from_file_format;
-       return (1);
-}
-
-#else 
-#define        dst_hmac_md5_init       __dst_hmac_md5_init
-
-int
-dst_hmac_md5_init(){
-       return (0);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/dst/md5.h b/lib/bind/dst/md5.h
deleted file mode 100644 (file)
index b1ed9e1..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/* crypto/md/md5.h */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifndef HEADER_MD5_H
-#define HEADER_MD5_H
-
-#ifndef        HAVE_MD5
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#define MD5_CBLOCK     64
-#define MD5_LBLOCK     16
-#define MD5_BLOCK      16
-#define MD5_LAST_BLOCK  56
-#define MD5_LENGTH_BLOCK 8
-#define MD5_DIGEST_LENGTH 16
-
-typedef struct MD5state_st
-       {
-       unsigned long A,B,C,D;
-       unsigned long Nl,Nh;
-       unsigned long data[MD5_LBLOCK];
-       int num;
-       } MD5_CTX;
-
-#ifndef NOPROTO
-void MD5_Init(MD5_CTX *c);
-void MD5_Update(MD5_CTX *c, const unsigned char *data, unsigned long len);
-void MD5_Final(unsigned char *md, MD5_CTX *c);
-unsigned char *MD5(unsigned char *d, unsigned long n, unsigned char *md);
-#else
-void MD5_Init();
-void MD5_Update();
-void MD5_Final();
-unsigned char *MD5();
-#endif
-
-/* to provide backward compatabilty to RSAREF calls ogud@tis.com 1997/11/14 */
-#define MD5Init(c)             MD5_Init(c)
-#define MD5Update(c,data, len) MD5_Update(c,data,len)
-#define MD5Final(md, c)        MD5_Final(md, c) 
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
-#else 
-#include <sys/md5.h>
-#endif /* HAVE_MD5 */
-
-/*! \file */
diff --git a/lib/bind/dst/md5_dgst.c b/lib/bind/dst/md5_dgst.c
deleted file mode 100644 (file)
index 76b0505..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-/* crypto/md/md5_dgst.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifdef USE_MD5 /*%< Added by ogud@tis.com 1998/1/26 */
-#include <port_before.h>
-#ifndef HAVE_MD5
-#include <stdio.h>
-#include "md5_locl.h"
-#include <port_after.h>
-
-const char *MD5_version="MD5 part of SSLeay 0.8.1 19-Jul-1997";
-
-/*! \file
- * \brief
- *  Implemented from RFC1321 The MD5 Message-Digest Algorithm
- */
-
-#define INIT_DATA_A (unsigned long)0x67452301L
-#define INIT_DATA_B (unsigned long)0xefcdab89L
-#define INIT_DATA_C (unsigned long)0x98badcfeL
-#define INIT_DATA_D (unsigned long)0x10325476L
-
-#ifndef NOPROTO
-static void md5_block(MD5_CTX *c, unsigned long *p);
-#else
-static void md5_block();
-#endif
-
-void MD5_Init(c)
-MD5_CTX *c;
-       {
-       c->A=INIT_DATA_A;
-       c->B=INIT_DATA_B;
-       c->C=INIT_DATA_C;
-       c->D=INIT_DATA_D;
-       c->Nl=0;
-       c->Nh=0;
-       c->num=0;
-       }
-
-void MD5_Update(c, data, len)
-MD5_CTX *c;
-register const unsigned char *data;
-unsigned long len;
-       {
-       register ULONG *p;
-       int sw,sc;
-       ULONG l;
-
-       if (len == 0U) return;
-
-       l=(c->Nl+(len<<3))&0xffffffffL;
-       /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
-        * Wei Dai <weidai@eskimo.com> for pointing it out. */
-       if (l < c->Nl) /*%< overflow */
-               c->Nh++;
-       c->Nh+=(len>>29);
-       c->Nl=l;
-
-       if (c->num != 0)
-               {
-               p=c->data;
-               sw=c->num>>2;
-               sc=c->num&0x03;
-
-               if ((c->num+len) >= (size_t)MD5_CBLOCK)
-                       {
-                       l= p[sw];
-                       p_c2l(data,l,sc);
-                       p[sw++]=l;
-                       for (; sw<MD5_LBLOCK; sw++)
-                               {
-                               c2l(data,l);
-                               p[sw]=l;
-                               }
-                       len-=(MD5_CBLOCK-c->num);
-
-                       md5_block(c,p);
-                       c->num=0;
-                       /* drop through and do the rest */
-                       }
-               else
-                       {
-                       int ew,ec;
-
-                       c->num+=(int)len;
-                       if ((sc+len) < 4U) /*%< ugly, add char's to a word */
-                               {
-                               l= p[sw];
-                               p_c2l_p(data,l,sc,len);
-                               p[sw]=l;
-                               }
-                       else
-                               {
-                               ew=(c->num>>2);
-                               ec=(c->num&0x03);
-                               l= p[sw];
-                               p_c2l(data,l,sc);
-                               p[sw++]=l;
-                               for (; sw < ew; sw++)
-                                       { c2l(data,l); p[sw]=l; }
-                               if (ec)
-                                       {
-                                       c2l_p(data,l,ec);
-                                       p[sw]=l;
-                                       }
-                               }
-                       return;
-                       }
-               }
-       /* we now can process the input data in blocks of MD5_CBLOCK
-        * chars and save the leftovers to c->data. */
-       p=c->data;
-       while (len >= (size_t)MD5_CBLOCK)
-               {
-#if defined(L_ENDIAN) || defined(B_ENDIAN)
-               memcpy(p,data,MD5_CBLOCK);
-               data+=MD5_CBLOCK;
-#ifdef B_ENDIAN
-               for (sw=(MD5_LBLOCK/4); sw; sw--)
-                       {
-                       Endian_Reverse32(p[0]);
-                       Endian_Reverse32(p[1]);
-                       Endian_Reverse32(p[2]);
-                       Endian_Reverse32(p[3]);
-                       p+=4;
-                       }
-#endif
-#else
-               for (sw=(MD5_LBLOCK/4); sw; sw--)
-                       {
-                       c2l(data,l); *(p++)=l;
-                       c2l(data,l); *(p++)=l;
-                       c2l(data,l); *(p++)=l;
-                       c2l(data,l); *(p++)=l; 
-                       } 
-#endif
-               p=c->data;
-               md5_block(c,p);
-               len-=MD5_CBLOCK;
-               }
-       sc=(int)len;
-       c->num=sc;
-       if (sc)
-               {
-               sw=sc>>2;       /*%< words to copy */
-#ifdef L_ENDIAN
-               p[sw]=0;
-               memcpy(p,data,sc);
-#else
-               sc&=0x03;
-               for ( ; sw; sw--)
-                       { c2l(data,l); *(p++)=l; }
-               c2l_p(data,l,sc);
-               *p=l;
-#endif
-               }
-       }
-
-static void md5_block(c, X)
-MD5_CTX *c;
-register ULONG *X;
-       {
-       register ULONG A,B,C,D;
-
-       A=c->A;
-       B=c->B;
-       C=c->C;
-       D=c->D;
-
-       /* Round 0 */
-       R0(A,B,C,D,X[ 0], 7,0xd76aa478L);
-       R0(D,A,B,C,X[ 1],12,0xe8c7b756L);
-       R0(C,D,A,B,X[ 2],17,0x242070dbL);
-       R0(B,C,D,A,X[ 3],22,0xc1bdceeeL);
-       R0(A,B,C,D,X[ 4], 7,0xf57c0fafL);
-       R0(D,A,B,C,X[ 5],12,0x4787c62aL);
-       R0(C,D,A,B,X[ 6],17,0xa8304613L);
-       R0(B,C,D,A,X[ 7],22,0xfd469501L);
-       R0(A,B,C,D,X[ 8], 7,0x698098d8L);
-       R0(D,A,B,C,X[ 9],12,0x8b44f7afL);
-       R0(C,D,A,B,X[10],17,0xffff5bb1L);
-       R0(B,C,D,A,X[11],22,0x895cd7beL);
-       R0(A,B,C,D,X[12], 7,0x6b901122L);
-       R0(D,A,B,C,X[13],12,0xfd987193L);
-       R0(C,D,A,B,X[14],17,0xa679438eL);
-       R0(B,C,D,A,X[15],22,0x49b40821L);
-       /* Round 1 */
-       R1(A,B,C,D,X[ 1], 5,0xf61e2562L);
-       R1(D,A,B,C,X[ 6], 9,0xc040b340L);
-       R1(C,D,A,B,X[11],14,0x265e5a51L);
-       R1(B,C,D,A,X[ 0],20,0xe9b6c7aaL);
-       R1(A,B,C,D,X[ 5], 5,0xd62f105dL);
-       R1(D,A,B,C,X[10], 9,0x02441453L);
-       R1(C,D,A,B,X[15],14,0xd8a1e681L);
-       R1(B,C,D,A,X[ 4],20,0xe7d3fbc8L);
-       R1(A,B,C,D,X[ 9], 5,0x21e1cde6L);
-       R1(D,A,B,C,X[14], 9,0xc33707d6L);
-       R1(C,D,A,B,X[ 3],14,0xf4d50d87L);
-       R1(B,C,D,A,X[ 8],20,0x455a14edL);
-       R1(A,B,C,D,X[13], 5,0xa9e3e905L);
-       R1(D,A,B,C,X[ 2], 9,0xfcefa3f8L);
-       R1(C,D,A,B,X[ 7],14,0x676f02d9L);
-       R1(B,C,D,A,X[12],20,0x8d2a4c8aL);
-       /* Round 2 */
-       R2(A,B,C,D,X[ 5], 4,0xfffa3942L);
-       R2(D,A,B,C,X[ 8],11,0x8771f681L);
-       R2(C,D,A,B,X[11],16,0x6d9d6122L);
-       R2(B,C,D,A,X[14],23,0xfde5380cL);
-       R2(A,B,C,D,X[ 1], 4,0xa4beea44L);
-       R2(D,A,B,C,X[ 4],11,0x4bdecfa9L);
-       R2(C,D,A,B,X[ 7],16,0xf6bb4b60L);
-       R2(B,C,D,A,X[10],23,0xbebfbc70L);
-       R2(A,B,C,D,X[13], 4,0x289b7ec6L);
-       R2(D,A,B,C,X[ 0],11,0xeaa127faL);
-       R2(C,D,A,B,X[ 3],16,0xd4ef3085L);
-       R2(B,C,D,A,X[ 6],23,0x04881d05L);
-       R2(A,B,C,D,X[ 9], 4,0xd9d4d039L);
-       R2(D,A,B,C,X[12],11,0xe6db99e5L);
-       R2(C,D,A,B,X[15],16,0x1fa27cf8L);
-       R2(B,C,D,A,X[ 2],23,0xc4ac5665L);
-       /* Round 3 */
-       R3(A,B,C,D,X[ 0], 6,0xf4292244L);
-       R3(D,A,B,C,X[ 7],10,0x432aff97L);
-       R3(C,D,A,B,X[14],15,0xab9423a7L);
-       R3(B,C,D,A,X[ 5],21,0xfc93a039L);
-       R3(A,B,C,D,X[12], 6,0x655b59c3L);
-       R3(D,A,B,C,X[ 3],10,0x8f0ccc92L);
-       R3(C,D,A,B,X[10],15,0xffeff47dL);
-       R3(B,C,D,A,X[ 1],21,0x85845dd1L);
-       R3(A,B,C,D,X[ 8], 6,0x6fa87e4fL);
-       R3(D,A,B,C,X[15],10,0xfe2ce6e0L);
-       R3(C,D,A,B,X[ 6],15,0xa3014314L);
-       R3(B,C,D,A,X[13],21,0x4e0811a1L);
-       R3(A,B,C,D,X[ 4], 6,0xf7537e82L);
-       R3(D,A,B,C,X[11],10,0xbd3af235L);
-       R3(C,D,A,B,X[ 2],15,0x2ad7d2bbL);
-       R3(B,C,D,A,X[ 9],21,0xeb86d391L);
-
-       c->A+=A&0xffffffffL;
-       c->B+=B&0xffffffffL;
-       c->C+=C&0xffffffffL;
-       c->D+=D&0xffffffffL;
-       }
-
-void MD5_Final(md, c)
-unsigned char *md;
-MD5_CTX *c;
-       {
-       register int i,j;
-       register ULONG l;
-       register ULONG *p;
-       static unsigned char end[4]={0x80,0x00,0x00,0x00};
-       unsigned char *cp=end;
-
-       /* c->num should definitly have room for at least one more byte. */
-       p=c->data;
-       j=c->num;
-       i=j>>2;
-
-       /* purify often complains about the following line as an
-        * Uninitialized Memory Read.  While this can be true, the
-        * following p_c2l macro will reset l when that case is true.
-        * This is because j&0x03 contains the number of 'valid' bytes
-        * already in p[i].  If and only if j&0x03 == 0, the UMR will
-        * occur but this is also the only time p_c2l will do
-        * l= *(cp++) instead of l|= *(cp++)
-        * Many thanks to Alex Tang <altitude@cic.net> for pickup this
-        * 'potential bug' */
-#ifdef PURIFY
-       if ((j&0x03) == 0) p[i]=0;
-#endif
-       l=p[i];
-       p_c2l(cp,l,j&0x03);
-       p[i]=l;
-       i++;
-       /* i is the next 'undefined word' */
-       if (c->num >= MD5_LAST_BLOCK)
-               {
-               for (; i<MD5_LBLOCK; i++)
-                       p[i]=0;
-               md5_block(c,p);
-               i=0;
-               }
-       for (; i<(MD5_LBLOCK-2); i++)
-               p[i]=0;
-       p[MD5_LBLOCK-2]=c->Nl;
-       p[MD5_LBLOCK-1]=c->Nh;
-       md5_block(c,p);
-       cp=md;
-       l=c->A; l2c(l,cp);
-       l=c->B; l2c(l,cp);
-       l=c->C; l2c(l,cp);
-       l=c->D; l2c(l,cp);
-
-       /* clear stuff, md5_block may be leaving some stuff on the stack
-        * but I'm not worried :-) */
-       c->num=0;
-/*     memset((char *)&c,0,sizeof(c));*/
-       }
-
-#ifdef undef
-int printit(l)
-unsigned long *l;
-       {
-       int i,ii;
-
-       for (i=0; i<2; i++)
-               {
-               for (ii=0; ii<8; ii++)
-                       {
-                       fprintf(stderr,"%08lx ",l[i*8+ii]);
-                       }
-               fprintf(stderr,"\n");
-               }
-       }
-#endif
-#endif /* HAVE_MD5 */
-#endif /* USE_MD5 */
diff --git a/lib/bind/dst/md5_locl.h b/lib/bind/dst/md5_locl.h
deleted file mode 100644 (file)
index 657fe8c..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/* crypto/md/md5_locl.h */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include "md5.h"
-
-#define ULONG  unsigned long
-#define UCHAR  unsigned char
-#define UINT   unsigned int
-
-#if defined(NOCONST)
-#define const
-#endif
-
-#undef c2l
-#define c2l(c,l)       (l = ((unsigned long)(*((c)++)))     , \
-                        l|=(((unsigned long)(*((c)++)))<< 8), \
-                        l|=(((unsigned long)(*((c)++)))<<16), \
-                        l|=(((unsigned long)(*((c)++)))<<24))
-
-#undef p_c2l
-#define p_c2l(c,l,n)   { \
-                       switch (n) { \
-                       case 0: l =((unsigned long)(*((c)++))); \
-                       case 1: l|=((unsigned long)(*((c)++)))<< 8; \
-                       case 2: l|=((unsigned long)(*((c)++)))<<16; \
-                       case 3: l|=((unsigned long)(*((c)++)))<<24; \
-                               } \
-                       }
-
-/* NOTE the pointer is not incremented at the end of this */
-#undef c2l_p
-#define c2l_p(c,l,n)   { \
-                       l=0; \
-                       (c)+=n; \
-                       switch (n) { \
-                       case 3: l =((unsigned long)(*(--(c))))<<16; \
-                       case 2: l|=((unsigned long)(*(--(c))))<< 8; \
-                       case 1: l|=((unsigned long)(*(--(c))))    ; \
-                               } \
-                       }
-
-#undef p_c2l_p
-#define p_c2l_p(c,l,sc,len) { \
-                       switch (sc) \
-                               { \
-                       case 0: l =((unsigned long)(*((c)++))); \
-                               if (--len == 0U) break; \
-                       case 1: l|=((unsigned long)(*((c)++)))<< 8; \
-                               if (--len == 0U) break; \
-                       case 2: l|=((unsigned long)(*((c)++)))<<16; \
-                               } \
-                       }
-
-#undef l2c
-#define l2c(l,c)       (*((c)++)=(unsigned char)(((l)    )&0xff), \
-                        *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
-                        *((c)++)=(unsigned char)(((l)>>16)&0xff), \
-                        *((c)++)=(unsigned char)(((l)>>24)&0xff))
-
-/* NOTE - c is not incremented as per l2c */
-#undef l2cn
-#define l2cn(l1,l2,c,n)        { \
-                       c+=n; \
-                       switch (n) { \
-                       case 8: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
-                       case 7: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
-                       case 6: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
-                       case 5: *(--(c))=(unsigned char)(((l2)    )&0xff); \
-                       case 4: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
-                       case 3: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
-                       case 2: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
-                       case 1: *(--(c))=(unsigned char)(((l1)    )&0xff); \
-                               } \
-                       }
-
-/* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */
-#if defined(WIN32)
-/* 5 instructions with rotate instruction, else 9 */
-#define Endian_Reverse32(a) \
-       { \
-       unsigned long l=(a); \
-       (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \
-       }
-#else
-/* 6 instructions with rotate instruction, else 8 */
-#define Endian_Reverse32(a) \
-       { \
-       unsigned long l=(a); \
-       l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \
-       (a)=ROTATE(l,16L); \
-       }
-#endif
-
-/*%
-#define        F(x,y,z)        (((x) & (y))  |  ((~(x)) & (z)))
-#define        G(x,y,z)        (((x) & (z))  |  ((y) & (~(z))))
-*/
-
-/* As pointed out by Wei Dai <weidai@eskimo.com>, the above can be
- * simplified to the code below.  Wei attributes these optimisations
- * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
- */
-#define        F(x,y,z)        ((((y) ^ (z)) & (x)) ^ (z))
-#define        G(x,y,z)        ((((x) ^ (y)) & (z)) ^ (y))
-#define        H(x,y,z)        ((x) ^ (y) ^ (z))
-#define        I(x,y,z)        (((x) | (~(z))) ^ (y))
-
-#undef ROTATE
-#if defined(WIN32)
-#define ROTATE(a,n)     _lrotl(a,n)
-#else
-#define ROTATE(a,n)     (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
-#endif
-
-
-#define R0(a,b,c,d,k,s,t) { \
-       a+=((k)+(t)+F((b),(c),(d))); \
-       a=ROTATE(a,s); \
-       a+=b; };\
-
-#define R1(a,b,c,d,k,s,t) { \
-       a+=((k)+(t)+G((b),(c),(d))); \
-       a=ROTATE(a,s); \
-       a+=b; };
-
-#define R2(a,b,c,d,k,s,t) { \
-       a+=((k)+(t)+H((b),(c),(d))); \
-       a=ROTATE(a,s); \
-       a+=b; };
-
-#define R3(a,b,c,d,k,s,t) { \
-       a+=((k)+(t)+I((b),(c),(d))); \
-       a=ROTATE(a,s); \
-       a+=b; };
-
-/*! \file */
diff --git a/lib/bind/dst/support.c b/lib/bind/dst/support.c
deleted file mode 100644 (file)
index e0aec2f..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-static const char rcsid[] = "$Header: /u0/home/explorer/proj/ISC/git-conversion/cvsroot/bind9/lib/bind/dst/Attic/support.c,v 1.6 2005/10/11 00:10:13 marka Exp $";
-
-
-/*
- * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
- *
- * 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 TRUSTED INFORMATION SYSTEMS
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL
- * TRUSTED INFORMATION SYSTEMS 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 THE SOFTWARE.
- */
-
-#include "port_before.h"
-
-#include <stdio.h>
-#include <unistd.h>
-#include <memory.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include "dst_internal.h"
-
-#include "port_after.h"
-
-/*%
- * dst_s_verify_str()
- *     Validate that the input string(*str) is at the head of the input
- *     buffer(**buf).  If so, move the buffer head pointer (*buf) to
- *     the first byte of data following the string(*str).
- * Parameters
- *     buf     Input buffer.
- *     str     Input string.
- * Return
- *     0       *str is not the head of **buff
- *     1       *str is the head of **buff, *buf is is advanced to
- *     the tail of **buf.
- */
-
-int
-dst_s_verify_str(const char **buf, const char *str)
-{
-       int b, s;
-       if (*buf == NULL)       /*%< error checks */
-               return (0);
-       if (str == NULL || *str == '\0')
-               return (1);
-
-       b = strlen(*buf);       /*%< get length of strings */
-       s = strlen(str);
-       if (s > b || strncmp(*buf, str, s))     /*%< check if same */
-               return (0);     /*%< not a match */
-       (*buf) += s;            /*%< advance pointer */
-       return (1);
-}
-
-/*%
- * dst_s_calculate_bits
- *     Given a binary number represented in a u_char[], determine
- *     the number of significant bits used.
- * Parameters
- *     str       An input character string containing a binary number.
- *     max_bits The maximum possible significant bits.
- * Return
- *     N       The number of significant bits in str.
- */
-
-int
-dst_s_calculate_bits(const u_char *str, const int max_bits)
-{
-       const u_char *p = str;
-       u_char i, j = 0x80;
-       int bits;
-       for (bits = max_bits; *p == 0x00 && bits > 0; p++)
-               bits -= 8;
-       for (i = *p; (i & j) != j; j >>= 1)
-               bits--;
-       return (bits);
-}
-
-/*%
- * calculates a checksum used in dst for an id.
- * takes an array of bytes and a length.
- * returns a 16  bit checksum.
- */
-u_int16_t
-dst_s_id_calc(const u_char *key, const int keysize)
-{
-       u_int32_t ac;
-       const u_char *kp = key;
-       int size = keysize;
-
-       if (!key || (keysize <= 0))
-               return (0xffffU);
-       for (ac = 0; size > 1; size -= 2, kp += 2)
-               ac += ((*kp) << 8) + *(kp + 1);
-
-       if (size > 0)
-               ac += ((*kp) << 8);
-       ac += (ac >> 16) & 0xffff;
-
-       return (ac & 0xffff);
-}
-
-/*%
- * dst_s_dns_key_id() Function to calculate DNSSEC footprint from KEY record
- *   rdata
- * Input:
- *     dns_key_rdata: the raw data in wire format 
- *      rdata_len: the size of the input data 
- * Output:
- *      the key footprint/id calculated from the key data 
- */ 
-u_int16_t
-dst_s_dns_key_id(const u_char *dns_key_rdata, const int rdata_len)
-{
-       if (!dns_key_rdata)
-               return 0;
-
-       /* compute id */
-       if (dns_key_rdata[3] == KEY_RSA)        /*%< Algorithm RSA */
-               return dst_s_get_int16((const u_char *)
-                                      &dns_key_rdata[rdata_len - 3]);
-       else if (dns_key_rdata[3] == KEY_HMAC_MD5)
-               /* compatibility */
-               return 0;
-       else
-               /* compute a checksum on the key part of the key rr */
-               return dst_s_id_calc(dns_key_rdata, rdata_len);
-}
-
-/*%
- * dst_s_get_int16
- *     This routine extracts a 16 bit integer from a two byte character
- *     string.  The character string is assumed to be in network byte
- *     order and may be unaligned.  The number returned is in host order.
- * Parameter
- *     buf     A two byte character string.
- * Return
- *     The converted integer value.
- */
-
-u_int16_t
-dst_s_get_int16(const u_char *buf)
-{
-       register u_int16_t a = 0;
-       a = ((u_int16_t)(buf[0] << 8)) | ((u_int16_t)(buf[1]));
-       return (a);
-}
-
-/*%
- * dst_s_get_int32
- *     This routine extracts a 32 bit integer from a four byte character
- *     string.  The character string is assumed to be in network byte
- *     order and may be unaligned.  The number returned is in host order.
- * Parameter
- *     buf     A four byte character string.
- * Return
- *     The converted integer value.
- */
-
-u_int32_t
-dst_s_get_int32(const u_char *buf)
-{
-       register u_int32_t a = 0;
-       a = ((u_int32_t)(buf[0] << 24)) | ((u_int32_t)(buf[1] << 16)) |
-               ((u_int32_t)(buf[2] << 8)) | ((u_int32_t)(buf[3]));
-       return (a);
-}
-
-/*%
- * dst_s_put_int16
- *     Take a 16 bit integer and store the value in a two byte
- *     character string.  The integer is assumed to be in network
- *     order and the string is returned in host order.
- *
- * Parameters
- *     buf     Storage for a two byte character string.
- *     val     16 bit integer.
- */
-
-void
-dst_s_put_int16(u_int8_t *buf, const u_int16_t val)
-{
-       buf[0] = (u_int8_t)(val >> 8);
-       buf[1] = (u_int8_t)(val);
-}
-
-/*%
- * dst_s_put_int32
- *     Take a 32 bit integer and store the value in a four byte
- *     character string.  The integer is assumed to be in network
- *     order and the string is returned in host order.
- *
- * Parameters
- *     buf     Storage for a four byte character string.
- *     val     32 bit integer.
- */
-
-void
-dst_s_put_int32(u_int8_t *buf, const u_int32_t val)
-{
-       buf[0] = (u_int8_t)(val >> 24);
-       buf[1] = (u_int8_t)(val >> 16);
-       buf[2] = (u_int8_t)(val >> 8);
-       buf[3] = (u_int8_t)(val);
-}
-
-/*%
- *  dst_s_filename_length
- *
- *     This function returns the number of bytes needed to hold the
- *     filename for a key file.  '/', '\' and ':' are not allowed.
- *     form:  K&lt;keyname&gt;+&lt;alg&gt;+&lt;id&gt;.&lt;suffix&gt;
- *
- *     Returns 0 if the filename would contain either '\', '/' or ':'
- */
-size_t
-dst_s_filename_length(const char *name, const char *suffix)
-{
-       if (name == NULL)
-               return (0);
-       if (strrchr(name, '\\'))
-               return (0);
-       if (strrchr(name, '/'))
-               return (0);
-       if (strrchr(name, ':'))
-               return (0);
-       if (suffix == NULL)
-               return (0);
-       if (strrchr(suffix, '\\'))
-               return (0);
-       if (strrchr(suffix, '/'))
-               return (0);
-       if (strrchr(suffix, ':'))
-               return (0);
-       return (1 + strlen(name) + 6 + strlen(suffix));
-}
-
-/*%
- *  dst_s_build_filename ()
- *     Builds a key filename from the key name, it's id, and a
- *     suffix.  '\', '/' and ':' are not allowed. fA filename is of the
- *     form:  K&lt;keyname&gt;&lt;id&gt;.&lt;suffix&gt;
- *     form: K&lt;keyname&gt;+&lt;alg&gt;+&lt;id&gt;.&lt;suffix&gt;
- *
- *     Returns -1 if the conversion fails:
- *       if the filename would be too long for space allotted
- *       if the filename would contain a '\', '/' or ':'
- *     Returns 0 on success
- */
-
-int
-dst_s_build_filename(char *filename, const char *name, u_int16_t id,
-                    int alg, const char *suffix, size_t filename_length)
-{
-       u_int32_t my_id;
-       if (filename == NULL)
-               return (-1);
-       memset(filename, 0, filename_length);
-       if (name == NULL)
-               return (-1);
-       if (suffix == NULL)
-               return (-1);
-       if (filename_length < 1 + strlen(name) + 4 + 6 + 1 + strlen(suffix))
-               return (-1);
-       my_id = id;
-       sprintf(filename, "K%s+%03d+%05d.%s", name, alg, my_id,
-               (const char *) suffix);
-       if (strrchr(filename, '/'))
-               return (-1);
-       if (strrchr(filename, '\\'))
-               return (-1);
-       if (strrchr(filename, ':'))
-               return (-1);
-       return (0);
-}
-
-/*%
- *  dst_s_fopen ()
- *     Open a file in the dst_path directory.  If perm is specified, the
- *     file is checked for existence first, and not opened if it exists.
- *  Parameters
- *     filename  File to open
- *     mode       Mode to open the file (passed directly to fopen)
- *     perm       File permission, if creating a new file.
- *  Returns
- *     NULL       Failure
- *     NON-NULL  (FILE *) of opened file.
- */
-FILE *
-dst_s_fopen(const char *filename, const char *mode, int perm)
-{
-       FILE *fp;
-       char pathname[PATH_MAX];
-
-       if (strlen(filename) + strlen(dst_path) >= sizeof(pathname))
-               return (NULL);
-
-       if (*dst_path != '\0') {
-               strcpy(pathname, dst_path);
-               strcat(pathname, filename);
-       } else
-               strcpy(pathname, filename);
-       
-       fp = fopen(pathname, mode);
-       if (perm)
-               chmod(pathname, perm);
-       return (fp);
-}
-
-void
-dst_s_dump(const int mode, const u_char *data, const int size, 
-           const char *msg)
-{
-       UNUSED(data);
-
-       if (size > 0) {
-#ifdef LONG_TEST
-               static u_char scratch[1000];
-               int n ;
-               n = b64_ntop(data, scratch, size, sizeof(scratch));
-               printf("%s: %x %d %s\n", msg, mode, n, scratch);
-#else
-               printf("%s,%x %d\n", msg, mode, size);
-#endif
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/include/.cvsignore b/lib/bind/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/include/Makefile.in b/lib/bind/include/Makefile.in
deleted file mode 100644 (file)
index b6f0d1e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.8 2008/01/23 02:15:56 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS=fd_setsize.h hesiod.h irp.h irs.h netdb.h netgroup.h res_update.h \
-       resolv.h
-AHEADERS= arpa/inet.h arpa/nameser.h arpa/nameser_compat.h
-IHEADERS= isc/assertions.h isc/ctl.h isc/dst.h isc/eventlib.h isc/heap.h \
-       isc/irpmarshall.h isc/list.h isc/logging.h isc/memcluster.h \
-       isc/misc.h isc/tree.h isc/platform.h.in
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir} \
-       ${DESTDIR}${includedir}/arpa ${DESTDIR}${includedir}/isc
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${IHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/isc; \
-       done
-       for i in ${AHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/arpa; \
-       done
-
diff --git a/lib/bind/include/arpa/inet.h b/lib/bind/include/arpa/inet.h
deleted file mode 100644 (file)
index d40ccfc..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * ++Copyright++ 1983, 1993
- * -
- * Copyright (c) 1983, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*%
- *     @(#)inet.h      8.1 (Berkeley) 6/2/93
- *     $Id: inet.h,v 1.3 2005/04/27 04:56:16 sra Exp $
- */
-
-#ifndef _INET_H_
-#define        _INET_H_
-
-/* External definitions for functions in inet(3) */
-
-#include <sys/param.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#else
-# include <sys/types.h>
-#endif
-#include <sys/cdefs.h>
-
-#define        inet_addr               __inet_addr
-#define        inet_aton               __inet_aton
-#define        inet_lnaof              __inet_lnaof
-#define        inet_makeaddr           __inet_makeaddr
-#define        inet_neta               __inet_neta
-#define        inet_netof              __inet_netof
-#define        inet_network            __inet_network
-#define        inet_net_ntop           __inet_net_ntop
-#define        inet_net_pton           __inet_net_pton
-#define        inet_cidr_ntop          __inet_cidr_ntop
-#define        inet_cidr_pton          __inet_cidr_pton
-#define        inet_ntoa               __inet_ntoa
-#define        inet_pton               __inet_pton
-#define        inet_ntop               __inet_ntop
-#define        inet_nsap_addr          __inet_nsap_addr
-#define        inet_nsap_ntoa          __inet_nsap_ntoa
-
-__BEGIN_DECLS
-unsigned long   inet_addr __P((const char *));
-int             inet_aton __P((const char *, struct in_addr *));
-unsigned long   inet_lnaof __P((struct in_addr));
-struct in_addr  inet_makeaddr __P((u_long , u_long));
-char *          inet_neta __P((u_long, char *, size_t));
-unsigned long   inet_netof __P((struct in_addr));
-unsigned long   inet_network __P((const char *));
-char           *inet_net_ntop __P((int, const void *, int, char *, size_t));
-int             inet_net_pton __P((int, const char *, void *, size_t));
-char           *inet_cidr_ntop __P((int, const void *, int, char *, size_t));
-int             inet_cidr_pton __P((int, const char *, void *, int *));
-/*const*/ char *inet_ntoa __P((struct in_addr));
-int             inet_pton __P((int, const char *, void *));
-const char     *inet_ntop __P((int, const void *, char *, size_t));
-u_int           inet_nsap_addr __P((const char *, u_char *, int));
-char           *inet_nsap_ntoa __P((int, const u_char *, char *));
-__END_DECLS
-
-#if defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED)
-/*
- * Macros for number representation conversion.
- *
- *    netinet/in.h is another location for these macros
- */
-#ifndef ntohl
-#define ntohl(x)       (x)
-#define ntohs(x)       (x)
-#define htonl(x)       (x)
-#define htons(x)       (x)
-#endif
-#endif
-
-#endif /* !_INET_H_ */
-
-/*! \file */
diff --git a/lib/bind/include/arpa/nameser.h b/lib/bind/include/arpa/nameser.h
deleted file mode 100644 (file)
index 977e4f5..0000000
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
- * Copyright (c) 1983, 1989, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: nameser.h,v 1.9 2008/04/03 02:01:08 marka Exp $
- */
-
-#ifndef _ARPA_NAMESER_H_
-#define _ARPA_NAMESER_H_
-
-/*! \file */
-
-#define BIND_4_COMPAT
-
-#include <sys/param.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#else
-# include <sys/types.h>
-#endif
-#include <sys/cdefs.h>
-
-/*%
- * Revision information.  This is the release date in YYYYMMDD format.
- * It can change every day so the right thing to do with it is use it
- * in preprocessor commands such as "#if (__NAMESER > 19931104)".  Do not
- * compare for equality; rather, use it to determine whether your libbind.a
- * contains a new enough lib/nameser/ to support the feature you need.
- */
-
-#define __NAMESER      19991006        /*%< New interface version stamp. */
-/*
- * Define constants based on RFC0883, RFC1034, RFC 1035
- */
-#define NS_PACKETSZ    512     /*%< default UDP packet size */
-#define NS_MAXDNAME    1025    /*%< maximum domain name */
-#define NS_MAXMSG      65535   /*%< maximum message size */
-#define NS_MAXCDNAME   255     /*%< maximum compressed domain name */
-#define NS_MAXLABEL    63      /*%< maximum length of domain label */
-#define NS_HFIXEDSZ    12      /*%< #/bytes of fixed data in header */
-#define NS_QFIXEDSZ    4       /*%< #/bytes of fixed data in query */
-#define NS_RRFIXEDSZ   10      /*%< #/bytes of fixed data in r record */
-#define NS_INT32SZ     4       /*%< #/bytes of data in a u_int32_t */
-#define NS_INT16SZ     2       /*%< #/bytes of data in a u_int16_t */
-#define NS_INT8SZ      1       /*%< #/bytes of data in a u_int8_t */
-#define NS_INADDRSZ    4       /*%< IPv4 T_A */
-#define NS_IN6ADDRSZ   16      /*%< IPv6 T_AAAA */
-#define NS_CMPRSFLGS   0xc0    /*%< Flag bits indicating name compression. */
-#define NS_DEFAULTPORT 53      /*%< For both TCP and UDP. */
-/*
- * These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord()
- * in synch with it.
- */
-typedef enum __ns_sect {
-       ns_s_qd = 0,            /*%< Query: Question. */
-       ns_s_zn = 0,            /*%< Update: Zone. */
-       ns_s_an = 1,            /*%< Query: Answer. */
-       ns_s_pr = 1,            /*%< Update: Prerequisites. */
-       ns_s_ns = 2,            /*%< Query: Name servers. */
-       ns_s_ud = 2,            /*%< Update: Update. */
-       ns_s_ar = 3,            /*%< Query|Update: Additional records. */
-       ns_s_max = 4
-} ns_sect;
-
-/*%
- * This is a message handle.  It is caller allocated and has no dynamic data.
- * This structure is intended to be opaque to all but ns_parse.c, thus the
- * leading _'s on the member names.  Use the accessor functions, not the _'s.
- */
-typedef struct __ns_msg {
-       const u_char    *_msg, *_eom;
-       u_int16_t       _id, _flags, _counts[ns_s_max];
-       const u_char    *_sections[ns_s_max];
-       ns_sect         _sect;
-       int             _rrnum;
-       const u_char    *_msg_ptr;
-} ns_msg;
-
-/* Private data structure - do not use from outside library. */
-struct _ns_flagdata {  int mask, shift;  };
-extern struct _ns_flagdata _ns_flagdata[];
-
-/* Accessor macros - this is part of the public interface. */
-
-#define ns_msg_id(handle) ((handle)._id + 0)
-#define ns_msg_base(handle) ((handle)._msg + 0)
-#define ns_msg_end(handle) ((handle)._eom + 0)
-#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
-#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
-
-/*%
- * This is a parsed record.  It is caller allocated and has no dynamic data.
- */
-typedef        struct __ns_rr {
-       char            name[NS_MAXDNAME];
-       u_int16_t       type;
-       u_int16_t       rr_class;
-       u_int32_t       ttl;
-       u_int16_t       rdlength;
-       const u_char *  rdata;
-} ns_rr;
-
-/* Accessor macros - this is part of the public interface. */
-#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
-#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
-#define ns_rr_class(rr)        ((ns_class)((rr).rr_class + 0))
-#define ns_rr_ttl(rr)  ((rr).ttl + 0)
-#define ns_rr_rdlen(rr)        ((rr).rdlength + 0)
-#define ns_rr_rdata(rr)        ((rr).rdata + 0)
-
-/*%
- * These don't have to be in the same order as in the packet flags word,
- * and they can even overlap in some cases, but they will need to be kept
- * in synch with ns_parse.c:ns_flagdata[].
- */
-typedef enum __ns_flag {
-       ns_f_qr,                /*%< Question/Response. */
-       ns_f_opcode,            /*%< Operation code. */
-       ns_f_aa,                /*%< Authoritative Answer. */
-       ns_f_tc,                /*%< Truncation occurred. */
-       ns_f_rd,                /*%< Recursion Desired. */
-       ns_f_ra,                /*%< Recursion Available. */
-       ns_f_z,                 /*%< MBZ. */
-       ns_f_ad,                /*%< Authentic Data (DNSSEC). */
-       ns_f_cd,                /*%< Checking Disabled (DNSSEC). */
-       ns_f_rcode,             /*%< Response code. */
-       ns_f_max
-} ns_flag;
-
-/*%
- * Currently defined opcodes.
- */
-typedef enum __ns_opcode {
-       ns_o_query = 0,         /*%< Standard query. */
-       ns_o_iquery = 1,        /*%< Inverse query (deprecated/unsupported). */
-       ns_o_status = 2,        /*%< Name server status query (unsupported). */
-                               /* Opcode 3 is undefined/reserved. */
-       ns_o_notify = 4,        /*%< Zone change notification. */
-       ns_o_update = 5,        /*%< Zone update message. */
-       ns_o_max = 6
-} ns_opcode;
-
-/*%
- * Currently defined response codes.
- */
-typedef        enum __ns_rcode {
-       ns_r_noerror = 0,       /*%< No error occurred. */
-       ns_r_formerr = 1,       /*%< Format error. */
-       ns_r_servfail = 2,      /*%< Server failure. */
-       ns_r_nxdomain = 3,      /*%< Name error. */
-       ns_r_notimpl = 4,       /*%< Unimplemented. */
-       ns_r_refused = 5,       /*%< Operation refused. */
-       /* these are for BIND_UPDATE */
-       ns_r_yxdomain = 6,      /*%< Name exists */
-       ns_r_yxrrset = 7,       /*%< RRset exists */
-       ns_r_nxrrset = 8,       /*%< RRset does not exist */
-       ns_r_notauth = 9,       /*%< Not authoritative for zone */
-       ns_r_notzone = 10,      /*%< Zone of record different from zone section */
-       ns_r_max = 11,
-       /* The following are EDNS extended rcodes */
-       ns_r_badvers = 16,
-       /* The following are TSIG errors */
-       ns_r_badsig = 16,
-       ns_r_badkey = 17,
-       ns_r_badtime = 18
-} ns_rcode;
-
-/* BIND_UPDATE */
-typedef enum __ns_update_operation {
-       ns_uop_delete = 0,
-       ns_uop_add = 1,
-       ns_uop_max = 2
-} ns_update_operation;
-
-/*%
- * This structure is used for TSIG authenticated messages
- */
-struct ns_tsig_key {
-        char name[NS_MAXDNAME], alg[NS_MAXDNAME];
-        unsigned char *data;
-        int len;
-};
-typedef struct ns_tsig_key ns_tsig_key;
-
-/*%
- * This structure is used for TSIG authenticated TCP messages
- */
-struct ns_tcp_tsig_state {
-       int counter;
-       struct dst_key *key;
-       void *ctx;
-       unsigned char sig[NS_PACKETSZ];
-       int siglen;
-};
-typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
-
-#define NS_TSIG_FUDGE 300
-#define NS_TSIG_TCP_COUNT 100
-#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
-
-#define NS_TSIG_ERROR_NO_TSIG -10
-#define NS_TSIG_ERROR_NO_SPACE -11
-#define NS_TSIG_ERROR_FORMERR -12
-
-/*%
- * Currently defined type values for resources and queries.
- */
-typedef enum __ns_type {
-       ns_t_invalid = 0,       /*%< Cookie. */
-       ns_t_a = 1,             /*%< Host address. */
-       ns_t_ns = 2,            /*%< Authoritative server. */
-       ns_t_md = 3,            /*%< Mail destination. */
-       ns_t_mf = 4,            /*%< Mail forwarder. */
-       ns_t_cname = 5,         /*%< Canonical name. */
-       ns_t_soa = 6,           /*%< Start of authority zone. */
-       ns_t_mb = 7,            /*%< Mailbox domain name. */
-       ns_t_mg = 8,            /*%< Mail group member. */
-       ns_t_mr = 9,            /*%< Mail rename name. */
-       ns_t_null = 10,         /*%< Null resource record. */
-       ns_t_wks = 11,          /*%< Well known service. */
-       ns_t_ptr = 12,          /*%< Domain name pointer. */
-       ns_t_hinfo = 13,        /*%< Host information. */
-       ns_t_minfo = 14,        /*%< Mailbox information. */
-       ns_t_mx = 15,           /*%< Mail routing information. */
-       ns_t_txt = 16,          /*%< Text strings. */
-       ns_t_rp = 17,           /*%< Responsible person. */
-       ns_t_afsdb = 18,        /*%< AFS cell database. */
-       ns_t_x25 = 19,          /*%< X_25 calling address. */
-       ns_t_isdn = 20,         /*%< ISDN calling address. */
-       ns_t_rt = 21,           /*%< Router. */
-       ns_t_nsap = 22,         /*%< NSAP address. */
-       ns_t_nsap_ptr = 23,     /*%< Reverse NSAP lookup (deprecated). */
-       ns_t_sig = 24,          /*%< Security signature. */
-       ns_t_key = 25,          /*%< Security key. */
-       ns_t_px = 26,           /*%< X.400 mail mapping. */
-       ns_t_gpos = 27,         /*%< Geographical position (withdrawn). */
-       ns_t_aaaa = 28,         /*%< Ip6 Address. */
-       ns_t_loc = 29,          /*%< Location Information. */
-       ns_t_nxt = 30,          /*%< Next domain (security). */
-       ns_t_eid = 31,          /*%< Endpoint identifier. */
-       ns_t_nimloc = 32,       /*%< Nimrod Locator. */
-       ns_t_srv = 33,          /*%< Server Selection. */
-       ns_t_atma = 34,         /*%< ATM Address */
-       ns_t_naptr = 35,        /*%< Naming Authority PoinTeR */
-       ns_t_kx = 36,           /*%< Key Exchange */
-       ns_t_cert = 37,         /*%< Certification record */
-       ns_t_a6 = 38,           /*%< IPv6 address (deprecates AAAA) */
-       ns_t_dname = 39,        /*%< Non-terminal DNAME (for IPv6) */
-       ns_t_sink = 40,         /*%< Kitchen sink (experimentatl) */
-       ns_t_opt = 41,          /*%< EDNS0 option (meta-RR) */
-       ns_t_apl = 42,          /*%< Address prefix list (RFC3123) */
-       ns_t_tkey = 249,        /*%< Transaction key */
-       ns_t_tsig = 250,        /*%< Transaction signature. */
-       ns_t_ixfr = 251,        /*%< Incremental zone transfer. */
-       ns_t_axfr = 252,        /*%< Transfer zone of authority. */
-       ns_t_mailb = 253,       /*%< Transfer mailbox records. */
-       ns_t_maila = 254,       /*%< Transfer mail agent records. */
-       ns_t_any = 255,         /*%< Wildcard match. */
-       ns_t_zxfr = 256,        /*%< BIND-specific, nonstandard. */
-       ns_t_max = 65536
-} ns_type;
-
-/* Exclusively a QTYPE? (not also an RTYPE) */
-#define        ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
-                     (t) == ns_t_mailb || (t) == ns_t_maila)
-/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */
-#define        ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
-/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */
-#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
-#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
-#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
-                      (t) == ns_t_zxfr)
-
-/*%
- * Values for class field
- */
-typedef enum __ns_class {
-       ns_c_invalid = 0,       /*%< Cookie. */
-       ns_c_in = 1,            /*%< Internet. */
-       ns_c_2 = 2,             /*%< unallocated/unsupported. */
-       ns_c_chaos = 3,         /*%< MIT Chaos-net. */
-       ns_c_hs = 4,            /*%< MIT Hesiod. */
-       /* Query class values which do not appear in resource records */
-       ns_c_none = 254,        /*%< for prereq. sections in update requests */
-       ns_c_any = 255,         /*%< Wildcard match. */
-       ns_c_max = 65536
-} ns_class;
-
-/* DNSSEC constants. */
-
-typedef enum __ns_key_types {
-       ns_kt_rsa = 1,          /*%< key type RSA/MD5 */
-       ns_kt_dh  = 2,          /*%< Diffie Hellman */
-       ns_kt_dsa = 3,          /*%< Digital Signature Standard (MANDATORY) */
-       ns_kt_private = 254     /*%< Private key type starts with OID */
-} ns_key_types;
-
-typedef enum __ns_cert_types {
-       cert_t_pkix = 1,        /*%< PKIX (X.509v3) */
-       cert_t_spki = 2,        /*%< SPKI */
-       cert_t_pgp  = 3,        /*%< PGP */
-       cert_t_url  = 253,      /*%< URL private type */
-       cert_t_oid  = 254       /*%< OID private type */
-} ns_cert_types;
-
-/* Flags field of the KEY RR rdata. */
-#define        NS_KEY_TYPEMASK         0xC000  /*%< Mask for "type" bits */
-#define        NS_KEY_TYPE_AUTH_CONF   0x0000  /*%< Key usable for both */
-#define        NS_KEY_TYPE_CONF_ONLY   0x8000  /*%< Key usable for confidentiality */
-#define        NS_KEY_TYPE_AUTH_ONLY   0x4000  /*%< Key usable for authentication */
-#define        NS_KEY_TYPE_NO_KEY      0xC000  /*%< No key usable for either; no key */
-/* The type bits can also be interpreted independently, as single bits: */
-#define        NS_KEY_NO_AUTH          0x8000  /*%< Key unusable for authentication */
-#define        NS_KEY_NO_CONF          0x4000  /*%< Key unusable for confidentiality */
-#define        NS_KEY_RESERVED2        0x2000  /* Security is *mandatory* if bit=0 */
-#define        NS_KEY_EXTENDED_FLAGS   0x1000  /*%< reserved - must be zero */
-#define        NS_KEY_RESERVED4        0x0800  /*%< reserved - must be zero */
-#define        NS_KEY_RESERVED5        0x0400  /*%< reserved - must be zero */
-#define        NS_KEY_NAME_TYPE        0x0300  /*%< these bits determine the type */
-#define        NS_KEY_NAME_USER        0x0000  /*%< key is assoc. with user */
-#define        NS_KEY_NAME_ENTITY      0x0200  /*%< key is assoc. with entity eg host */
-#define        NS_KEY_NAME_ZONE        0x0100  /*%< key is zone key */
-#define        NS_KEY_NAME_RESERVED    0x0300  /*%< reserved meaning */
-#define        NS_KEY_RESERVED8        0x0080  /*%< reserved - must be zero */
-#define        NS_KEY_RESERVED9        0x0040  /*%< reserved - must be zero */
-#define        NS_KEY_RESERVED10       0x0020  /*%< reserved - must be zero */
-#define        NS_KEY_RESERVED11       0x0010  /*%< reserved - must be zero */
-#define        NS_KEY_SIGNATORYMASK    0x000F  /*%< key can sign RR's of same name */
-#define        NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
-                                 NS_KEY_RESERVED4 | \
-                                 NS_KEY_RESERVED5 | \
-                                 NS_KEY_RESERVED8 | \
-                                 NS_KEY_RESERVED9 | \
-                                 NS_KEY_RESERVED10 | \
-                                 NS_KEY_RESERVED11 )
-#define NS_KEY_RESERVED_BITMASK2 0xFFFF /*%< no bits defined here */
-/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
-#define        NS_ALG_MD5RSA           1       /*%< MD5 with RSA */
-#define        NS_ALG_DH               2       /*%< Diffie Hellman KEY */
-#define        NS_ALG_DSA              3       /*%< DSA KEY */
-#define        NS_ALG_DSS              NS_ALG_DSA
-#define        NS_ALG_EXPIRE_ONLY      253     /*%< No alg, no security */
-#define        NS_ALG_PRIVATE_OID      254     /*%< Key begins with OID giving alg */
-/* Protocol values  */
-/* value 0 is reserved */
-#define NS_KEY_PROT_TLS         1
-#define NS_KEY_PROT_EMAIL       2
-#define NS_KEY_PROT_DNSSEC      3
-#define NS_KEY_PROT_IPSEC       4
-#define NS_KEY_PROT_ANY                255
-
-/* Signatures */
-#define        NS_MD5RSA_MIN_BITS       512    /*%< Size of a mod or exp in bits */
-#define        NS_MD5RSA_MAX_BITS      4096
-       /* Total of binary mod and exp */
-#define        NS_MD5RSA_MAX_BYTES     ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
-       /* Max length of text sig block */
-#define        NS_MD5RSA_MAX_BASE64    (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
-#define NS_MD5RSA_MIN_SIZE     ((NS_MD5RSA_MIN_BITS+7)/8)
-#define NS_MD5RSA_MAX_SIZE     ((NS_MD5RSA_MAX_BITS+7)/8)
-
-#define NS_DSA_SIG_SIZE         41
-#define NS_DSA_MIN_SIZE         213
-#define NS_DSA_MAX_BYTES        405
-
-/* Offsets into SIG record rdata to find various values */
-#define        NS_SIG_TYPE     0       /*%< Type flags */
-#define        NS_SIG_ALG      2       /*%< Algorithm */
-#define        NS_SIG_LABELS   3       /*%< How many labels in name */
-#define        NS_SIG_OTTL     4       /*%< Original TTL */
-#define        NS_SIG_EXPIR    8       /*%< Expiration time */
-#define        NS_SIG_SIGNED   12      /*%< Signature time */
-#define        NS_SIG_FOOT     16      /*%< Key footprint */
-#define        NS_SIG_SIGNER   18      /*%< Domain name of who signed it */
-/* How RR types are represented as bit-flags in NXT records */
-#define        NS_NXT_BITS 8
-#define        NS_NXT_BIT_SET(  n,p) (p[(n)/NS_NXT_BITS] |=  (0x80>>((n)%NS_NXT_BITS)))
-#define        NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
-#define        NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] &   (0x80>>((n)%NS_NXT_BITS)))
-#define NS_NXT_MAX 127
-
-/*%
- * EDNS0 extended flags and option codes, host order.
- */
-#define NS_OPT_DNSSEC_OK       0x8000U
-#define NS_OPT_NSID             3
-
-/*%
- * Inline versions of get/put short/long.  Pointer is advanced.
- */
-#define NS_GET16(s, cp) do { \
-       register const u_char *t_cp = (const u_char *)(cp); \
-       (s) = ((u_int16_t)t_cp[0] << 8) \
-           | ((u_int16_t)t_cp[1]) \
-           ; \
-       (cp) += NS_INT16SZ; \
-} while (0)
-
-#define NS_GET32(l, cp) do { \
-       register const u_char *t_cp = (const u_char *)(cp); \
-       (l) = ((u_int32_t)t_cp[0] << 24) \
-           | ((u_int32_t)t_cp[1] << 16) \
-           | ((u_int32_t)t_cp[2] << 8) \
-           | ((u_int32_t)t_cp[3]) \
-           ; \
-       (cp) += NS_INT32SZ; \
-} while (0)
-
-#define NS_PUT16(s, cp) do { \
-       register u_int16_t t_s = (u_int16_t)(s); \
-       register u_char *t_cp = (u_char *)(cp); \
-       *t_cp++ = t_s >> 8; \
-       *t_cp   = t_s; \
-       (cp) += NS_INT16SZ; \
-} while (0)
-
-#define NS_PUT32(l, cp) do { \
-       register u_int32_t t_l = (u_int32_t)(l); \
-       register u_char *t_cp = (u_char *)(cp); \
-       *t_cp++ = t_l >> 24; \
-       *t_cp++ = t_l >> 16; \
-       *t_cp++ = t_l >> 8; \
-       *t_cp   = t_l; \
-       (cp) += NS_INT32SZ; \
-} while (0)
-
-/*%
- * ANSI C identifier hiding for bind's lib/nameser.
- */
-#define        ns_msg_getflag          __ns_msg_getflag
-#define ns_get16               __ns_get16
-#define ns_get32               __ns_get32
-#define ns_put16               __ns_put16
-#define ns_put32               __ns_put32
-#define ns_initparse           __ns_initparse
-#define ns_skiprr              __ns_skiprr
-#define ns_parserr             __ns_parserr
-#define        ns_sprintrr             __ns_sprintrr
-#define        ns_sprintrrf            __ns_sprintrrf
-#define        ns_format_ttl           __ns_format_ttl
-#define        ns_parse_ttl            __ns_parse_ttl
-#define ns_datetosecs          __ns_datetosecs
-#define        ns_name_ntol            __ns_name_ntol
-#define        ns_name_ntop            __ns_name_ntop
-#define        ns_name_pton            __ns_name_pton
-#define        ns_name_unpack          __ns_name_unpack
-#define        ns_name_pack            __ns_name_pack
-#define        ns_name_compress        __ns_name_compress
-#define        ns_name_uncompress      __ns_name_uncompress
-#define        ns_name_skip            __ns_name_skip
-#define        ns_name_rollback        __ns_name_rollback
-#define        ns_sign                 __ns_sign
-#define        ns_sign2                __ns_sign2
-#define        ns_sign_tcp             __ns_sign_tcp
-#define        ns_sign_tcp2            __ns_sign_tcp2
-#define        ns_sign_tcp_init        __ns_sign_tcp_init
-#define ns_find_tsig           __ns_find_tsig
-#define        ns_verify               __ns_verify
-#define        ns_verify_tcp           __ns_verify_tcp
-#define        ns_verify_tcp_init      __ns_verify_tcp_init
-#define        ns_samedomain           __ns_samedomain
-#define        ns_subdomain            __ns_subdomain
-#define        ns_makecanon            __ns_makecanon
-#define        ns_samename             __ns_samename
-
-__BEGIN_DECLS
-int            ns_msg_getflag __P((ns_msg, int));
-u_int          ns_get16 __P((const u_char *));
-u_long         ns_get32 __P((const u_char *));
-void           ns_put16 __P((u_int, u_char *));
-void           ns_put32 __P((u_long, u_char *));
-int            ns_initparse __P((const u_char *, int, ns_msg *));
-int            ns_skiprr __P((const u_char *, const u_char *, ns_sect, int));
-int            ns_parserr __P((ns_msg *, ns_sect, int, ns_rr *));
-int            ns_sprintrr __P((const ns_msg *, const ns_rr *,
-                                const char *, const char *, char *, size_t));
-int            ns_sprintrrf __P((const u_char *, size_t, const char *,
-                                 ns_class, ns_type, u_long, const u_char *,
-                                 size_t, const char *, const char *,
-                                 char *, size_t));
-int            ns_format_ttl __P((u_long, char *, size_t));
-int            ns_parse_ttl __P((const char *, u_long *));
-u_int32_t      ns_datetosecs __P((const char *cp, int *errp));
-int            ns_name_ntol __P((const u_char *, u_char *, size_t));
-int            ns_name_ntop __P((const u_char *, char *, size_t));
-int            ns_name_pton __P((const char *, u_char *, size_t));
-int            ns_name_unpack __P((const u_char *, const u_char *,
-                                   const u_char *, u_char *, size_t));
-int            ns_name_pack __P((const u_char *, u_char *, int,
-                                 const u_char **, const u_char **));
-int            ns_name_uncompress __P((const u_char *, const u_char *,
-                                       const u_char *, char *, size_t));
-int            ns_name_compress __P((const char *, u_char *, size_t,
-                                     const u_char **, const u_char **));
-int            ns_name_skip __P((const u_char **, const u_char *));
-void           ns_name_rollback __P((const u_char *, const u_char **,
-                                     const u_char **));
-int            ns_sign __P((u_char *, int *, int, int, void *,
-                            const u_char *, int, u_char *, int *, time_t));
-int            ns_sign2 __P((u_char *, int *, int, int, void *,
-                             const u_char *, int, u_char *, int *, time_t,
-                             u_char **, u_char **));
-int            ns_sign_tcp __P((u_char *, int *, int, int,
-                                ns_tcp_tsig_state *, int));
-int            ns_sign_tcp2 __P((u_char *, int *, int, int,
-                                 ns_tcp_tsig_state *, int,
-                                 u_char **, u_char **));
-int            ns_sign_tcp_init __P((void *, const u_char *, int,
-                                       ns_tcp_tsig_state *));
-u_char         *ns_find_tsig __P((u_char *, u_char *));
-int            ns_verify __P((u_char *, int *, void *,
-                              const u_char *, int, u_char *, int *,
-                              time_t *, int));
-int            ns_verify_tcp __P((u_char *, int *, ns_tcp_tsig_state *, int));
-int            ns_verify_tcp_init __P((void *, const u_char *, int,
-                                       ns_tcp_tsig_state *));
-int            ns_samedomain __P((const char *, const char *));
-int            ns_subdomain __P((const char *, const char *));
-int            ns_makecanon __P((const char *, char *, size_t));
-int            ns_samename __P((const char *, const char *));
-__END_DECLS
-
-#ifdef BIND_4_COMPAT
-#include <arpa/nameser_compat.h>
-#endif
-
-#endif /* !_ARPA_NAMESER_H_ */
-/*! \file */
diff --git a/lib/bind/include/arpa/nameser_compat.h b/lib/bind/include/arpa/nameser_compat.h
deleted file mode 100644 (file)
index 5c69882..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Copyright (c) 1983, 1989
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*%
- *      from nameser.h 8.1 (Berkeley) 6/2/93
- *     $Id: nameser_compat.h,v 1.8 2006/05/19 02:33:40 marka Exp $
- */
-
-#ifndef _ARPA_NAMESER_COMPAT_
-#define        _ARPA_NAMESER_COMPAT_
-
-#define        __BIND          19950621        /*%< (DEAD) interface version stamp. */
-#ifndef BYTE_ORDER
-#if (BSD >= 199103)
-# include <machine/endian.h>
-#else
-#ifdef __linux
-# include <endian.h>
-#else
-#define        LITTLE_ENDIAN   1234    /*%< least-significant byte first (vax, pc) */
-#define        BIG_ENDIAN      4321    /*%< most-significant byte first (IBM, net) */
-#define        PDP_ENDIAN      3412    /*%< LSB first in word, MSW first in long (pdp) */
-#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \
-    defined(__i386__) || defined(__i386) || defined(__amd64__) || \
-    defined(__x86_64__) || defined(MIPSEL) || defined(_MIPSEL) || \
-    defined(BIT_ZERO_ON_RIGHT) || defined(__alpha__) || defined(__alpha) || \
-    (defined(__Lynx__) && defined(__x86__))
-#define BYTE_ORDER     LITTLE_ENDIAN
-#endif
-
-#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \
-    defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \
-    defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\
-    defined(apollo) || defined(__convex__) || defined(_CRAY) || \
-    defined(__hppa) || defined(__hp9000) || \
-    defined(__hp9000s300) || defined(__hp9000s700) || \
-    defined(__hp3000s900) || defined(__hpux) || defined(MPE) || \
-    defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) ||  \
-    (defined(__Lynx__) && \
-     (defined(__68k__) || defined(__sparc__) || defined(__powerpc__)))
-#define BYTE_ORDER     BIG_ENDIAN
-#endif
-#endif /* __linux */
-#endif /* BSD */
-#endif /* BYTE_ORDER */
-
-#if !defined(BYTE_ORDER) || \
-    (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \
-    BYTE_ORDER != PDP_ENDIAN)
-       /* you must determine what the correct bit order is for
-        * your compiler - the next line is an intentional error
-        * which will force your compiles to bomb until you fix
-        * the above macros.
-        */
-  error "Undefined or invalid BYTE_ORDER";
-#endif
-
-/*%
- * Structure for query header.  The order of the fields is machine- and
- * compiler-dependent, depending on the byte/bit order and the layout
- * of bit fields.  We use bit fields only in int variables, as this
- * is all ANSI requires.  This requires a somewhat confusing rearrangement.
- */
-
-typedef struct {
-       unsigned        id :16;         /*%< query identification number */
-#if BYTE_ORDER == BIG_ENDIAN
-                       /* fields in third byte */
-       unsigned        qr: 1;          /*%< response flag */
-       unsigned        opcode: 4;      /*%< purpose of message */
-       unsigned        aa: 1;          /*%< authoritive answer */
-       unsigned        tc: 1;          /*%< truncated message */
-       unsigned        rd: 1;          /*%< recursion desired */
-                       /* fields in fourth byte */
-       unsigned        ra: 1;          /*%< recursion available */
-       unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
-       unsigned        ad: 1;          /*%< authentic data from named */
-       unsigned        cd: 1;          /*%< checking disabled by resolver */
-       unsigned        rcode :4;       /*%< response code */
-#endif
-#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
-                       /* fields in third byte */
-       unsigned        rd :1;          /*%< recursion desired */
-       unsigned        tc :1;          /*%< truncated message */
-       unsigned        aa :1;          /*%< authoritive answer */
-       unsigned        opcode :4;      /*%< purpose of message */
-       unsigned        qr :1;          /*%< response flag */
-                       /* fields in fourth byte */
-       unsigned        rcode :4;       /*%< response code */
-       unsigned        cd: 1;          /*%< checking disabled by resolver */
-       unsigned        ad: 1;          /*%< authentic data from named */
-       unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
-       unsigned        ra :1;          /*%< recursion available */
-#endif
-                       /* remaining bytes */
-       unsigned        qdcount :16;    /*%< number of question entries */
-       unsigned        ancount :16;    /*%< number of answer entries */
-       unsigned        nscount :16;    /*%< number of authority entries */
-       unsigned        arcount :16;    /*%< number of resource entries */
-} HEADER;
-
-#define PACKETSZ       NS_PACKETSZ
-#define MAXDNAME       NS_MAXDNAME
-#define MAXCDNAME      NS_MAXCDNAME
-#define MAXLABEL       NS_MAXLABEL
-#define        HFIXEDSZ        NS_HFIXEDSZ
-#define QFIXEDSZ       NS_QFIXEDSZ
-#define RRFIXEDSZ      NS_RRFIXEDSZ
-#define        INT32SZ         NS_INT32SZ
-#define        INT16SZ         NS_INT16SZ
-#define        INT8SZ          NS_INT8SZ
-#define        INADDRSZ        NS_INADDRSZ
-#define        IN6ADDRSZ       NS_IN6ADDRSZ
-#define        INDIR_MASK      NS_CMPRSFLGS
-#define NAMESERVER_PORT        NS_DEFAULTPORT
-
-#define S_ZONE         ns_s_zn
-#define S_PREREQ       ns_s_pr
-#define S_UPDATE       ns_s_ud
-#define S_ADDT         ns_s_ar
-
-#define QUERY          ns_o_query
-#define IQUERY         ns_o_iquery
-#define STATUS         ns_o_status
-#define        NS_NOTIFY_OP    ns_o_notify
-#define        NS_UPDATE_OP    ns_o_update
-
-#define NOERROR                ns_r_noerror
-#define FORMERR                ns_r_formerr
-#define SERVFAIL       ns_r_servfail
-#define NXDOMAIN       ns_r_nxdomain
-#define NOTIMP         ns_r_notimpl
-#define REFUSED                ns_r_refused
-#define YXDOMAIN       ns_r_yxdomain
-#define YXRRSET                ns_r_yxrrset
-#define NXRRSET                ns_r_nxrrset
-#define NOTAUTH                ns_r_notauth
-#define NOTZONE                ns_r_notzone
-/*#define BADSIG               ns_r_badsig*/
-/*#define BADKEY               ns_r_badkey*/
-/*#define BADTIME              ns_r_badtime*/
-
-
-#define DELETE         ns_uop_delete
-#define ADD            ns_uop_add
-
-#define T_A            ns_t_a
-#define T_NS           ns_t_ns
-#define T_MD           ns_t_md
-#define T_MF           ns_t_mf
-#define T_CNAME                ns_t_cname
-#define T_SOA          ns_t_soa
-#define T_MB           ns_t_mb
-#define T_MG           ns_t_mg
-#define T_MR           ns_t_mr
-#define T_NULL         ns_t_null
-#define T_WKS          ns_t_wks
-#define T_PTR          ns_t_ptr
-#define T_HINFO                ns_t_hinfo
-#define T_MINFO                ns_t_minfo
-#define T_MX           ns_t_mx
-#define T_TXT          ns_t_txt
-#define        T_RP            ns_t_rp
-#define T_AFSDB                ns_t_afsdb
-#define T_X25          ns_t_x25
-#define T_ISDN         ns_t_isdn
-#define T_RT           ns_t_rt
-#define T_NSAP         ns_t_nsap
-#define T_NSAP_PTR     ns_t_nsap_ptr
-#define        T_SIG           ns_t_sig
-#define        T_KEY           ns_t_key
-#define        T_PX            ns_t_px
-#define        T_GPOS          ns_t_gpos
-#define        T_AAAA          ns_t_aaaa
-#define        T_LOC           ns_t_loc
-#define        T_NXT           ns_t_nxt
-#define        T_EID           ns_t_eid
-#define        T_NIMLOC        ns_t_nimloc
-#define        T_SRV           ns_t_srv
-#define T_ATMA         ns_t_atma
-#define T_NAPTR                ns_t_naptr
-#define T_A6           ns_t_a6
-#define        T_TSIG          ns_t_tsig
-#define        T_IXFR          ns_t_ixfr
-#define T_AXFR         ns_t_axfr
-#define T_MAILB                ns_t_mailb
-#define T_MAILA                ns_t_maila
-#define T_ANY          ns_t_any
-
-#define C_IN           ns_c_in
-#define C_CHAOS                ns_c_chaos
-#define C_HS           ns_c_hs
-/* BIND_UPDATE */
-#define C_NONE         ns_c_none
-#define C_ANY          ns_c_any
-
-#define        GETSHORT                NS_GET16
-#define        GETLONG                 NS_GET32
-#define        PUTSHORT                NS_PUT16
-#define        PUTLONG                 NS_PUT32
-
-#endif /* _ARPA_NAMESER_COMPAT_ */
-/*! \file */
diff --git a/lib/bind/include/fd_setsize.h b/lib/bind/include/fd_setsize.h
deleted file mode 100644 (file)
index 0e21049..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _FD_SETSIZE_H
-#define _FD_SETSIZE_H
-
-/*%
- * If you need a bigger FD_SETSIZE, this is NOT the place to set it.
- * This file is a fallback for BIND ports which don't specify their own.
- */
-
-#endif /* _FD_SETSIZE_H */
-/*! \file */
diff --git a/lib/bind/include/hesiod.h b/lib/bind/include/hesiod.h
deleted file mode 100644 (file)
index d64c0c5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*! \file 
- * \brief
- * This file is primarily maintained by <tytso@mit.edu> and <ghudson@mit.edu>.
- */
-
-/*
- * $Id: hesiod.h,v 1.4 2005/04/27 04:56:14 sra Exp $
- */
-
-#ifndef _HESIOD_H_INCLUDED
-#define _HESIOD_H_INCLUDED
-
-int            hesiod_init __P((void **));
-void           hesiod_end __P((void *));
-char *         hesiod_to_bind __P((void *, const char *, const char *));
-char **                hesiod_resolve __P((void *, const char *, const char *));
-void           hesiod_free_list __P((void *, char **));
-struct __res_state * __hesiod_res_get __P((void *));
-void           __hesiod_res_set __P((void *, struct __res_state *,
-                                     void (*)(void *)));
-
-#endif /*_HESIOD_H_INCLUDED*/
diff --git a/lib/bind/include/irp.h b/lib/bind/include/irp.h
deleted file mode 100644 (file)
index 1290bd0..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irp.h,v 1.4 2005/04/27 04:56:15 sra Exp $
- */
-
-#ifndef _IRP_H_INCLUDED
-#define _IRP_H_INCLUDED
-
-/*! \file */
-
-#define IRPD_TIMEOUT 30                        /*%< seconds */
-#define IRPD_MAXSESS 50                        /*%< number of simultaneous sessions. */
-#define IRPD_PORT 6660                 /*%< 10 times the number of the beast. */
-#define IRPD_PATH "/var/run/irpd"      /*%< af_unix socket path */
-
-/* If sets the environment variable IRPDSERVER to an IP address
-   (e.g. "192.5.5.1"), then that's the host the client expects irpd to be
-   running on. */
-#define IRPD_HOST_ENV "IRPDSERVER"
-
-/* Protocol response codes.  */
-#define IRPD_WELCOME_CODE 200
-#define IRPD_NOT_WELCOME_CODE 500
-
-#define IRPD_GETHOST_ERROR 510
-#define IRPD_GETHOST_NONE 210
-#define IRPD_GETHOST_OK 211
-#define IRPD_GETHOST_SETOK 212
-
-#define IRPD_GETNET_ERROR 520
-#define IRPD_GETNET_NONE 220
-#define IRPD_GETNET_OK 221
-#define IRPD_GETNET_SETOK 222
-
-#define IRPD_GETUSER_ERROR 530
-#define IRPD_GETUSER_NONE 230
-#define IRPD_GETUSER_OK 231
-#define IRPD_GETUSER_SETOK 232
-
-#define IRPD_GETGROUP_ERROR 540
-#define IRPD_GETGROUP_NONE 240
-#define IRPD_GETGROUP_OK 241
-#define IRPD_GETGROUP_SETOK 242
-
-#define IRPD_GETSERVICE_ERROR 550
-#define IRPD_GETSERVICE_NONE 250
-#define IRPD_GETSERVICE_OK 251
-#define IRPD_GETSERVICE_SETOK 252
-
-#define IRPD_GETPROTO_ERROR 560
-#define IRPD_GETPROTO_NONE 260
-#define IRPD_GETPROTO_OK 261
-#define IRPD_GETPROTO_SETOK 262
-
-#define IRPD_GETNETGR_ERROR 570
-#define IRPD_GETNETGR_NONE 270
-#define IRPD_GETNETGR_OK 271
-#define IRPD_GETNETGR_NOMORE 272
-#define IRPD_GETNETGR_MATCHES 273
-#define IRPD_GETNETGR_NOMATCH 274
-#define IRPD_GETNETGR_SETOK 275
-#define IRPD_GETNETGR_SETERR 276
-
-#define        irs_irp_read_body __irs_irp_read_body
-#define irs_irp_read_response __irs_irp_read_response
-#define irs_irp_disconnect __irs_irp_disconnect
-#define irs_irp_connect __irs_irp_connect
-#define irs_irp_connection_setup __irs_irp_connection_setup
-#define irs_irp_send_command __irs_irp_send_command
-
-struct irp_p;
-
-char   *irs_irp_read_body(struct irp_p *, size_t *);
-int    irs_irp_read_response(struct irp_p *, char *, size_t);
-void   irs_irp_disconnect(struct irp_p *);
-int    irs_irp_connect(struct irp_p *);
-int    irs_irp_is_connected(struct irp_p *);
-int    irs_irp_connection_setup(struct irp_p *, int *);
-#ifdef __GNUC__
-int    irs_irp_send_command(struct irp_p *, const char *, ...)
-                            __attribute__((__format__(__printf__, 2, 3)));
-#else
-int    irs_irp_send_command(struct irp_p *, const char *, ...);
-#endif
-int    irs_irp_get_full_response(struct irp_p *, int *, char *, size_t,
-                                 char **, size_t *);
-int    irs_irp_read_line(struct irp_p *, char *, int);
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/include/irs.h b/lib/bind/include/irs.h
deleted file mode 100644 (file)
index 42d4890..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irs.h,v 1.5 2005/04/27 04:56:15 sra Exp $
- */
-
-#ifndef _IRS_H_INCLUDED
-#define _IRS_H_INCLUDED
-
-/*! \file */
-
-#include <sys/types.h>
-
-#include <arpa/nameser.h>
-
-#include <grp.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <pwd.h>
-
-/*%
- * This is the group map class.
- */
-struct irs_gr {
-       void *          private;
-       void            (*close) __P((struct irs_gr *));
-       struct group *  (*next) __P((struct irs_gr *));
-       struct group *  (*byname) __P((struct irs_gr *, const char *));
-       struct group *  (*bygid) __P((struct irs_gr *, gid_t));
-       int             (*list) __P((struct irs_gr *, const char *,
-                                    gid_t, gid_t *, int *));
-       void            (*rewind) __P((struct irs_gr *));
-       void            (*minimize) __P((struct irs_gr *));
-       struct __res_state * (*res_get) __P((struct irs_gr *));
-       void            (*res_set) __P((struct irs_gr *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is the password map class.
- */
-struct irs_pw {
-       void *          private;
-       void            (*close) __P((struct irs_pw *));
-       struct passwd * (*next) __P((struct irs_pw *));
-       struct passwd * (*byname) __P((struct irs_pw *, const char *));
-       struct passwd * (*byuid) __P((struct irs_pw *, uid_t));
-       void            (*rewind) __P((struct irs_pw *));
-       void            (*minimize) __P((struct irs_pw *));
-       struct __res_state * (*res_get) __P((struct irs_pw *));
-       void            (*res_set) __P((struct irs_pw *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is the service map class.
- */
-struct irs_sv {
-       void *          private;
-       void            (*close) __P((struct irs_sv *));
-       struct servent *(*byname) __P((struct irs_sv *,
-                                      const char *, const char *));
-       struct servent *(*byport) __P((struct irs_sv *, int, const char *));
-       struct servent *(*next) __P((struct irs_sv *));
-       void            (*rewind) __P((struct irs_sv *));
-       void            (*minimize) __P((struct irs_sv *));
-       struct __res_state * (*res_get) __P((struct irs_sv *));
-       void            (*res_set) __P((struct irs_sv *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is the protocols map class.
- */
-struct irs_pr {
-       void *          private;
-       void            (*close) __P((struct irs_pr *));
-       struct protoent *(*byname) __P((struct irs_pr *, const char *));
-       struct protoent *(*bynumber) __P((struct irs_pr *, int));
-       struct protoent *(*next) __P((struct irs_pr *));
-       void            (*rewind) __P((struct irs_pr *));
-       void            (*minimize) __P((struct irs_pr *));
-       struct __res_state * (*res_get) __P((struct irs_pr *));
-       void            (*res_set) __P((struct irs_pr *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is the hosts map class.
- */
-struct irs_ho {
-       void *          private;
-       void            (*close) __P((struct irs_ho *));
-       struct hostent *(*byname) __P((struct irs_ho *, const char *));
-       struct hostent *(*byname2) __P((struct irs_ho *, const char *, int));
-       struct hostent *(*byaddr) __P((struct irs_ho *,
-                                      const void *, int, int));
-       struct hostent *(*next) __P((struct irs_ho *));
-       void            (*rewind) __P((struct irs_ho *));
-       void            (*minimize) __P((struct irs_ho *));
-       struct __res_state * (*res_get) __P((struct irs_ho *));
-       void            (*res_set) __P((struct irs_ho *, res_state,
-                                       void (*)(void *)));
-       struct addrinfo *(*addrinfo) __P((struct irs_ho *, const char *,
-                                         const struct addrinfo *));
-};
-
-/*%
- * This is the networks map class.
- */
-struct irs_nw {
-       void *          private;
-       void            (*close) __P((struct irs_nw *));
-       struct nwent *  (*byname) __P((struct irs_nw *, const char *, int));
-       struct nwent *  (*byaddr) __P((struct irs_nw *, void *, int, int));
-       struct nwent *  (*next) __P((struct irs_nw *));
-       void            (*rewind) __P((struct irs_nw *));
-       void            (*minimize) __P((struct irs_nw *));
-       struct __res_state * (*res_get) __P((struct irs_nw *));
-       void            (*res_set) __P((struct irs_nw *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is the netgroups map class.
- */
-struct irs_ng {
-       void *          private;
-       void            (*close) __P((struct irs_ng *));
-       int             (*next) __P((struct irs_ng *, const char **,
-                                    const char **, const char **));
-       int             (*test) __P((struct irs_ng *, const char *,
-                                    const char *, const char *,
-                                    const char *));
-       void            (*rewind) __P((struct irs_ng *, const char *));
-       void            (*minimize) __P((struct irs_ng *));
-};
-
-/*%
- * This is the generic map class, which copies the front of all others.
- */
-struct irs_map {
-       void *          private;
-       void            (*close) __P((void *));
-};
-
-/*%
- * This is the accessor class.  It contains pointers to all of the
- * initializers for the map classes for a particular accessor.
- */
-struct irs_acc {
-       void *          private;
-       void            (*close) __P((struct irs_acc *));
-       struct irs_gr * (*gr_map) __P((struct irs_acc *));
-       struct irs_pw * (*pw_map) __P((struct irs_acc *));
-       struct irs_sv * (*sv_map) __P((struct irs_acc *));
-       struct irs_pr * (*pr_map) __P((struct irs_acc *));
-       struct irs_ho * (*ho_map) __P((struct irs_acc *));
-       struct irs_nw * (*nw_map) __P((struct irs_acc *));
-       struct irs_ng * (*ng_map) __P((struct irs_acc *));
-       struct __res_state * (*res_get) __P((struct irs_acc *));
-       void            (*res_set) __P((struct irs_acc *, res_state,
-                                       void (*)(void *)));
-};
-
-/*%
- * This is because the official definition of "struct netent" has no
- * concept of CIDR even though it allows variant address families (on
- * output but not input).  The compatibility stubs convert the structs
- * below into "struct netent"'s.
- */
-struct nwent {
-       char            *n_name;        /*%< official name of net */
-       char            **n_aliases;    /*%< alias list */
-       int             n_addrtype;     /*%< net address type */
-       void            *n_addr;        /*%< network address */
-       int             n_length;       /*%< address length, in bits */
-};
-
-/*%
- * Hide external function names from POSIX.
- */
-#define        irs_gen_acc     __irs_gen_acc
-#define        irs_lcl_acc     __irs_lcl_acc
-#define        irs_dns_acc     __irs_dns_acc
-#define        irs_nis_acc     __irs_nis_acc
-#define        irs_irp_acc     __irs_irp_acc
-#define        irs_destroy     __irs_destroy
-#define        irs_dns_gr      __irs_dns_gr
-#define        irs_dns_ho      __irs_dns_ho
-#define        irs_dns_nw      __irs_dns_nw
-#define        irs_dns_pr      __irs_dns_pr
-#define        irs_dns_pw      __irs_dns_pw
-#define        irs_dns_sv      __irs_dns_sv
-#define        irs_gen_gr      __irs_gen_gr
-#define        irs_gen_ho      __irs_gen_ho
-#define        irs_gen_ng      __irs_gen_ng
-#define        irs_gen_nw      __irs_gen_nw
-#define        irs_gen_pr      __irs_gen_pr
-#define        irs_gen_pw      __irs_gen_pw
-#define        irs_gen_sv      __irs_gen_sv
-#define        irs_irp_get_full_response       __irs_irp_get_full_response
-#define        irs_irp_gr      __irs_irp_gr
-#define        irs_irp_ho      __irs_irp_ho
-#define        irs_irp_is_connected    __irs_irp_is_connected
-#define        irs_irp_ng      __irs_irp_ng
-#define        irs_irp_nw      __irs_irp_nw
-#define        irs_irp_pr      __irs_irp_pr
-#define        irs_irp_pw      __irs_irp_pw
-#define        irs_irp_read_line       __irs_irp_read_line
-#define        irs_irp_sv      __irs_irp_sv
-#define        irs_lcl_gr      __irs_lcl_gr
-#define        irs_lcl_ho      __irs_lcl_ho
-#define        irs_lcl_ng      __irs_lcl_ng
-#define        irs_lcl_nw      __irs_lcl_nw
-#define        irs_lcl_pr      __irs_lcl_pr
-#define        irs_lcl_pw      __irs_lcl_pw
-#define        irs_lcl_sv      __irs_lcl_sv
-#define        irs_nis_gr      __irs_nis_gr
-#define        irs_nis_ho      __irs_nis_ho
-#define        irs_nis_ng      __irs_nis_ng
-#define        irs_nis_nw      __irs_nis_nw
-#define        irs_nis_pr      __irs_nis_pr
-#define        irs_nis_pw      __irs_nis_pw
-#define        irs_nis_sv      __irs_nis_sv
-#define        net_data_create __net_data_create
-#define        net_data_destroy        __net_data_destroy
-#define        net_data_minimize       __net_data_minimize
-
-/*%
- * Externs.
- */
-extern struct irs_acc *        irs_gen_acc __P((const char *, const char *));
-extern struct irs_acc *        irs_lcl_acc __P((const char *));
-extern struct irs_acc *        irs_dns_acc __P((const char *));
-extern struct irs_acc *        irs_nis_acc __P((const char *));
-extern struct irs_acc *        irs_irp_acc __P((const char *));
-
-extern void            irs_destroy __P((void));
-
-/*%
- * These forward declarations are for the semi-private functions in
- * the get*.c files. Each of these funcs implements the real get*
- * functionality and the standard versions are just wrappers that
- * call these. Apart from the wrappers, only irpd is expected to
- * call these directly, hence these decls are put here and not in
- * the /usr/include replacements.
- */
-
-struct net_data;                       /*%< forward */
-/*
- * net_data_create gets a singleton net_data object.  net_data_init
- * creates as many net_data objects as times it is called.  Clients using
- * the default interface will use net_data_create by default.  Servers will
- * probably want net_data_init (one call per client)
- */
-struct net_data *net_data_create __P((const char *));
-struct net_data *net_data_init __P((const char *));
-void           net_data_destroy __P((void *));
-       
-extern struct group    *getgrent_p __P((struct net_data *));
-extern struct group    *getgrnam_p __P((const char *, struct net_data *));
-extern struct group    *getgrgid_p __P((gid_t, struct net_data *));
-extern int             setgroupent_p __P((int, struct net_data *));
-extern void            endgrent_p __P((struct net_data *));
-extern int             getgrouplist_p __P((const char *, gid_t, gid_t *, int *,
-                                           struct net_data *));
-
-#ifdef SETGRENT_VOID
-extern void            setgrent_p __P((struct net_data *));
-#else
-extern int             setgrent_p __P((struct net_data *));
-#endif
-
-extern struct hostent  *gethostbyname_p __P((const char *,
-                                             struct net_data *));
-extern struct hostent  *gethostbyname2_p __P((const char *, int,
-                                              struct net_data *));
-extern struct hostent  *gethostbyaddr_p __P((const char *, int, int,
-                                             struct net_data *));
-extern struct hostent  *gethostent_p __P((struct net_data *));
-extern void            sethostent_p __P((int, struct net_data *));
-extern void            endhostent_p __P((struct net_data *));
-extern struct hostent  *getipnodebyname_p __P((const char *, int, int, int *,
-                                              struct net_data *));
-extern struct hostent  *getipnodebyaddr_p __P((const void *, size_t,
-                                             int, int *, struct net_data *));
-
-extern struct netent   *getnetent_p __P((struct net_data *));
-extern struct netent   *getnetbyname_p __P((const char *, struct net_data *));
-extern struct netent   *getnetbyaddr_p __P((unsigned long, int,
-                                            struct net_data *));
-extern void            setnetent_p __P((int, struct net_data *));
-extern void            endnetent_p __P((struct net_data *));
-
-extern void            setnetgrent_p __P((const char *, struct net_data *));
-extern void            endnetgrent_p __P((struct net_data *));
-extern int             innetgr_p __P((const char *, const char *, const char *,
-                                      const char *, struct net_data *));
-extern int             getnetgrent_p __P((const char **, const char **,
-                                          const char **, struct net_data *));
-
-extern struct protoent  *getprotoent_p __P((struct net_data *));
-extern struct protoent  *getprotobyname_p __P((const char *,
-                                              struct net_data *));
-extern struct protoent *getprotobynumber_p __P((int, struct net_data *));
-extern void            setprotoent_p __P((int, struct net_data *));
-extern void            endprotoent_p __P((struct net_data *));
-
-
-extern struct passwd   *getpwent_p __P((struct net_data *));
-extern struct passwd   *getpwnam_p __P((const char *, struct net_data *));
-extern struct passwd   *getpwuid_p __P((uid_t, struct net_data *));
-extern int             setpassent_p __P((int, struct net_data *));
-extern void            endpwent_p __P((struct net_data *));
-
-#ifdef SETPWENT_VOID
-extern void            setpwent_p __P((struct net_data *));
-#else
-extern int             setpwent_p __P((struct net_data *));
-#endif
-
-extern struct servent  *getservent_p __P((struct net_data *));
-extern struct servent  *getservbyname_p __P((const char *, const char *,
-                                             struct net_data *));
-extern struct servent  *getservbyport_p __P((int, const char *,
-                                             struct net_data *));
-extern void            setservent_p __P((int, struct net_data *));
-extern void            endservent_p __P((struct net_data *));
-
-#endif /*_IRS_H_INCLUDED*/
-
-/*! \file */
diff --git a/lib/bind/include/isc/.cvsignore b/lib/bind/include/isc/.cvsignore
deleted file mode 100644 (file)
index 81aae00..0000000
+++ /dev/null
@@ -1 +0,0 @@
-platform.h
diff --git a/lib/bind/include/isc/assertions.h b/lib/bind/include/isc/assertions.h
deleted file mode 100644 (file)
index b885f64..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: assertions.h,v 1.3 2005/04/27 04:56:17 sra Exp $
- */
-
-#ifndef ASSERTIONS_H
-#define ASSERTIONS_H           1
-
-typedef enum {
-       assert_require, assert_ensure, assert_insist, assert_invariant
-} assertion_type;
-
-typedef void (*assertion_failure_callback)(const char *, int, assertion_type,
-                                          const char *, int);
-
-extern assertion_failure_callback __assertion_failed;
-void set_assertion_failure_callback(assertion_failure_callback f);
-const char *assertion_type_to_text(assertion_type type);
-
-#ifdef CHECK_ALL
-#define CHECK_REQUIRE          1
-#define CHECK_ENSURE           1
-#define CHECK_INSIST           1
-#define CHECK_INVARIANT                1
-#endif
-
-#ifdef CHECK_NONE
-#define CHECK_REQUIRE          0
-#define CHECK_ENSURE           0
-#define CHECK_INSIST           0
-#define CHECK_INVARIANT                0
-#endif
-
-#ifndef CHECK_REQUIRE
-#define CHECK_REQUIRE          1
-#endif
-
-#ifndef CHECK_ENSURE
-#define CHECK_ENSURE           1
-#endif
-
-#ifndef CHECK_INSIST
-#define CHECK_INSIST           1
-#endif
-
-#ifndef CHECK_INVARIANT
-#define CHECK_INVARIANT                1
-#endif
-
-#if CHECK_REQUIRE != 0
-#define REQUIRE(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_require, \
-                                      #cond, 0), 0)))
-#define REQUIRE_ERR(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_require, \
-                                      #cond, 1), 0)))
-#else
-#define REQUIRE(cond)          ((void) (cond))
-#define REQUIRE_ERR(cond)      ((void) (cond))
-#endif /* CHECK_REQUIRE */
-
-#if CHECK_ENSURE != 0
-#define ENSURE(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_ensure, \
-                                      #cond, 0), 0)))
-#define ENSURE_ERR(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_ensure, \
-                                      #cond, 1), 0)))
-#else
-#define ENSURE(cond)           ((void) (cond))
-#define ENSURE_ERR(cond)       ((void) (cond))
-#endif /* CHECK_ENSURE */
-
-#if CHECK_INSIST != 0
-#define INSIST(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_insist, \
-                                      #cond, 0), 0)))
-#define INSIST_ERR(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_insist, \
-                                      #cond, 1), 0)))
-#else
-#define INSIST(cond)           ((void) (cond))
-#define INSIST_ERR(cond)       ((void) (cond))
-#endif /* CHECK_INSIST */
-
-#if CHECK_INVARIANT != 0
-#define INVARIANT(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_invariant, \
-                                      #cond, 0), 0)))
-#define INVARIANT_ERR(cond) \
-       ((void) ((cond) || \
-                ((__assertion_failed)(__FILE__, __LINE__, assert_invariant, \
-                                      #cond, 1), 0)))
-#else
-#define INVARIANT(cond)                ((void) (cond))
-#define INVARIANT_ERR(cond)    ((void) (cond))
-#endif /* CHECK_INVARIANT */
-#endif /* ASSERTIONS_H */
-/*! \file */
diff --git a/lib/bind/include/isc/ctl.h b/lib/bind/include/isc/ctl.h
deleted file mode 100644 (file)
index e2ba202..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef ISC_CTL_H
-#define ISC_CTL_H
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: ctl.h,v 1.5 2005/04/27 04:56:17 sra Exp $
- */
-
-/*! \file */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <isc/eventlib.h>
-
-/* Macros. */
-
-#define        CTL_MORE        0x0001  /*%< More will be / should be sent. */
-#define        CTL_EXIT        0x0002  /*%< Close connection after this. */
-#define        CTL_DATA        0x0004  /*%< Go into / this is DATA mode. */
-/* Types. */
-
-struct ctl_cctx;
-struct ctl_sctx;
-struct ctl_sess;
-struct ctl_verb;
-
-enum ctl_severity { ctl_debug, ctl_warning, ctl_error };
-
-typedef void (*ctl_logfunc)(enum ctl_severity, const char *, ...);
-
-typedef void (*ctl_verbfunc)(struct ctl_sctx *, struct ctl_sess *,
-                            const struct ctl_verb *, const char *,
-                            u_int, const void *, void *);
-
-typedef void (*ctl_srvrdone)(struct ctl_sctx *, struct ctl_sess *, void *);
-
-typedef void (*ctl_clntdone)(struct ctl_cctx *, void *, const char *, u_int);
-
-struct ctl_verb {
-       const char *    name;
-       ctl_verbfunc    func;
-       const char *    help;
-};
-
-/* General symbols. */
-
-#define        ctl_logger      __ctl_logger
-
-#ifdef __GNUC__
-void                   ctl_logger(enum ctl_severity, const char *, ...)
-                               __attribute__((__format__(__printf__, 2, 3)));
-#else
-void                   ctl_logger(enum ctl_severity, const char *, ...);
-#endif
-
-/* Client symbols. */
-
-#define        ctl_client      __ctl_client
-#define        ctl_endclient   __ctl_endclient
-#define        ctl_command     __ctl_command
-
-struct ctl_cctx *      ctl_client(evContext, const struct sockaddr *, size_t,
-                                  const struct sockaddr *, size_t,
-                                  ctl_clntdone, void *,
-                                  u_int, ctl_logfunc);
-void                   ctl_endclient(struct ctl_cctx *);
-int                    ctl_command(struct ctl_cctx *, const char *, size_t,
-                                   ctl_clntdone, void *);
-
-/* Server symbols. */
-
-#define        ctl_server      __ctl_server
-#define        ctl_endserver   __ctl_endserver
-#define        ctl_response    __ctl_response
-#define        ctl_sendhelp    __ctl_sendhelp
-#define ctl_getcsctx   __ctl_getcsctx
-#define ctl_setcsctx   __ctl_setcsctx
-
-struct ctl_sctx *      ctl_server(evContext, const struct sockaddr *, size_t,
-                                  const struct ctl_verb *,
-                                  u_int, u_int,
-                                  u_int, int, int,
-                                  ctl_logfunc, void *);
-void                   ctl_endserver(struct ctl_sctx *);
-void                   ctl_response(struct ctl_sess *, u_int,
-                                    const char *, u_int, const void *,
-                                    ctl_srvrdone, void *,
-                                    const char *, size_t);
-void                   ctl_sendhelp(struct ctl_sess *, u_int);
-void *                 ctl_getcsctx(struct ctl_sess *);
-void *                 ctl_setcsctx(struct ctl_sess *, void *);
-
-#endif /*ISC_CTL_H*/
-
-/*! \file */
diff --git a/lib/bind/include/isc/dst.h b/lib/bind/include/isc/dst.h
deleted file mode 100644 (file)
index 90a9e67..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef DST_H
-#define DST_H
-
-#ifndef HAS_DST_KEY
-typedef struct dst_key {
-       char    *dk_key_name;   /*%< name of the key */
-       int     dk_key_size;    /*%< this is the size of the key in bits */
-       int     dk_proto;       /*%< what protocols this key can be used for */
-       int     dk_alg;         /*%< algorithm number from key record */
-       u_int32_t dk_flags;     /*%< and the flags of the public key */
-       u_int16_t dk_id;        /*%< identifier of the key */
-} DST_KEY;
-#endif /* HAS_DST_KEY */
-/*
- * do not taint namespace
- */
-#define        dst_bsafe_init          __dst_bsafe_init
-#define        dst_buffer_to_key       __dst_buffer_to_key
-#define        dst_check_algorithm     __dst_check_algorithm
-#define        dst_compare_keys        __dst_compare_keys
-#define        dst_cylink_init         __dst_cylink_init
-#define        dst_dnskey_to_key       __dst_dnskey_to_key
-#define        dst_eay_dss_init        __dst_eay_dss_init
-#define        dst_free_key            __dst_free_key
-#define        dst_generate_key        __dst_generate_key
-#define        dst_hmac_md5_init       __dst_hmac_md5_init
-#define        dst_init                __dst_init
-#define        dst_key_to_buffer       __dst_key_to_buffer
-#define        dst_key_to_dnskey       __dst_key_to_dnskey
-#define        dst_read_key            __dst_read_key
-#define        dst_rsaref_init         __dst_rsaref_init
-#define        dst_s_build_filename    __dst_s_build_filename
-#define        dst_s_calculate_bits    __dst_s_calculate_bits
-#define        dst_s_conv_bignum_b64_to_u8     __dst_s_conv_bignum_b64_to_u8
-#define        dst_s_conv_bignum_u8_to_b64     __dst_s_conv_bignum_u8_to_b64
-#define        dst_s_dns_key_id        __dst_s_dns_key_id
-#define        dst_s_dump              __dst_s_dump
-#define        dst_s_filename_length   __dst_s_filename_length
-#define        dst_s_fopen             __dst_s_fopen
-#define        dst_s_get_int16         __dst_s_get_int16
-#define        dst_s_get_int32         __dst_s_get_int32
-#define        dst_s_id_calc           __dst_s_id_calc
-#define        dst_s_put_int16         __dst_s_put_int16
-#define        dst_s_put_int32         __dst_s_put_int32
-#define        dst_s_quick_random      __dst_s_quick_random
-#define        dst_s_quick_random_set  __dst_s_quick_random_set
-#define        dst_s_random            __dst_s_random
-#define        dst_s_semi_random       __dst_s_semi_random
-#define        dst_s_verify_str        __dst_s_verify_str
-#define        dst_sig_size            __dst_sig_size
-#define        dst_sign_data           __dst_sign_data
-#define        dst_verify_data         __dst_verify_data
-#define        dst_write_key           __dst_write_key
-
-/* 
- * DST Crypto API defintions 
- */
-void     dst_init(void);
-int      dst_check_algorithm(const int);
-
-
-int dst_sign_data(const int,           /*!<   specifies INIT/UPDATE/FINAL/ALL  */
-                 DST_KEY *,            /*!<   the key to use  */
-                 void **,              /*!<   pointer to state structure  */
-                 const u_char *,       /*!<   data to be signed  */
-                 const int,            /*!<   length of input data  */
-                 u_char *,             /*!<   buffer to write signature to  */
-                 const int);           /*!<   size of output buffer  */
-int dst_verify_data(const int,         /*!<   specifies INIT/UPDATE/FINAL/ALL  */
-                   DST_KEY *,          /*!<   the key to use  */
-                   void **,            /*!<   pointer to state structure  */
-                   const u_char *,     /*!<   data to be verified  */
-                   const int,          /*!<   length of input data  */
-                   const u_char *,     /*!<   buffer containing signature  */
-                   const int);         /*!<   length of signature  */
-DST_KEY *dst_read_key(const char *,    /*!<   name of key  */
-                     const u_int16_t,  /*!<   key tag identifier  */
-                     const int,        /*!<   key algorithm  */
-                     const int);       /*!<   Private/PublicKey wanted */
-int      dst_write_key(const DST_KEY *,        /*!<   key to write out  */
-                      const int);      /*!<   Public/Private  */
-DST_KEY *dst_dnskey_to_key(const char *,       /*!<   KEY record name  */
-                          const u_char *,      /*!<   KEY RDATA  */
-                          const int);          /*!<   size of input buffer */
-int      dst_key_to_dnskey(const DST_KEY *,    /*!<   key to translate  */
-                          u_char *,            /*!<   output buffer  */
-                          const int);          /*!<   size of out_storage */
-DST_KEY *dst_buffer_to_key(const char *,       /*!<   name of the key  */
-                          const int,           /*!<   algorithm  */
-                          const int,           /*!<   dns flags  */
-                          const int,           /*!<   dns protocol  */
-                          const u_char *,      /*!<   key in dns wire fmt  */
-                          const int);          /*!<   size of key  */
-int     dst_key_to_buffer(DST_KEY *, u_char *, int);
-
-DST_KEY *dst_generate_key(const char *,        /*!<   name of new key  */
-                         const int,            /*!<   key algorithm to generate  */
-                         const int,            /*!<   size of new key  */
-                         const int,            /*!<   alg dependent parameter */
-                         const int,            /*!<   key DNS flags  */
-                         const int);           /*!<   key DNS protocol  */
-DST_KEY *dst_free_key(DST_KEY *);
-int      dst_compare_keys(const DST_KEY *, const DST_KEY *);
-
-int    dst_sig_size(DST_KEY *);
-
-
-/* support for dns key tags/ids */
-u_int16_t dst_s_dns_key_id(const u_char *, const int);
-u_int16_t dst_s_id_calc(const u_char *, const int);
-
-/* Used by callers as well as by the library.  */
-#define RAW_KEY_SIZE    8192        /*%< large enough to store any key */
-/* DST_API control flags */
-/* These are used used in functions dst_sign_data and dst_verify_data */
-#define SIG_MODE_INIT          1  /*%< initialize digest */
-#define SIG_MODE_UPDATE                2  /*%< add data to digest */
-#define SIG_MODE_FINAL         4  /*%< generate/verify signature */
-#define SIG_MODE_ALL           (SIG_MODE_INIT|SIG_MODE_UPDATE|SIG_MODE_FINAL)
-
-/* Flags for dst_read_private_key()  */
-#define DST_FORCE_READ         0x1000000
-#define DST_CAN_SIGN           0x010F
-#define DST_NO_AUTHEN          0x8000
-#define DST_EXTEND_FLAG         0x1000
-#define DST_STANDARD           0
-#define DST_PRIVATE             0x2000000
-#define DST_PUBLIC              0x4000000
-#define DST_RAND_SEMI           1
-#define DST_RAND_STD            2
-#define DST_RAND_KEY            3
-#define DST_RAND_DSS            4
-
-
-/* DST algorithm codes */
-#define KEY_RSA                        1
-#define KEY_DH                 2
-#define KEY_DSA                        3
-#define KEY_PRIVATE            254
-#define KEY_EXPAND             255
-#define KEY_HMAC_MD5           157
-#define KEY_HMAC_SHA1          158
-#define UNKNOWN_KEYALG         0
-#define DST_MAX_ALGS            KEY_HMAC_SHA1
-
-/* DST constants to locations in KEY record  changes in new KEY record */
-#define DST_FLAGS_SIZE         2
-#define DST_KEY_PROT           2
-#define DST_KEY_ALG            3
-#define DST_EXT_FLAG            4
-#define DST_KEY_START          4
-
-#ifndef SIGN_F_NOKEY 
-#define SIGN_F_NOKEY           0xC000
-#endif
-
-/* error codes from dst routines */
-#define SIGN_INIT_FAILURE      (-23)
-#define SIGN_UPDATE_FAILURE    (-24)
-#define SIGN_FINAL_FAILURE     (-25)
-#define VERIFY_INIT_FAILURE    (-26)
-#define VERIFY_UPDATE_FAILURE  (-27)
-#define VERIFY_FINAL_FAILURE   (-28)
-#define MISSING_KEY_OR_SIGNATURE (-30)
-#define UNSUPPORTED_KEYALG     (-31)
-
-#endif /* DST_H */
-/*! \file */
diff --git a/lib/bind/include/isc/eventlib.h b/lib/bind/include/isc/eventlib.h
deleted file mode 100644 (file)
index 016769d..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* eventlib.h - exported interfaces for eventlib
- * vix 09sep95 [initial]
- *
- * $Id: eventlib.h,v 1.6 2008/01/23 02:00:56 marka Exp $
- */
-
-#ifndef _EVENTLIB_H
-#define _EVENTLIB_H
-
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/time.h>
-#include <stdio.h>
-
-#include <isc/platform.h>
-
-#ifndef __P
-# define __EVENTLIB_P_DEFINED
-# ifdef __STDC__
-#  define __P(x) x
-# else
-#  define __P(x) ()
-# endif
-#endif
-
-/* In the absence of branded types... */
-typedef struct { void *opaque; } evConnID;
-typedef struct { void *opaque; } evFileID;
-typedef struct { void *opaque; } evStreamID;
-typedef struct { void *opaque; } evTimerID;
-typedef struct { void *opaque; } evWaitID;
-typedef struct { void *opaque; } evContext;
-typedef struct { void *opaque; } evEvent;
-
-#define        evInitID(id) ((id)->opaque = NULL)
-#define        evTestID(id) ((id).opaque != NULL)
-
-typedef void (*evConnFunc)__P((evContext, void *, int, const void *, int,
-                              const void *, int));
-typedef void (*evFileFunc)__P((evContext, void *, int, int));
-typedef        void (*evStreamFunc)__P((evContext, void *, int, int));
-typedef void (*evTimerFunc)__P((evContext, void *,
-                               struct timespec, struct timespec));
-typedef        void (*evWaitFunc)__P((evContext, void *, const void *));
-
-typedef        struct { unsigned char mask[256/8]; } evByteMask;
-#define        EV_BYTEMASK_BYTE(b) ((b) / 8)
-#define        EV_BYTEMASK_MASK(b) (1 << ((b) % 8))
-#define        EV_BYTEMASK_SET(bm, b) \
-       ((bm).mask[EV_BYTEMASK_BYTE(b)] |= EV_BYTEMASK_MASK(b))
-#define        EV_BYTEMASK_CLR(bm, b) \
-       ((bm).mask[EV_BYTEMASK_BYTE(b)] &= ~EV_BYTEMASK_MASK(b))
-#define        EV_BYTEMASK_TST(bm, b) \
-       ((bm).mask[EV_BYTEMASK_BYTE(b)] & EV_BYTEMASK_MASK(b))
-
-#define        EV_POLL         1
-#define        EV_WAIT         2
-#define        EV_NULL         4
-
-#define        EV_READ         1
-#define        EV_WRITE        2
-#define        EV_EXCEPT       4
-
-#define EV_WASNONBLOCKING 8    /* Internal library use. */
-
-/* eventlib.c */
-#define evCreate       __evCreate
-#define evSetDebug     __evSetDebug
-#define evDestroy      __evDestroy
-#define evGetNext      __evGetNext
-#define evDispatch     __evDispatch
-#define evDrop         __evDrop
-#define evMainLoop     __evMainLoop
-#define evHighestFD    __evHighestFD
-#define evGetOption    __evGetOption
-#define evSetOption    __evSetOption
-
-int  evCreate __P((evContext *));
-void evSetDebug __P((evContext, int, FILE *));
-int  evDestroy __P((evContext));
-int  evGetNext __P((evContext, evEvent *, int));
-int  evDispatch __P((evContext, evEvent));
-void evDrop __P((evContext, evEvent));
-int  evMainLoop __P((evContext));
-int  evHighestFD __P((evContext));
-int  evGetOption __P((evContext *, const char *, int *));
-int  evSetOption __P((evContext *, const char *, int));
-
-/* ev_connects.c */
-#define evListen       __evListen
-#define evConnect      __evConnect
-#define evCancelConn   __evCancelConn
-#define evHold         __evHold
-#define evUnhold       __evUnhold
-#define evTryAccept    __evTryAccept
-
-int evListen __P((evContext, int, int, evConnFunc, void *, evConnID *));
-int evConnect __P((evContext, int, const void *, int,
-                  evConnFunc, void *, evConnID *));
-int evCancelConn __P((evContext, evConnID));
-int evHold __P((evContext, evConnID));
-int evUnhold __P((evContext, evConnID));
-int evTryAccept __P((evContext, evConnID, int *));
-
-/* ev_files.c */
-#define evSelectFD     __evSelectFD
-#define evDeselectFD   __evDeselectFD
-
-int evSelectFD __P((evContext, int, int, evFileFunc, void *, evFileID *));
-int evDeselectFD __P((evContext, evFileID));
-
-/* ev_streams.c */
-#define evConsIovec    __evConsIovec
-#define evWrite                __evWrite
-#define evRead         __evRead
-#define evTimeRW       __evTimeRW
-#define evUntimeRW     __evUntimeRW
-#define        evCancelRW      __evCancelRW
-
-struct iovec evConsIovec __P((void *, size_t));
-int evWrite __P((evContext, int, const struct iovec *, int,
-                evStreamFunc func, void *, evStreamID *));
-int evRead __P((evContext, int, const struct iovec *, int,
-               evStreamFunc func, void *, evStreamID *));
-int evTimeRW __P((evContext, evStreamID, evTimerID timer));
-int evUntimeRW __P((evContext, evStreamID));
-int evCancelRW __P((evContext, evStreamID));
-
-/* ev_timers.c */
-#define evConsTime     __evConsTime
-#define evAddTime      __evAddTime
-#define evSubTime      __evSubTime
-#define evCmpTime      __evCmpTime
-#define        evTimeSpec      __evTimeSpec
-#define        evTimeVal       __evTimeVal
-
-#define evNowTime              __evNowTime
-#define evUTCTime              __evUTCTime
-#define evLastEventTime                __evLastEventTime
-#define evSetTimer             __evSetTimer
-#define evClearTimer           __evClearTimer
-#define evConfigTimer          __evConfigTimer
-#define evResetTimer           __evResetTimer
-#define evSetIdleTimer         __evSetIdleTimer
-#define evClearIdleTimer       __evClearIdleTimer
-#define evResetIdleTimer       __evResetIdleTimer
-#define evTouchIdleTimer       __evTouchIdleTimer
-
-struct timespec evConsTime __P((time_t sec, long nsec));
-struct timespec evAddTime __P((struct timespec, struct timespec));
-struct timespec evSubTime __P((struct timespec, struct timespec));
-struct timespec evNowTime __P((void));
-struct timespec evUTCTime __P((void));
-struct timespec evLastEventTime __P((evContext));
-struct timespec evTimeSpec __P((struct timeval));
-struct timeval evTimeVal __P((struct timespec));
-int evCmpTime __P((struct timespec, struct timespec));
-int evSetTimer __P((evContext, evTimerFunc, void *, struct timespec,
-                   struct timespec, evTimerID *));
-int evClearTimer __P((evContext, evTimerID));
-int evConfigTimer __P((evContext, evTimerID, const char *param,
-                     int value));
-int evResetTimer __P((evContext, evTimerID, evTimerFunc, void *,
-                     struct timespec, struct timespec));
-int evSetIdleTimer __P((evContext, evTimerFunc, void *, struct timespec,
-                       evTimerID *));
-int evClearIdleTimer __P((evContext, evTimerID));
-int evResetIdleTimer __P((evContext, evTimerID, evTimerFunc, void *,
-                         struct timespec));
-int evTouchIdleTimer __P((evContext, evTimerID));
-
-/* ev_waits.c */
-#define evWaitFor      __evWaitFor
-#define evDo           __evDo
-#define evUnwait       __evUnwait
-#define evDefer                __evDefer
-
-int evWaitFor __P((evContext, const void *, evWaitFunc, void *, evWaitID *));
-int evDo __P((evContext, const void *));
-int evUnwait __P((evContext, evWaitID));
-int evDefer __P((evContext, evWaitFunc, void *));
-
-#ifdef __EVENTLIB_P_DEFINED
-# undef __P
-#endif
-
-#endif /*_EVENTLIB_H*/
-
-/*! \file */
diff --git a/lib/bind/include/isc/heap.h b/lib/bind/include/isc/heap.h
deleted file mode 100644 (file)
index 384d507..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-typedef int (*heap_higher_priority_func)(void *, void *);
-typedef void (*heap_index_func)(void *, int);
-typedef void (*heap_for_each_func)(void *, void *);
-
-typedef struct heap_context {
-       int array_size;
-       int array_size_increment;
-       int heap_size;
-       void **heap;
-       heap_higher_priority_func higher_priority;
-       heap_index_func index;
-} *heap_context;
-
-#define heap_new       __heap_new
-#define heap_free      __heap_free
-#define heap_insert    __heap_insert
-#define heap_delete    __heap_delete
-#define heap_increased __heap_increased
-#define heap_decreased __heap_decreased
-#define heap_element   __heap_element
-#define heap_for_each  __heap_for_each
-
-heap_context   heap_new(heap_higher_priority_func, heap_index_func, int);
-int            heap_free(heap_context);
-int            heap_insert(heap_context, void *);
-int            heap_delete(heap_context, int);
-int            heap_increased(heap_context, int);
-int            heap_decreased(heap_context, int);
-void *         heap_element(heap_context, int);
-int            heap_for_each(heap_context, heap_for_each_func, void *);
-
-/*! \file */
diff --git a/lib/bind/include/isc/irpmarshall.h b/lib/bind/include/isc/irpmarshall.h
deleted file mode 100644 (file)
index 244b3e3..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irpmarshall.h,v 1.4 2005/04/27 04:56:17 sra Exp $
- */
-
-#ifndef _IRPMARSHALL_H_INCLUDED
-#define _IRPMARSHALL_H_INCLUDED
-
-/* Hide function names */
-#define irp_marshall_gr __irp_marshall_gr
-#define irp_marshall_ho __irp_marshall_ho
-#define irp_marshall_ne __irp_marshall_ne
-#define irp_marshall_ng __irp_marshall_ng
-#define irp_marshall_nw __irp_marshall_nw
-#define irp_marshall_pr __irp_marshall_pr
-#define irp_marshall_pw __irp_marshall_pw
-#define irp_marshall_sv __irp_marshall_sv
-#define irp_unmarshall_gr __irp_unmarshall_gr
-#define irp_unmarshall_ho __irp_unmarshall_ho
-#define irp_unmarshall_ne __irp_unmarshall_ne
-#define irp_unmarshall_ng __irp_unmarshall_ng
-#define irp_unmarshall_nw __irp_unmarshall_nw
-#define irp_unmarshall_pr __irp_unmarshall_pr
-#define irp_unmarshall_pw __irp_unmarshall_pw
-#define irp_unmarshall_sv __irp_unmarshall_sv
-
-#define MAXPADDRSIZE (sizeof "255.255.255.255" + 1)
-#define ADDR_T_STR(x) (x == AF_INET ? "AF_INET" :\
-                      (x == AF_INET6 ? "AF_INET6" : "UNKNOWN"))
-
-/* See comment below on usage */
-int irp_marshall_pw(const struct passwd *, char **, size_t *);
-int irp_unmarshall_pw(struct passwd *, char *);
-int irp_marshall_gr(const struct group *, char **, size_t *);
-int irp_unmarshall_gr(struct group *, char *);
-int irp_marshall_sv(const struct servent *, char **, size_t *);
-int irp_unmarshall_sv(struct servent *, char *);
-int irp_marshall_pr(struct protoent *, char **, size_t *);
-int irp_unmarshall_pr(struct protoent *, char *);
-int irp_marshall_ho(struct hostent *, char **, size_t *);
-int irp_unmarshall_ho(struct hostent *, char *);
-int irp_marshall_ng(const char *, const char *, const char *,
-                   char **, size_t *);
-int irp_unmarshall_ng(const char **, const char **, const char **, char *);
-int irp_marshall_nw(struct nwent *, char **, size_t *);
-int irp_unmarshall_nw(struct nwent *, char *);
-int irp_marshall_ne(struct netent *, char **, size_t *);
-int irp_unmarshall_ne(struct netent *, char *);
-
-/*! \file
- * \brief
- * Functions to marshall and unmarshall various system data structures. We
- * use a printable ascii format that is as close to various system config
- * files as reasonable (e.g. /etc/passwd format).
- *
- * We are not forgiving with unmarhsalling misformatted buffers. In
- * particular whitespace in fields is not ignored. So a formatted password
- * entry "brister  :1364:100:...." will yield a username of "brister   "
- *
- * We potentially do a lot of mallocs to fill fields that are of type
- * (char **) like a hostent h_addr field. Building (for example) the
- * h_addr field and its associated addresses all in one buffer is
- * certainly possible, but not done here.
- *
- * The following description is true for all the marshalling functions:
- *
- * int irp_marshall_XX(struct yyyy *XX, char **buffer, size_t *len);
- *
- * The argument XX (of type struct passwd for example) is marshalled in the
- * buffer pointed at by *BUFFER, which is of length *LEN. Returns 0
- * on success and -1 on failure. Failure will occur if *LEN is
- * smaller than needed.
- *
- * If BUFFER is NULL, then *LEN is set to the size of the buffer
- * needed to marshall the data and no marshalling is actually done.
- *
- * If *BUFFER is NULL, then a buffer large enough will be allocated
- * with memget() and the size allocated will be stored in *LEN. An extra 2
- * bytes will be allocated for the client to append CRLF if wanted. The
- * value of *LEN will include these two bytes.
- *
- * All the marshalling functions produce a buffer with the fields
- * separated by colons (except for the hostent marshalling, which uses '@'
- * to separate fields). Fields that have multiple subfields (like the
- * gr_mem field in struct group) have their subparts separated by
- * commas.
- *
- * int irp_unmarshall_XX(struct YYYYY *XX, char *buffer);
- *
- * The unmashalling functions break apart the buffer and store the
- * values in the struct pointed to by XX. All pointer values inside
- * XX are allocated with malloc. All arrays of pointers have a NULL
- * as the last element.
- */
-
-#endif
diff --git a/lib/bind/include/isc/list.h b/lib/bind/include/isc/list.h
deleted file mode 100644 (file)
index c85c667..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 LIST_H
-#define LIST_H 1
-#include <isc/assertions.h>
-
-#define LIST(type) struct { type *head, *tail; }
-#define INIT_LIST(list) \
-       do { (list).head = NULL; (list).tail = NULL; } while (0)
-
-#define LINK(type) struct { type *prev, *next; }
-#define INIT_LINK_TYPE(elt, link, type) \
-       do { \
-               (elt)->link.prev = (type *)(-1); \
-               (elt)->link.next = (type *)(-1); \
-       } while (0)
-#define INIT_LINK(elt, link) \
-       INIT_LINK_TYPE(elt, link, void)
-#define LINKED(elt, link) ((void *)((elt)->link.prev) != (void *)(-1))
-
-#define HEAD(list) ((list).head)
-#define TAIL(list) ((list).tail)
-#define EMPTY(list) ((list).head == NULL)
-
-#define PREPEND(list, elt, link) \
-       do { \
-               INSIST(!LINKED(elt, link));\
-               if ((list).head != NULL) \
-                       (list).head->link.prev = (elt); \
-               else \
-                       (list).tail = (elt); \
-               (elt)->link.prev = NULL; \
-               (elt)->link.next = (list).head; \
-               (list).head = (elt); \
-       } while (0)
-
-#define APPEND(list, elt, link) \
-       do { \
-               INSIST(!LINKED(elt, link));\
-               if ((list).tail != NULL) \
-                       (list).tail->link.next = (elt); \
-               else \
-                       (list).head = (elt); \
-               (elt)->link.prev = (list).tail; \
-               (elt)->link.next = NULL; \
-               (list).tail = (elt); \
-       } while (0)
-
-#define UNLINK_TYPE(list, elt, link, type) \
-       do { \
-               INSIST(LINKED(elt, link));\
-               if ((elt)->link.next != NULL) \
-                       (elt)->link.next->link.prev = (elt)->link.prev; \
-               else { \
-                       INSIST((list).tail == (elt)); \
-                       (list).tail = (elt)->link.prev; \
-               } \
-               if ((elt)->link.prev != NULL) \
-                       (elt)->link.prev->link.next = (elt)->link.next; \
-               else { \
-                       INSIST((list).head == (elt)); \
-                       (list).head = (elt)->link.next; \
-               } \
-               INIT_LINK_TYPE(elt, link, type); \
-       } while (0)
-#define UNLINK(list, elt, link) \
-       UNLINK_TYPE(list, elt, link, void)
-
-#define PREV(elt, link) ((elt)->link.prev)
-#define NEXT(elt, link) ((elt)->link.next)
-
-#define INSERT_BEFORE(list, before, elt, link) \
-       do { \
-               INSIST(!LINKED(elt, link));\
-               if ((before)->link.prev == NULL) \
-                       PREPEND(list, elt, link); \
-               else { \
-                       (elt)->link.prev = (before)->link.prev; \
-                       (before)->link.prev = (elt); \
-                       (elt)->link.prev->link.next = (elt); \
-                       (elt)->link.next = (before); \
-               } \
-       } while (0)
-
-#define INSERT_AFTER(list, after, elt, link) \
-       do { \
-               INSIST(!LINKED(elt, link));\
-               if ((after)->link.next == NULL) \
-                       APPEND(list, elt, link); \
-               else { \
-                       (elt)->link.next = (after)->link.next; \
-                       (after)->link.next = (elt); \
-                       (elt)->link.next->link.prev = (elt); \
-                       (elt)->link.prev = (after); \
-               } \
-       } while (0)
-
-#define ENQUEUE(list, elt, link) APPEND(list, elt, link)
-#define DEQUEUE(list, elt, link) UNLINK(list, elt, link)
-
-#endif /* LIST_H */
-/*! \file */
diff --git a/lib/bind/include/isc/logging.h b/lib/bind/include/isc/logging.h
deleted file mode 100644 (file)
index c539443..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 LOGGING_H
-#define LOGGING_H
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <unistd.h>
-
-#define log_critical           (-5)
-#define log_error              (-4)
-#define log_warning            (-3)
-#define log_notice             (-2)
-#define log_info               (-1)
-#define log_debug(level)       (level)
-
-typedef enum { log_syslog, log_file, log_null } log_channel_type;
-
-#define LOG_MAX_VERSIONS 99
-
-#define LOG_CLOSE_STREAM               0x0001
-#define LOG_TIMESTAMP                  0x0002
-#define LOG_TRUNCATE                   0x0004
-#define LOG_USE_CONTEXT_LEVEL          0x0008
-#define LOG_PRINT_LEVEL                        0x0010
-#define LOG_REQUIRE_DEBUG              0x0020
-#define LOG_CHANNEL_BROKEN             0x0040
-#define LOG_PRINT_CATEGORY             0x0080
-#define LOG_CHANNEL_OFF                        0x0100
-
-typedef struct log_context *log_context;
-typedef struct log_channel *log_channel;
-
-#define LOG_OPTION_DEBUG               0x01
-#define LOG_OPTION_LEVEL               0x02
-
-#define log_open_stream                __log_open_stream
-#define log_close_stream       __log_close_stream
-#define log_get_stream         __log_get_stream
-#define log_get_filename       __log_get_filename
-#define log_check_channel      __log_check_channel
-#define log_check              __log_check
-#define log_vwrite             __log_vwrite
-#define log_write              __log_write
-#define log_new_context                __log_new_context
-#define log_free_context       __log_free_context
-#define log_add_channel                __log_add_channel
-#define log_remove_channel     __log_remove_channel
-#define log_option             __log_option
-#define log_category_is_active __log_category_is_active
-#define log_new_syslog_channel __log_new_syslog_channel
-#define log_new_file_channel   __log_new_file_channel
-#define log_set_file_owner     __log_set_file_owner
-#define log_new_null_channel   __log_new_null_channel
-#define log_inc_references     __log_inc_references
-#define log_dec_references     __log_dec_references
-#define log_get_channel_type   __log_get_channel_type
-#define log_free_channel       __log_free_channel
-#define log_close_debug_channels       __log_close_debug_channels
-
-FILE *                 log_open_stream(log_channel);
-int                    log_close_stream(log_channel);
-FILE *                 log_get_stream(log_channel);
-char *                 log_get_filename(log_channel);
-int                    log_check_channel(log_context, int, log_channel);
-int                    log_check(log_context, int, int);
-#ifdef __GNUC__
-void                   log_vwrite(log_context, int, int, const char *, 
-                                  va_list args)
-                               __attribute__((__format__(__printf__, 4, 0)));
-void                   log_write(log_context, int, int, const char *, ...)
-                               __attribute__((__format__(__printf__, 4, 5)));
-#else
-void                   log_vwrite(log_context, int, int, const char *, 
-                                  va_list args);
-void                   log_write(log_context, int, int, const char *, ...);
-#endif
-int                    log_new_context(int, char **, log_context *);
-void                   log_free_context(log_context);
-int                    log_add_channel(log_context, int, log_channel);
-int                    log_remove_channel(log_context, int, log_channel);
-int                    log_option(log_context, int, int);
-int                    log_category_is_active(log_context, int);
-log_channel            log_new_syslog_channel(unsigned int, int, int);
-log_channel            log_new_file_channel(unsigned int, int, const char *,
-                                            FILE *, unsigned int,
-                                            unsigned long);
-int                    log_set_file_owner(log_channel, uid_t, gid_t);
-log_channel            log_new_null_channel(void);
-int                    log_inc_references(log_channel);
-int                    log_dec_references(log_channel);
-log_channel_type       log_get_channel_type(log_channel);
-int                    log_free_channel(log_channel);
-void                   log_close_debug_channels(log_context);
-
-#endif /* !LOGGING_H */
-/*! \file */
diff --git a/lib/bind/include/isc/memcluster.h b/lib/bind/include/isc/memcluster.h
deleted file mode 100644 (file)
index 0923deb..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 MEMCLUSTER_H
-#define MEMCLUSTER_H
-
-#include <stdio.h>
-
-#define meminit                __meminit
-#ifdef MEMCLUSTER_DEBUG
-#define memget(s)      __memget_debug(s, __FILE__, __LINE__)
-#define memput(p, s)   __memput_debug(p, s, __FILE__, __LINE__)
-#else /*MEMCLUSTER_DEBUG*/
-#ifdef MEMCLUSTER_RECORD
-#define memget(s)      __memget_record(s, __FILE__, __LINE__)
-#define memput(p, s)   __memput_record(p, s, __FILE__, __LINE__)
-#else /*MEMCLUSTER_RECORD*/
-#define memget         __memget
-#define memput         __memput
-#endif /*MEMCLUSTER_RECORD*/
-#endif /*MEMCLUSTER_DEBUG*/
-#define memstats       __memstats
-#define memactive      __memactive
-
-int    meminit(size_t, size_t);
-void * __memget(size_t);
-void   __memput(void *, size_t);
-void * __memget_debug(size_t, const char *, int);
-void   __memput_debug(void *, size_t, const char *, int);
-void * __memget_record(size_t, const char *, int);
-void   __memput_record(void *, size_t, const char *, int);
-void   memstats(FILE *);
-int    memactive(void);
-
-#endif /* MEMCLUSTER_H */
-/*! \file */
diff --git a/lib/bind/include/isc/misc.h b/lib/bind/include/isc/misc.h
deleted file mode 100644 (file)
index 1b93f19..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: misc.h,v 1.6 2008/02/18 03:49:08 marka Exp $
- */
-
-#ifndef _ISC_MISC_H
-#define _ISC_MISC_H
-
-/*! \file */
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#define        bitncmp         __bitncmp
-/*#define isc_movefile __isc_movefile */
-
-extern int             bitncmp(const void *, const void *, int);
-extern int             isc_movefile(const char *, const char *);
-
-extern int             isc_gethexstring(unsigned char *, size_t, int, FILE *,
-                                        int *);
-extern void            isc_puthexstring(FILE *, const unsigned char *, size_t,
-                                        size_t, size_t, const char *);
-extern void            isc_tohex(const unsigned char *, size_t, char *);
-
-#endif /*_ISC_MISC_H*/
-
-/*! \file */
diff --git a/lib/bind/include/isc/platform.h.in b/lib/bind/include/isc/platform.h.in
deleted file mode 100644 (file)
index 446ceed..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2008  Internet Systems Consortium, Inc. ("ISC")
- *
- * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC 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.3 2008/01/23 02:15:56 tbox Exp $ */
-
-/*! \file */
-
-#ifndef ISC_PLATFORM_H
-#define ISC_PLATFORM_H
-
-/*
- * Define if the OS does not define struct timespec.
- */
-@ISC_PLATFORM_NEEDTIMESPEC@
-#ifdef ISC_PLATFORM_NEEDTIMESPEC
-#include <time.h>               /* For time_t */
-struct timespec {
-       time_t  tv_sec;         /* seconds */
-       long    tv_nsec;        /* nanoseconds */
-};
-#endif
-
-#endif
diff --git a/lib/bind/include/isc/tree.h b/lib/bind/include/isc/tree.h
deleted file mode 100644 (file)
index 96feaca..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* tree.h - declare structures used by tree library
- *
- * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
- * vix 27jun86 [broken out of tree.c]
- *
- * $Id: tree.h,v 1.3 2005/04/27 04:56:18 sra Exp $
- */
-
-
-#ifndef        _TREE_H_INCLUDED
-#define        _TREE_H_INCLUDED
-
-
-#ifndef __P
-# if defined(__STDC__) || defined(__GNUC__)
-#  define __P(x) x
-# else
-#  define __P(x) ()
-# endif
-#endif
-
-/*%
- * tree_t is our package-specific anonymous pointer.
- */
-#if defined(__STDC__) || defined(__GNUC__)
-typedef        void *tree_t;
-#else
-typedef        char *tree_t;
-#endif
-
-/*%
- * Do not taint namespace
- */
-#define        tree_add        __tree_add
-#define        tree_delete     __tree_delete
-#define        tree_init       __tree_init
-#define        tree_mung       __tree_mung
-#define        tree_srch       __tree_srch
-#define        tree_trav       __tree_trav
-
-
-typedef        struct tree_s {
-               tree_t          data;
-               struct tree_s   *left, *right;
-               short           bal;
-       }
-       tree;
-
-
-void   tree_init       __P((tree **));
-tree_t tree_srch       __P((tree **, int (*)(), tree_t));
-tree_t tree_add        __P((tree **, int (*)(), tree_t, void (*)()));
-int    tree_delete     __P((tree **, int (*)(), tree_t, void (*)()));
-int    tree_trav       __P((tree **, int (*)()));
-void   tree_mung       __P((tree **, void (*)()));
-
-
-#endif /* _TREE_H_INCLUDED */
-/*! \file */
diff --git a/lib/bind/include/netdb.h b/lib/bind/include/netdb.h
deleted file mode 100644 (file)
index 35282fd..0000000
+++ /dev/null
@@ -1,582 +0,0 @@
-/*
- * ++Copyright++ 1980, 1983, 1988, 1993
- * -
- * Copyright (c) 1980, 1983, 1988, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * Portions Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by WIDE Project and
- *    its contributors.
- * 4. Neither the name of the project nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * --Copyright--
- */
-
-/*
- *      @(#)netdb.h    8.1 (Berkeley) 6/2/93
- *     $Id: netdb.h,v 1.22 2008/02/28 05:34:17 marka Exp $
- */
-
-#ifndef _NETDB_H_
-#define _NETDB_H_
-
-#include <sys/param.h>
-#include <sys/types.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#endif
-#include <sys/cdefs.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <stdio.h>
-
-#ifndef _PATH_HEQUIV
-#define _PATH_HEQUIV   "/etc/hosts.equiv"
-#endif
-#ifndef _PATH_HOSTS
-#define        _PATH_HOSTS     "/etc/hosts"
-#endif
-#ifndef _PATH_NETWORKS
-#define        _PATH_NETWORKS  "/etc/networks"
-#endif
-#ifndef _PATH_PROTOCOLS
-#define        _PATH_PROTOCOLS "/etc/protocols"
-#endif
-#ifndef _PATH_SERVICES
-#define        _PATH_SERVICES  "/etc/services"
-#endif
-
-#if (__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-#define __h_errno __h_errno_location
-#endif
-__BEGIN_DECLS
-extern int * __h_errno __P((void));
-__END_DECLS
-#if defined(_REENTRANT) || \
-    (__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-#define        h_errno (*__h_errno())
-#else
-extern int h_errno;
-#endif
-
-/*%
- * Structures returned by network data base library.  All addresses are
- * supplied in host order, and returned in network order (suitable for
- * use in system calls).
- */
-struct hostent {
-       char    *h_name;        /*%< official name of host */
-       char    **h_aliases;    /*%< alias list */
-       int     h_addrtype;     /*%< host address type */
-       int     h_length;       /*%< length of address */
-       char    **h_addr_list;  /*%< list of addresses from name server */
-#define        h_addr  h_addr_list[0]  /*%< address, for backward compatiblity */
-};
-
-/*%
- * Assumption here is that a network number
- * fits in an unsigned long -- probably a poor one.
- */
-struct netent {
-       char            *n_name;        /*%< official name of net */
-       char            **n_aliases;    /*%< alias list */
-       int             n_addrtype;     /*%< net address type */
-       unsigned long   n_net;          /*%< network # */
-};
-
-struct servent {
-       char    *s_name;        /*%< official service name */
-       char    **s_aliases;    /*%< alias list */
-       int     s_port;         /*%< port # */
-       char    *s_proto;       /*%< protocol to use */
-};
-
-struct protoent {
-       char    *p_name;        /*%< official protocol name */
-       char    **p_aliases;    /*%< alias list */
-       int     p_proto;        /*%< protocol # */
-};
-
-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 */
-#if defined(sun) && defined(_SOCKLEN_T)
-#ifdef __sparcv9
-       int             _ai_pad;
-#endif
-       socklen_t       ai_addrlen;
-#else
-       size_t          ai_addrlen;     /*%< length of ai_addr */
-#endif
-#ifdef __linux
-       struct sockaddr *ai_addr;       /*%< binary address */
-       char            *ai_canonname;  /*%< canonical name for hostname */
-#else
-       char            *ai_canonname;  /*%< canonical name for hostname */
-       struct sockaddr *ai_addr;       /*%< binary address */
-#endif
-       struct addrinfo *ai_next;       /*%< next structure in linked list */
-};
-
-/*%
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (left in extern int h_errno).
- */
-
-#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()
- */
-#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()
- */
-#define        AI_PASSIVE      0x00000001
-#define        AI_CANONNAME    0x00000002
-#define AI_NUMERICHOST 0x00000004
-#define        AI_MASK         0x00000007
-
-/*%
- * Flag values for getipnodebyname()
- */
-#define AI_V4MAPPED    0x00000008
-#define AI_ALL         0x00000010
-#define AI_ADDRCONFIG  0x00000020
-#define AI_DEFAULT     (AI_V4MAPPED|AI_ADDRCONFIG)
-
-/*%
- * Constants for getnameinfo()
- */
-#define        NI_MAXHOST      1025
-#define        NI_MAXSERV      32
-
-/*%
- * Flag values for getnameinfo()
- */
-#define        NI_NOFQDN       0x00000001
-#define        NI_NUMERICHOST  0x00000002
-#define        NI_NAMEREQD     0x00000004
-#define        NI_NUMERICSERV  0x00000008
-#define        NI_DGRAM        0x00000010
-#define        NI_WITHSCOPEID  0x00000020
-#define NI_NUMERICSCOPE        0x00000040
-
-/*%
- * Scope delimit character
- */
-#define SCOPE_DELIMITER        '%'
-
-
-#ifdef _REENTRANT
-#if defined (__hpux) || defined(__osf__) || defined(_AIX)
-#define        _MAXALIASES     35
-#define        _MAXLINELEN     1024
-#define        _MAXADDRS       35
-#define        _HOSTBUFSIZE    (BUFSIZ + 1)
-
-struct hostent_data {
-       struct in_addr  host_addr;
-       char            *h_addr_ptrs[_MAXADDRS + 1];
-       char            hostaddr[_MAXADDRS];
-       char            hostbuf[_HOSTBUFSIZE];
-       char            *host_aliases[_MAXALIASES];
-       char            *host_addrs[2];
-       FILE            *hostf;
-#ifdef __osf__
-       int             svc_gethostflag;
-       int             svc_gethostbind;
-#endif
-#ifdef __hpux
-       short           _nsw_src;
-       short           _flags;
-       char            *current;
-       int             currentlen;
-#endif
-};
-
-struct  netent_data {
-       FILE    *net_fp;
-#if defined(__osf__) || defined(_AIX)
-       char    line[_MAXLINELEN];
-#endif
-#ifdef __hpux
-       char    line[_MAXLINELEN+1];
-#endif
-       char    *net_aliases[_MAXALIASES];
-#ifdef __osf__
-       int     _net_stayopen;
-       int     svc_getnetflag;
-#endif
-#ifdef __hpux
-       short   _nsw_src;
-       short   _flags;
-       char    *current;
-       int     currentlen;
-#endif
-#ifdef _AIX
-        int     _net_stayopen;
-        char    *current;
-        int     currentlen;
-        void    *_net_reserv1;          /* reserved for future use */
-        void    *_net_reserv2;          /* reserved for future use */
-#endif
-};
-
-struct protoent_data {
-       FILE    *proto_fp;
-#ifdef _AIX
-       int     _proto_stayopen;
-       char    line[_MAXLINELEN];
-#endif
-#ifdef __osf__
-       char    line[1024];
-#endif
-#ifdef __hpux
-       char    line[_MAXLINELEN+1];
-#endif
-       char    *proto_aliases[_MAXALIASES];
-#ifdef __osf__
-       int     _proto_stayopen;
-       int     svc_getprotoflag;
-#endif
-#ifdef __hpux
-       short   _nsw_src;
-       short   _flags;
-       char    *current;
-       int     currentlen;
-#endif
-#ifdef _AIX
-        int     currentlen;
-        char    *current;
-        void    *_proto_reserv1;        /* reserved for future use */
-        void    *_proto_reserv2;        /* reserved for future use */
-#endif
-};
-
-struct servent_data {
-       FILE    *serv_fp;
-#if defined(__osf__) || defined(_AIX)
-       char    line[_MAXLINELEN];
-#endif
-#ifdef __hpux
-       char    line[_MAXLINELEN+1];
-#endif
-       char    *serv_aliases[_MAXALIASES];
-#ifdef __osf__
-       int     _serv_stayopen;
-       int     svc_getservflag;
-#endif
-#ifdef __hpux
-       short   _nsw_src;
-       short   _flags;
-       char    *current;
-       int     currentlen;
-#endif
-#ifdef _AIX
-       int     _serv_stayopen;
-       char     *current;
-       int     currentlen;
-       void    *_serv_reserv1;         /* reserved for future use */
-       void    *_serv_reserv2;         /* reserved for future use */
-#endif
-};
-#endif
-#endif
-__BEGIN_DECLS
-void           endhostent __P((void));
-void           endnetent __P((void));
-void           endprotoent __P((void));
-void           endservent __P((void));
-void           freehostent __P((struct hostent *));
-struct hostent *gethostbyaddr __P((const char *, int, int));
-struct hostent *gethostbyname __P((const char *));
-struct hostent *gethostbyname2 __P((const char *, int));
-struct hostent *gethostent __P((void));
-struct hostent *getipnodebyaddr __P((const void *, size_t, int, int *));
-struct hostent *getipnodebyname __P((const char *, int, int, int *));
-struct netent  *getnetbyaddr __P((unsigned long, int));
-struct netent  *getnetbyname __P((const char *));
-struct netent  *getnetent __P((void));
-struct protoent        *getprotobyname __P((const char *));
-struct protoent        *getprotobynumber __P((int));
-struct protoent        *getprotoent __P((void));
-struct servent *getservbyname __P((const char *, const char *));
-struct servent *getservbyport __P((int, const char *));
-struct servent *getservent __P((void));
-void           herror __P((const char *));
-const char     *hstrerror __P((int));
-void           sethostent __P((int));
-/* void                sethostfile __P((const char *)); */
-void           setnetent __P((int));
-void           setprotoent __P((int));
-void           setservent __P((int));
-int            getaddrinfo __P((const char *, const char *,
-                                const struct addrinfo *, struct addrinfo **));
-int            getnameinfo __P((const struct sockaddr *, size_t, char *,
-                                size_t, char *, size_t, int));
-void           freeaddrinfo __P((struct addrinfo *));
-const char     *gai_strerror __P((int));
-struct hostent  *getipnodebyname __P((const char *, int, int, int *));
-struct hostent *getipnodebyaddr __P((const void *, size_t, int, int *));
-void           freehostent __P((struct hostent *));
-#ifdef __GLIBC__
-int            getnetgrent __P((/* const */ char **, /* const */ char **,
-                                /* const */ char **));
-void           setnetgrent __P((const char *));
-void           endnetgrent __P((void));
-int            innetgr __P((const char *, const char *, const char *,
-                            const char *));
-#endif
-
-#ifdef _REENTRANT
-#if defined(__hpux) || defined(__osf__) || defined(_AIX)
-int            gethostbyaddr_r __P((const char *, int, int, struct hostent *,
-                                       struct hostent_data *));
-int            gethostbyname_r __P((const char *, struct hostent *, 
-                                       struct hostent_data *));
-int            gethostent_r __P((struct hostent *, struct hostent_data *));
-#if defined(_AIX)
-void           sethostent_r __P((int, struct hostent_data *));
-#else
-int            sethostent_r __P((int, struct hostent_data *));
-#endif 
-#if defined(__hpux)
-int            endhostent_r __P((struct hostent_data *));
-#else
-void           endhostent_r __P((struct hostent_data *));
-#endif
-
-#if defined(__hpux) || defined(__osf__)
-int            getnetbyaddr_r __P((int, int,
-                               struct netent *, struct netent_data *));
-#else
-int            getnetbyaddr_r __P((long, int,
-                               struct netent *, struct netent_data *));
-#endif
-int            getnetbyname_r __P((const char *,
-                               struct netent *, struct netent_data *));
-int            getnetent_r __P((struct netent *, struct netent_data *));
-int            setnetent_r __P((int, struct netent_data *));
-#ifdef __hpux
-int            endnetent_r __P((struct netent_data *buffer));
-#else
-void           endnetent_r __P((struct netent_data *buffer));
-#endif
-
-int            getprotobyname_r __P((const char *,
-                               struct protoent *, struct protoent_data *));
-int            getprotobynumber_r __P((int,
-                               struct protoent *, struct protoent_data *));
-int            getprotoent_r __P((struct protoent *, struct protoent_data *));
-int            setprotoent_r __P((int, struct protoent_data *));
-#ifdef __hpux
-int            endprotoent_r __P((struct protoent_data *));
-#else
-void           endprotoent_r __P((struct protoent_data *));
-#endif
-
-int            getservbyname_r __P((const char *, const char *,
-                               struct servent *, struct servent_data *));
-int            getservbyport_r __P((int, const char *,
-                               struct servent *, struct servent_data *));
-int            getservent_r __P((struct servent *, struct servent_data *));
-int            setservent_r __P((int, struct servent_data *));
-#ifdef __hpux
-int            endservent_r __P((struct servent_data *));
-#else
-void           endservent_r __P((struct servent_data *));
-#endif
-#ifdef _AIX
-int            setnetgrent_r __P((char *, void **));
-void           endnetgrent_r __P((void **));
-/*
- * Note: AIX's netdb.h declares innetgr_r() as: 
- *     int innetgr_r(char *, char *, char *, char *, struct innetgr_data *);
- */
-int            innetgr_r __P((const char *, const char *, const char *,
-                              const char *));
-#endif
-#else
- /* defined(sun) || defined(bsdi) */
-#if defined(__GLIBC__) || defined(__FreeBSD__) && (__FreeBSD_version + 0 >= 601103)
-int gethostbyaddr_r __P((const char *, int, int, struct hostent *,
-                        char *, size_t, struct hostent **, int *));
-int gethostbyname_r __P((const char *, struct hostent *,
-                       char *, size_t, struct hostent **, int *));
-int gethostent_r __P((struct hostent *, char *, size_t,
-                        struct hostent **, int *));
-#else
-struct hostent *gethostbyaddr_r __P((const char *, int, int, struct hostent *,
-                                       char *, int, int *));
-struct hostent *gethostbyname_r __P((const char *, struct hostent *,
-                                       char *, int, int *));
-struct hostent *gethostent_r __P((struct hostent *, char *, int, int *));
-#endif
-void           sethostent_r __P((int));
-void           endhostent_r __P((void));
-
-#if defined(__GLIBC__) || defined(__FreeBSD__) && (__FreeBSD_version + 0 >= 601103)
-int getnetbyname_r __P((const char *, struct netent *,
-                       char *, size_t, struct netent **, int*));
-int getnetbyaddr_r __P((unsigned long int, int, struct netent *,
-                       char *, size_t, struct netent **, int*));
-int getnetent_r __P((struct netent *, char *, size_t, struct netent **, int*));
-#else
-struct netent  *getnetbyname_r __P((const char *, struct netent *,
-                                       char *, int));
-struct netent  *getnetbyaddr_r __P((long, int, struct netent *,
-                                       char *, int));
-struct netent  *getnetent_r __P((struct netent *, char *, int));
-#endif
-void           setnetent_r __P((int));
-void           endnetent_r __P((void));
-
-#if defined(__GLIBC__) || defined(__FreeBSD__) && (__FreeBSD_version + 0 >= 601103)
-int getprotobyname_r __P((const char *, struct protoent *, char *,
-                         size_t, struct protoent **));
-int getprotobynumber_r __P((int, struct protoent *, char *, size_t,
-                           struct protoent **));
-int getprotoent_r __P((struct protoent *, char *, size_t, struct protoent **));
-#else
-struct protoent        *getprotobyname_r __P((const char *,
-                               struct protoent *, char *, int));
-struct protoent        *getprotobynumber_r __P((int,
-                               struct protoent *, char *, int));
-struct protoent        *getprotoent_r __P((struct protoent *, char *, int));
-#endif
-void           setprotoent_r __P((int));
-void           endprotoent_r __P((void));
-
-#if defined(__GLIBC__) || defined(__FreeBSD__) && (__FreeBSD_version + 0 >= 601103)
-int getservbyname_r __P((const char *name, const char *,
-                        struct servent *, char *, size_t, struct servent **));
-int getservbyport_r __P((int port, const char *,
-                        struct servent *, char *, size_t, struct servent **));
-int getservent_r __P((struct servent *, char *, size_t, struct servent **));
-#else
-struct servent *getservbyname_r __P((const char *name, const char *,
-                                       struct servent *, char *, int));
-struct servent *getservbyport_r __P((int port, const char *,
-                                       struct servent *, char *, int));
-struct servent *getservent_r __P((struct servent *, char *, int));
-#endif
-void           setservent_r __P((int));
-void           endservent_r __P((void));
-
-#ifdef __GLIBC__
-int            getnetgrent_r __P((char **, char **, char **, char *, size_t));
-#endif
-
-#endif
-#endif
-__END_DECLS
-
-/* This is nec'y to make this include file properly replace the sun version. */
-#ifdef sun
-#ifdef __GNU_LIBRARY__
-#include <rpc/netdb.h>
-#else
-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  *getrpcbyname(), *getrpcbynumber(), *getrpcent();
-#endif /* __GNU_LIBRARY__ */
-#endif /* sun */
-#endif /* !_NETDB_H_ */
-/*! \file */
diff --git a/lib/bind/include/netgroup.h b/lib/bind/include/netgroup.h
deleted file mode 100644 (file)
index e4be459..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef netgroup_h
-#define netgroup_h
-#ifndef __GLIBC__
-
-/*
- * The standard is crazy.  These values "belong" to getnetgrent() and
- * shouldn't be altered by the caller.
- */
-int getnetgrent __P((/* const */ char **, /* const */ char **,
-                    /* const */ char **));
-
-int getnetgrent_r __P((char **, char **, char **, char *, int));
-
-void endnetgrent __P((void));
-
-#ifdef __osf__
-int innetgr __P((char *, char *, char *, char *));
-void setnetgrent __P((char *));
-#else
-void setnetgrent __P((const char *));
-int innetgr __P((const char *, const char *, const char *, const char *));
-#endif
-#endif
-#endif
-
-/*! \file */
diff --git a/lib/bind/include/res_update.h b/lib/bind/include/res_update.h
deleted file mode 100644 (file)
index d6cbabc..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by Internet Software Consortium, Inc.
- *
- * 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: res_update.h,v 1.3 2005/04/27 04:56:15 sra Exp $
- */
-
-#ifndef __RES_UPDATE_H
-#define __RES_UPDATE_H
-
-/*! \file */
-
-#include <sys/types.h>
-#include <arpa/nameser.h>
-#include <isc/list.h>
-#include <resolv.h>
-
-/*%
- * This RR-like structure is particular to UPDATE.
- */
-struct ns_updrec {
-       LINK(struct ns_updrec) r_link, r_glink;
-       ns_sect         r_section;      /*%< ZONE/PREREQUISITE/UPDATE */
-       char *          r_dname;        /*%< owner of the RR */
-       ns_class        r_class;        /*%< class number */
-       ns_type         r_type;         /*%< type number */
-       u_int32_t       r_ttl;          /*%< time to live */
-       u_char *        r_data;         /*%< rdata fields as text string */
-       u_int           r_size;         /*%< size of r_data field */
-       int             r_opcode;       /*%< type of operation */
-       /* following fields for private use by the resolver/server routines */
-       struct databuf *r_dp;           /*%< databuf to process */
-       struct databuf *r_deldp;        /*%< databuf's deleted/overwritten */
-       u_int           r_zone;         /*%< zone number on server */
-};
-typedef struct ns_updrec ns_updrec;
-typedef        LIST(ns_updrec) ns_updque;
-
-#define res_mkupdate           __res_mkupdate
-#define res_update             __res_update
-#define res_mkupdrec           __res_mkupdrec
-#define res_freeupdrec         __res_freeupdrec
-#define res_nmkupdate          __res_nmkupdate
-#define res_nupdate            __res_nupdate
-
-int            res_mkupdate __P((ns_updrec *, u_char *, int));
-int            res_update __P((ns_updrec *));
-ns_updrec *    res_mkupdrec __P((int, const char *, u_int, u_int, u_long));
-void           res_freeupdrec __P((ns_updrec *));
-int            res_nmkupdate __P((res_state, ns_updrec *, u_char *, int));
-int            res_nupdate __P((res_state, ns_updrec *, ns_tsig_key *));
-
-#endif /*__RES_UPDATE_H*/
-
-/*! \file */
diff --git a/lib/bind/include/resolv.h b/lib/bind/include/resolv.h
deleted file mode 100644 (file)
index 5baed6c..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (c) 1983, 1987, 1989
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*%
- *     @(#)resolv.h    8.1 (Berkeley) 6/2/93
- *     $Id: resolv.h,v 1.24 2008/04/03 02:01:08 marka Exp $
- */
-
-#ifndef _RESOLV_H_
-#define        _RESOLV_H_
-
-#include <sys/param.h>
-#if (!defined(BSD)) || (BSD < 199306)
-# include <sys/bitypes.h>
-#else
-# include <sys/types.h>
-#endif
-#include <sys/cdefs.h>
-#include <sys/socket.h>
-#include <stdio.h>
-#include <arpa/nameser.h>
-
-/*%
- * Revision information.  This is the release date in YYYYMMDD format.
- * It can change every day so the right thing to do with it is use it
- * in preprocessor commands such as "#if (__RES > 19931104)".  Do not
- * compare for equality; rather, use it to determine whether your resolver
- * is new enough to contain a certain feature.
- */
-
-#define        __RES   20030124
-
-/*%
- * This used to be defined in res_query.c, now it's in herror.c.
- * [XXX no it's not.  It's in irs/irs_data.c]
- * It was
- * never extern'd by any *.h file before it was placed here.  For thread
- * aware programs, the last h_errno value set is stored in res->h_errno.
- *
- * XXX:        There doesn't seem to be a good reason for exposing RES_SET_H_ERRNO
- *     (and __h_errno_set) to the public via <resolv.h>.
- * XXX:        __h_errno_set is really part of IRS, not part of the resolver.
- *     If somebody wants to build and use a resolver that doesn't use IRS,
- *     what do they do?  Perhaps something like
- *             #ifdef WANT_IRS
- *             # define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x)
- *             #else
- *             # define RES_SET_H_ERRNO(r,x) (h_errno = (r)->res_h_errno = (x))
- *             #endif
- */
-
-#define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x)
-struct __res_state; /*%< forward */
-__BEGIN_DECLS
-void __h_errno_set(struct __res_state *res, int err);
-__END_DECLS
-
-/*%
- * Resolver configuration file.
- * Normally not present, but may contain the address of the
- * initial name server(s) to query and the domain search list.
- */
-
-#ifndef _PATH_RESCONF
-#define _PATH_RESCONF        "/etc/resolv.conf"
-#endif
-
-typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error }
-       res_sendhookact;
-
-#ifndef __PMT
-#if defined(__STDC__) || defined(__cplusplus)
-#define __PMT(args) args
-#else
-#define __PMT(args) ()
-#endif
-#endif
-
-typedef res_sendhookact (*res_send_qhook)__PMT((struct sockaddr * const *,
-                                               const u_char **, int *,
-                                               u_char *, int, int *));
-
-typedef res_sendhookact (*res_send_rhook)__PMT((const struct sockaddr *,
-                                               const u_char *, int, u_char *,
-                                               int, int *));
-
-struct res_sym {
-       int             number;    /*%< Identifying number, like T_MX */
-       const char *    name;      /*%< Its symbolic name, like "MX" */
-       const char *    humanname; /*%< Its fun name, like "mail exchanger" */
-};
-
-/*%
- * Global defines and variables for resolver stub.
- */
-#define        MAXNS                   3       /*%< max # name servers we'll track */
-#define        MAXDFLSRCH              3       /*%< # default domain levels to try */
-#define        MAXDNSRCH               6       /*%< max # domains in search path */
-#define        LOCALDOMAINPARTS        2       /*%< min levels in name that is "local" */
-#define        RES_TIMEOUT             5       /*%< min. seconds between retries */
-#define        MAXRESOLVSORT           10      /*%< number of net to sort on */
-#define        RES_MAXNDOTS            15      /*%< should reflect bit field size */
-#define        RES_MAXRETRANS          30      /*%< only for resolv.conf/RES_OPTIONS */
-#define        RES_MAXRETRY            5       /*%< only for resolv.conf/RES_OPTIONS */
-#define        RES_DFLRETRY            2       /*%< Default #/tries. */
-#define        RES_MAXTIME             65535   /*%< Infinity, in milliseconds. */
-struct __res_state_ext;
-
-struct __res_state {
-       int     retrans;                /*%< retransmission time interval */
-       int     retry;                  /*%< number of times to retransmit */
-#ifdef sun
-       u_int   options;                /*%< option flags - see below. */
-#else
-       u_long  options;                /*%< option flags - see below. */
-#endif
-       int     nscount;                /*%< number of name servers */
-       struct sockaddr_in
-               nsaddr_list[MAXNS];     /*%< address of name server */
-#define        nsaddr  nsaddr_list[0]          /*%< for backward compatibility */
-       u_short id;                     /*%< current message id */
-       char    *dnsrch[MAXDNSRCH+1];   /*%< components of domain to search */
-       char    defdname[256];          /*%< default domain (deprecated) */
-#ifdef sun
-       u_int   pfcode;                 /*%< RES_PRF_ flags - see below. */
-#else
-       u_long  pfcode;                 /*%< RES_PRF_ flags - see below. */
-#endif
-       unsigned ndots:4;               /*%< threshold for initial abs. query */
-       unsigned nsort:4;               /*%< number of elements in sort_list[] */
-       char    unused[3];
-       struct {
-               struct in_addr  addr;
-               u_int32_t       mask;
-       } sort_list[MAXRESOLVSORT];
-       res_send_qhook qhook;           /*%< query hook */
-       res_send_rhook rhook;           /*%< response hook */
-       int     res_h_errno;            /*%< last one set for this context */
-       int     _vcsock;                /*%< PRIVATE: for res_send VC i/o */
-       u_int   _flags;                 /*%< PRIVATE: see below */
-       u_int   _pad;                   /*%< make _u 64 bit aligned */
-       union {
-               /* On an 32-bit arch this means 512b total. */
-               char    pad[72 - 4*sizeof (int) - 2*sizeof (void *)];
-               struct {
-                       u_int16_t               nscount;
-                       u_int16_t               nstimes[MAXNS]; /*%< ms. */
-                       int                     nssocks[MAXNS];
-                       struct __res_state_ext *ext;    /*%< extention for IPv6 */
-               } _ext;
-       } _u;
-};
-
-typedef struct __res_state *res_state;
-
-union res_sockaddr_union {
-       struct sockaddr_in      sin;
-#ifdef IN6ADDR_ANY_INIT
-       struct sockaddr_in6     sin6;
-#endif
-#ifdef ISC_ALIGN64
-       int64_t                 __align64;      /*%< 64bit alignment */
-#else
-       int32_t                 __align32;      /*%< 32bit alignment */
-#endif
-       char                    __space[128];   /*%< max size */
-};
-
-/*%
- * Resolver flags (used to be discrete per-module statics ints).
- */
-#define        RES_F_VC        0x00000001      /*%< socket is TCP */
-#define        RES_F_CONN      0x00000002      /*%< socket is connected */
-#define        RES_F_EDNS0ERR  0x00000004      /*%< EDNS0 caused errors */
-#define        RES_F__UNUSED   0x00000008      /*%< (unused) */
-#define        RES_F_LASTMASK  0x000000F0      /*%< ordinal server of last res_nsend */
-#define        RES_F_LASTSHIFT 4               /*%< bit position of LASTMASK "flag" */
-#define        RES_GETLAST(res) (((res)._flags & RES_F_LASTMASK) >> RES_F_LASTSHIFT)
-
-/* res_findzonecut2() options */
-#define        RES_EXHAUSTIVE  0x00000001      /*%< always do all queries */
-#define        RES_IPV4ONLY    0x00000002      /*%< IPv4 only */
-#define        RES_IPV6ONLY    0x00000004      /*%< IPv6 only */
-
-/*%
- * Resolver options (keep these in synch with res_debug.c, please)
- */
-#define RES_INIT       0x00000001      /*%< address initialized */
-#define RES_DEBUG      0x00000002      /*%< print debug messages */
-#define RES_AAONLY     0x00000004      /*%< authoritative answers only (!IMPL)*/
-#define RES_USEVC      0x00000008      /*%< use virtual circuit */
-#define RES_PRIMARY    0x00000010      /*%< query primary server only (!IMPL) */
-#define RES_IGNTC      0x00000020      /*%< ignore trucation errors */
-#define RES_RECURSE    0x00000040      /*%< recursion desired */
-#define RES_DEFNAMES   0x00000080      /*%< use default domain name */
-#define RES_STAYOPEN   0x00000100      /*%< Keep TCP socket open */
-#define RES_DNSRCH     0x00000200      /*%< search up local domain tree */
-#define        RES_INSECURE1   0x00000400      /*%< type 1 security disabled */
-#define        RES_INSECURE2   0x00000800      /*%< type 2 security disabled */
-#define        RES_NOALIASES   0x00001000      /*%< shuts off HOSTALIASES feature */
-#define        RES_USE_INET6   0x00002000      /*%< use/map IPv6 in gethostbyname() */
-#define RES_ROTATE     0x00004000      /*%< rotate ns list after each query */
-#define        RES_NOCHECKNAME 0x00008000      /*%< do not check names for sanity. */
-#define        RES_KEEPTSIG    0x00010000      /*%< do not strip TSIG records */
-#define        RES_BLAST       0x00020000      /*%< blast all recursive servers */
-#define RES_NSID       0x00040000      /*%< request name server ID */
-#define RES_NOTLDQUERY 0x00100000      /*%< don't unqualified name as a tld */
-#define RES_USE_DNSSEC 0x00200000      /*%< use DNSSEC using OK bit in OPT */
-/* #define RES_DEBUG2  0x00400000 */   /* nslookup internal */
-/* KAME extensions: use higher bit to avoid conflict with ISC use */
-#define RES_USE_DNAME  0x10000000      /*%< use DNAME */
-#define RES_USE_EDNS0  0x40000000      /*%< use EDNS0 if configured */
-#define RES_NO_NIBBLE2 0x80000000      /*%< disable alternate nibble lookup */
-
-#define RES_DEFAULT    (RES_RECURSE | RES_DEFNAMES | \
-                        RES_DNSRCH | RES_NO_NIBBLE2)
-
-/*%
- * Resolver "pfcode" values.  Used by dig.
- */
-#define RES_PRF_STATS  0x00000001
-#define RES_PRF_UPDATE 0x00000002
-#define RES_PRF_CLASS   0x00000004
-#define RES_PRF_CMD    0x00000008
-#define RES_PRF_QUES   0x00000010
-#define RES_PRF_ANS    0x00000020
-#define RES_PRF_AUTH   0x00000040
-#define RES_PRF_ADD    0x00000080
-#define RES_PRF_HEAD1  0x00000100
-#define RES_PRF_HEAD2  0x00000200
-#define RES_PRF_TTLID  0x00000400
-#define RES_PRF_HEADX  0x00000800
-#define RES_PRF_QUERY  0x00001000
-#define RES_PRF_REPLY  0x00002000
-#define RES_PRF_INIT   0x00004000
-#define RES_PRF_TRUNC  0x00008000
-/*                     0x00010000      */
-
-/* Things involving an internal (static) resolver context. */
-#ifdef _REENTRANT
-__BEGIN_DECLS
-extern struct __res_state *__res_state(void);
-__END_DECLS
-#define _res (*__res_state())
-#else
-#ifdef __linux
-__BEGIN_DECLS
-extern struct __res_state * __res_state(void);
-__END_DECLS
-#endif
-#ifndef __BIND_NOSTATIC
-extern struct __res_state _res;
-#endif
-#endif
-
-#ifndef __BIND_NOSTATIC
-#define fp_nquery              __fp_nquery
-#define fp_query               __fp_query
-#define hostalias              __hostalias
-#define p_query                        __p_query
-#define res_close              __res_close
-#define res_init               __res_init
-#define res_isourserver                __res_isourserver
-#define res_mkquery            __res_mkquery
-#define res_query              __res_query
-#define res_querydomain                __res_querydomain
-#define res_search             __res_search
-#define res_send               __res_send
-#define res_sendsigned         __res_sendsigned
-
-__BEGIN_DECLS
-void           fp_nquery __P((const u_char *, int, FILE *));
-void           fp_query __P((const u_char *, FILE *));
-const char *   hostalias __P((const char *));
-void           p_query __P((const u_char *));
-void           res_close __P((void));
-int            res_init __P((void));
-int            res_isourserver __P((const struct sockaddr_in *));
-int            res_mkquery __P((int, const char *, int, int, const u_char *,
-                                int, const u_char *, u_char *, int));
-int            res_query __P((const char *, int, int, u_char *, int));
-int            res_querydomain __P((const char *, const char *, int, int,
-                                    u_char *, int));
-int            res_search __P((const char *, int, int, u_char *, int));
-int            res_send __P((const u_char *, int, u_char *, int));
-int            res_sendsigned __P((const u_char *, int, ns_tsig_key *,
-                                   u_char *, int));
-__END_DECLS
-#endif
-
-#if !defined(SHARED_LIBBIND) || defined(LIB)
-/*
- * If libbind is a shared object (well, DLL anyway)
- * these externs break the linker when resolv.h is 
- * included by a lib client (like named)
- * Make them go away if a client is including this
- *
- */
-extern const struct res_sym __p_key_syms[];
-extern const struct res_sym __p_cert_syms[];
-extern const struct res_sym __p_class_syms[];
-extern const struct res_sym __p_type_syms[];
-extern const struct res_sym __p_rcode_syms[];
-#endif /* SHARED_LIBBIND */
-
-#define b64_ntop               __b64_ntop
-#define b64_pton               __b64_pton
-#define dn_comp                        __dn_comp
-#define dn_count_labels                __dn_count_labels
-#define dn_expand              __dn_expand
-#define dn_skipname            __dn_skipname
-#define fp_resstat             __fp_resstat
-#define loc_aton               __loc_aton
-#define loc_ntoa               __loc_ntoa
-#define p_cdname               __p_cdname
-#define p_cdnname              __p_cdnname
-#define p_class                        __p_class
-#define p_fqname               __p_fqname
-#define p_fqnname              __p_fqnname
-#define p_option               __p_option
-#define p_secstodate           __p_secstodate
-#define p_section              __p_section
-#define p_time                 __p_time
-#define p_type                 __p_type
-#define p_rcode                        __p_rcode
-#define p_sockun               __p_sockun
-#define putlong                        __putlong
-#define putshort               __putshort
-#define res_dnok               __res_dnok
-#define res_findzonecut                __res_findzonecut
-#define res_findzonecut2       __res_findzonecut2
-#define res_hnok               __res_hnok
-#define res_hostalias          __res_hostalias
-#define res_mailok             __res_mailok
-#define res_nameinquery                __res_nameinquery
-#define res_nclose             __res_nclose
-#define res_ninit              __res_ninit
-#define res_nmkquery           __res_nmkquery
-#define res_pquery             __res_pquery
-#define res_nquery             __res_nquery
-#define res_nquerydomain       __res_nquerydomain
-#define res_nsearch            __res_nsearch
-#define res_nsend              __res_nsend
-#define res_nsendsigned                __res_nsendsigned
-#define res_nisourserver       __res_nisourserver
-#define res_ownok              __res_ownok
-#define res_queriesmatch       __res_queriesmatch
-#define res_randomid           __res_randomid
-#define sym_ntop               __sym_ntop
-#define sym_ntos               __sym_ntos
-#define sym_ston               __sym_ston
-#define res_nopt               __res_nopt
-#define res_nopt_rdata         __res_nopt_rdata
-#define res_ndestroy           __res_ndestroy
-#define        res_nametoclass         __res_nametoclass
-#define        res_nametotype          __res_nametotype
-#define        res_setservers          __res_setservers
-#define        res_getservers          __res_getservers
-#define        res_buildprotolist      __res_buildprotolist
-#define        res_destroyprotolist    __res_destroyprotolist
-#define        res_destroyservicelist  __res_destroyservicelist
-#define        res_get_nibblesuffix    __res_get_nibblesuffix
-#define        res_get_nibblesuffix2   __res_get_nibblesuffix2
-#define        res_ourserver_p         __res_ourserver_p
-#define        res_protocolname        __res_protocolname
-#define        res_protocolnumber      __res_protocolnumber
-#define        res_send_setqhook       __res_send_setqhook
-#define        res_send_setrhook       __res_send_setrhook
-#define        res_servicename         __res_servicename
-#define        res_servicenumber       __res_servicenumber
-__BEGIN_DECLS
-int            res_hnok __P((const char *));
-int            res_ownok __P((const char *));
-int            res_mailok __P((const char *));
-int            res_dnok __P((const char *));
-int            sym_ston __P((const struct res_sym *, const char *, int *));
-const char *   sym_ntos __P((const struct res_sym *, int, int *));
-const char *   sym_ntop __P((const struct res_sym *, int, int *));
-int            b64_ntop __P((u_char const *, size_t, char *, size_t));
-int            b64_pton __P((char const *, u_char *, size_t));
-int            loc_aton __P((const char *, u_char *));
-const char *   loc_ntoa __P((const u_char *, char *));
-int            dn_skipname __P((const u_char *, const u_char *));
-void           putlong __P((u_int32_t, u_char *));
-void           putshort __P((u_int16_t, u_char *));
-#ifndef __ultrix__
-u_int16_t      _getshort __P((const u_char *));
-u_int32_t      _getlong __P((const u_char *));
-#endif
-const char *   p_class __P((int));
-const char *   p_time __P((u_int32_t));
-const char *   p_type __P((int));
-const char *   p_rcode __P((int));
-const char *   p_sockun __P((union res_sockaddr_union, char *, size_t));
-const u_char * p_cdnname __P((const u_char *, const u_char *, int, FILE *));
-const u_char * p_cdname __P((const u_char *, const u_char *, FILE *));
-const u_char * p_fqnname __P((const u_char *, const u_char *,
-                              int, char *, int));
-const u_char * p_fqname __P((const u_char *, const u_char *, FILE *));
-const char *   p_option __P((u_long));
-char *         p_secstodate __P((u_long));
-int            dn_count_labels __P((const char *));
-int            dn_comp __P((const char *, u_char *, int,
-                            u_char **, u_char **));
-int            dn_expand __P((const u_char *, const u_char *, const u_char *,
-                              char *, int));
-u_int          res_randomid __P((void));
-int            res_nameinquery __P((const char *, int, int, const u_char *,
-                                    const u_char *));
-int            res_queriesmatch __P((const u_char *, const u_char *,
-                                     const u_char *, const u_char *));
-const char *   p_section __P((int, int));
-/* Things involving a resolver context. */
-int            res_ninit __P((res_state));
-int            res_nisourserver __P((const res_state,
-                                     const struct sockaddr_in *));
-void           fp_resstat __P((const res_state, FILE *));
-void           res_pquery __P((const res_state, const u_char *, int, FILE *));
-const char *   res_hostalias __P((const res_state, const char *,
-                                  char *, size_t));
-int            res_nquery __P((res_state, const char *, int, int,
-                               u_char *, int));
-int            res_nsearch __P((res_state, const char *, int, int, u_char *,
-                                int));
-int            res_nquerydomain __P((res_state, const char *, const char *,
-                                     int, int, u_char *, int));
-int            res_nmkquery __P((res_state, int, const char *, int, int,
-                                 const u_char *, int, const u_char *,
-                                 u_char *, int));
-int            res_nsend __P((res_state, const u_char *, int, u_char *, int));
-int            res_nsendsigned __P((res_state, const u_char *, int,
-                                    ns_tsig_key *, u_char *, int));
-int            res_findzonecut __P((res_state, const char *, ns_class, int,
-                                    char *, size_t, struct in_addr *, int));
-int            res_findzonecut2 __P((res_state, const char *, ns_class, int,
-                                     char *, size_t,
-                                     union res_sockaddr_union *, int));
-void           res_nclose __P((res_state));
-int            res_nopt __P((res_state, int, u_char *, int, int));
-int            res_nopt_rdata __P((res_state, int, u_char *, int, u_char *,
-                                   u_short, u_short, u_char *));
-void           res_send_setqhook __P((res_send_qhook));
-void           res_send_setrhook __P((res_send_rhook));
-int            __res_vinit __P((res_state, int));
-void           res_destroyservicelist __P((void));
-const char *   res_servicename __P((u_int16_t, const char *));
-const char *   res_protocolname __P((int));
-void           res_destroyprotolist __P((void));
-void           res_buildprotolist __P((void));
-const char *   res_get_nibblesuffix __P((res_state));
-const char *   res_get_nibblesuffix2 __P((res_state));
-void           res_ndestroy __P((res_state));
-u_int16_t      res_nametoclass __P((const char *, int *));
-u_int16_t      res_nametotype __P((const char *, int *));
-void           res_setservers __P((res_state,
-                                   const union res_sockaddr_union *, int));
-int            res_getservers __P((res_state,
-                                   union res_sockaddr_union *, int));
-__END_DECLS
-
-#endif /* !_RESOLV_H_ */
-/*! \file */
diff --git a/lib/bind/include/resolv_mt.h b/lib/bind/include/resolv_mt.h
deleted file mode 100644 (file)
index 27963a1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef _RESOLV_MT_H
-#define _RESOLV_MT_H
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-/* Access functions for the libresolv private interface */
-
-int    __res_enable_mt(void);
-int    __res_disable_mt(void);
-
-/* Per-thread context */
-
-typedef struct {
-int    no_hosts_fallback_private;
-int    retry_save;
-int    retry_private;
-char   inet_nsap_ntoa_tmpbuf[255*3];
-char   sym_ntos_unname[20];
-char   sym_ntop_unname[20];
-char   p_option_nbuf[40];
-char   p_time_nbuf[40];
-char   precsize_ntoa_retbuf[sizeof "90000000.00"];
-char   loc_ntoa_tmpbuf[sizeof
-"1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"];
-char   p_secstodate_output[15];
-} mtctxres_t;
-
-/* Thread-specific data (TSD) */
-
-mtctxres_t     *___mtctxres(void);
-#define mtctxres       (___mtctxres())
-
-/* Various static data that should be TSD */
-
-#define sym_ntos_unname                (mtctxres->sym_ntos_unname)
-#define sym_ntop_unname                (mtctxres->sym_ntop_unname)
-#define inet_nsap_ntoa_tmpbuf  (mtctxres->inet_nsap_ntoa_tmpbuf)
-#define p_option_nbuf          (mtctxres->p_option_nbuf)
-#define p_time_nbuf            (mtctxres->p_time_nbuf)
-#define precsize_ntoa_retbuf   (mtctxres->precsize_ntoa_retbuf)
-#define loc_ntoa_tmpbuf                (mtctxres->loc_ntoa_tmpbuf)
-#define p_secstodate_output    (mtctxres->p_secstodate_output)
-
-#endif /* _RESOLV_MT_H */
diff --git a/lib/bind/inet/.cvsignore b/lib/bind/inet/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/inet/Makefile.in b/lib/bind/inet/Makefile.in
deleted file mode 100644 (file)
index 8f9b72a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.9 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-OBJS=  inet_addr.@O@ inet_cidr_ntop.@O@ inet_cidr_pton.@O@ inet_data.@O@ \
-       inet_lnaof.@O@ inet_makeaddr.@O@ inet_net_ntop.@O@ inet_net_pton.@O@ \
-       inet_neta.@O@ inet_netof.@O@ inet_network.@O@ inet_ntoa.@O@ \
-       inet_ntop.@O@ inet_pton.@O@ nsap_addr.@O@
-
-SRCS=  inet_addr.c inet_cidr_ntop.c inet_cidr_pton.c inet_data.c \
-       inet_lnaof.c inet_makeaddr.c inet_net_ntop.c inet_net_pton.c \
-       inet_neta.c inet_netof.c inet_network.c inet_ntoa.c \
-       inet_ntop.c inet_pton.c nsap_addr.c
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/inet/inet_addr.c b/lib/bind/inet/inet_addr.c
deleted file mode 100644 (file)
index 56270ff..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 1983, 1990, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_addr.c  8.1 (Berkeley) 6/17/93";
-static const char rcsid[] = "$Id: inet_addr.c,v 1.5 2005/04/27 04:56:19 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-
-#include "port_after.h"
-
-/*%
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- */
-u_long
-inet_addr(const char *cp) {
-       struct in_addr val;
-
-       if (inet_aton(cp, &val))
-               return (val.s_addr);
-       return (INADDR_NONE);
-}
-
-/*%
- * Check whether "cp" is a valid ascii representation
- * of an Internet address and convert to a binary address.
- * Returns 1 if the address is valid, 0 if not.
- * This replaces inet_addr, the return value from which
- * cannot distinguish between failure and a local broadcast address.
- */
-int
-inet_aton(const char *cp, struct in_addr *addr) {
-       u_long val;
-       int base, n;
-       char c;
-       u_int8_t parts[4];
-       u_int8_t *pp = parts;
-       int digit;
-
-       c = *cp;
-       for (;;) {
-               /*
-                * Collect number up to ``.''.
-                * Values are specified as for C:
-                * 0x=hex, 0=octal, isdigit=decimal.
-                */
-               if (!isdigit((unsigned char)c))
-                       return (0);
-               val = 0; base = 10; digit = 0;
-               if (c == '0') {
-                       c = *++cp;
-                       if (c == 'x' || c == 'X')
-                               base = 16, c = *++cp;
-                       else {
-                               base = 8;
-                               digit = 1 ;
-                       }
-               }
-               for (;;) {
-                       if (isascii(c) && isdigit((unsigned char)c)) {
-                               if (base == 8 && (c == '8' || c == '9'))
-                                       return (0);
-                               val = (val * base) + (c - '0');
-                               c = *++cp;
-                               digit = 1;
-                       } else if (base == 16 && isascii(c) && 
-                                  isxdigit((unsigned char)c)) {
-                               val = (val << 4) |
-                                       (c + 10 - (islower((unsigned char)c) ? 'a' : 'A'));
-                               c = *++cp;
-                               digit = 1;
-                       } else
-                               break;
-               }
-               if (c == '.') {
-                       /*
-                        * Internet format:
-                        *      a.b.c.d
-                        *      a.b.c   (with c treated as 16 bits)
-                        *      a.b     (with b treated as 24 bits)
-                        */
-                       if (pp >= parts + 3 || val > 0xffU)
-                               return (0);
-                       *pp++ = val;
-                       c = *++cp;
-               } else
-                       break;
-       }
-       /*
-        * Check for trailing characters.
-        */
-       if (c != '\0' && (!isascii(c) || !isspace((unsigned char)c)))
-               return (0);
-       /*
-        * Did we get a valid digit?
-        */
-       if (!digit)
-               return (0);
-       /*
-        * Concoct the address according to
-        * the number of parts specified.
-        */
-       n = pp - parts + 1;
-       switch (n) {
-       case 1:                         /*%< a -- 32 bits */
-               break;
-
-       case 2:                         /*%< a.b -- 8.24 bits */
-               if (val > 0xffffffU)
-                       return (0);
-               val |= parts[0] << 24;
-               break;
-
-       case 3:                         /*%< a.b.c -- 8.8.16 bits */
-               if (val > 0xffffU)
-                       return (0);
-               val |= (parts[0] << 24) | (parts[1] << 16);
-               break;
-
-       case 4:                         /*%< a.b.c.d -- 8.8.8.8 bits */
-               if (val > 0xffU)
-                       return (0);
-               val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
-               break;
-       }
-       if (addr != NULL)
-               addr->s_addr = htonl(val);
-       return (1);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_cidr_ntop.c b/lib/bind/inet/inet_cidr_ntop.c
deleted file mode 100644 (file)
index bf960a8..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_cidr_ntop.c,v 1.7 2006/10/11 02:18:18 marka Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-static char *
-inet_cidr_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size);
-static char *
-inet_cidr_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size);
-
-/*%
- * char *
- * inet_cidr_ntop(af, src, bits, dst, size)
- *     convert network address from network to presentation format.
- *     "src"'s size is determined from its "af".
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * note:
- *     192.5.5.1/28 has a nonzero host part, which means it isn't a network
- *     as called for by inet_net_ntop() but it can be a host address with
- *     an included netmask.
- * author:
- *     Paul Vixie (ISC), October 1998
- */
-char *
-inet_cidr_ntop(int af, const void *src, int bits, char *dst, size_t size) {
-       switch (af) {
-       case AF_INET:
-               return (inet_cidr_ntop_ipv4(src, bits, dst, size));
-       case AF_INET6:
-               return (inet_cidr_ntop_ipv6(src, bits, dst, size));
-       default:
-               errno = EAFNOSUPPORT;
-               return (NULL);
-       }
-}
-
-static int
-decoct(const u_char *src, int bytes, char *dst, size_t size) {
-       char *odst = dst;
-       char *t;
-       int b;
-
-       for (b = 1; b <= bytes; b++) {
-               if (size < sizeof "255.")
-                       return (0);
-               t = dst;
-               dst += SPRINTF((dst, "%u", *src++));
-               if (b != bytes) {
-                       *dst++ = '.';
-                       *dst = '\0';
-               }
-               size -= (size_t)(dst - t);
-       }
-       return (dst - odst);
-}
-
-/*%
- * static char *
- * inet_cidr_ntop_ipv4(src, bits, dst, size)
- *     convert IPv4 network address from network to presentation format.
- *     "src"'s size is determined from its "af".
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0b11110000 in its fourth octet.
- * author:
- *     Paul Vixie (ISC), October 1998
- */
-static char *
-inet_cidr_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size) {
-       char *odst = dst;
-       size_t len = 4;
-       size_t b;
-       size_t bytes;
-
-       if ((bits < -1) || (bits > 32)) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       /* Find number of significant bytes in address. */
-       if (bits == -1)
-               len = 4;
-       else
-               for (len = 1, b = 1 ; b < 4U; b++)
-                       if (*(src + b))
-                               len = b + 1;
-
-       /* Format whole octets plus nonzero trailing octets. */
-       bytes = (((bits <= 0) ? 1 : bits) + 7) / 8;
-       if (len > bytes)
-               bytes = len;
-       b = decoct(src, bytes, dst, size);
-       if (b == 0U)
-               goto emsgsize;
-       dst += b;
-       size -= b;
-
-       if (bits != -1) {
-               /* Format CIDR /width. */
-               if (size < sizeof "/32")
-                       goto emsgsize;
-               dst += SPRINTF((dst, "/%u", bits));
-       }
-
-       return (odst);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (NULL);
-}
-static char *
-inet_cidr_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) {
-       /*
-        * Note that int32_t and int16_t need only be "at least" large enough
-        * to contain a value of the specified size.  On some systems, like
-        * Crays, there is no such thing as an integer variable with 16 bits.
-        * Keep this in mind if you think this function should have been coded
-        * to use pointer overlays.  All the world's not a VAX.
-        */
-       char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255/128"];
-       char *tp;
-       struct { int base, len; } best, cur;
-       u_int words[NS_IN6ADDRSZ / NS_INT16SZ];
-       int i;
-
-       if ((bits < -1) || (bits > 128)) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       /*
-        * Preprocess:
-        *      Copy the input (bytewise) array into a wordwise array.
-        *      Find the longest run of 0x00's in src[] for :: shorthanding.
-        */
-       memset(words, '\0', sizeof words);
-       for (i = 0; i < NS_IN6ADDRSZ; i++)
-               words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
-       best.base = -1;
-       best.len = 0;
-       cur.base = -1;
-       cur.len = 0;
-       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
-               if (words[i] == 0) {
-                       if (cur.base == -1)
-                               cur.base = i, cur.len = 1;
-                       else
-                               cur.len++;
-               } else {
-                       if (cur.base != -1) {
-                               if (best.base == -1 || cur.len > best.len)
-                                       best = cur;
-                               cur.base = -1;
-                       }
-               }
-       }
-       if (cur.base != -1) {
-               if (best.base == -1 || cur.len > best.len)
-                       best = cur;
-       }
-       if (best.base != -1 && best.len < 2)
-               best.base = -1;
-
-       /*
-        * Format the result.
-        */
-       tp = tmp;
-       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
-               /* Are we inside the best run of 0x00's? */
-               if (best.base != -1 && i >= best.base &&
-                   i < (best.base + best.len)) {
-                       if (i == best.base)
-                               *tp++ = ':';
-                       continue;
-               }
-               /* Are we following an initial run of 0x00s or any real hex? */
-               if (i != 0)
-                       *tp++ = ':';
-               /* Is this address an encapsulated IPv4? */
-               if (i == 6 && best.base == 0 && (best.len == 6 ||
-                   (best.len == 7 && words[7] != 0x0001) ||
-                   (best.len == 5 && words[5] == 0xffff))) {
-                       int n;
-
-                       if (src[15] || bits == -1 || bits > 120)
-                               n = 4;
-                       else if (src[14] || bits > 112)
-                               n = 3;
-                       else
-                               n = 2;
-                       n = decoct(src+12, n, tp, sizeof tmp - (tp - tmp));
-                       if (n == 0) {
-                               errno = EMSGSIZE;
-                               return (NULL);
-                       }
-                       tp += strlen(tp);
-                       break;
-               }
-               tp += SPRINTF((tp, "%x", words[i]));
-       }
-
-       /* Was it a trailing run of 0x00's? */
-       if (best.base != -1 && (best.base + best.len) == 
-           (NS_IN6ADDRSZ / NS_INT16SZ))
-               *tp++ = ':';
-       *tp = '\0';
-
-       if (bits != -1)
-               tp += SPRINTF((tp, "/%u", bits));
-
-       /*
-        * Check for overflow, copy, and we're done.
-        */
-       if ((size_t)(tp - tmp) > size) {
-               errno = EMSGSIZE;
-               return (NULL);
-       }
-       strcpy(dst, tmp);
-       return (dst);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_cidr_pton.c b/lib/bind/inet/inet_cidr_pton.c
deleted file mode 100644 (file)
index 07652af..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <isc/assertions.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-static int     inet_cidr_pton_ipv4 __P((const char *src, u_char *dst,
-                                        int *bits, int ipv6));
-static int     inet_cidr_pton_ipv6 __P((const char *src, u_char *dst,
-                                        int *bits));
-
-static int     getbits(const char *, int ipv6);
-
-/*%
- * int
- * inet_cidr_pton(af, src, dst, *bits)
- *     convert network address from presentation to network format.
- *     accepts inet_pton()'s input for this "af" plus trailing "/CIDR".
- *     "dst" is assumed large enough for its "af".  "bits" is set to the
- *     /CIDR prefix length, which can have defaults (like /32 for IPv4).
- * return:
- *     -1 if an error occurred (inspect errno; ENOENT means bad format).
- *     0 if successful conversion occurred.
- * note:
- *     192.5.5.1/28 has a nonzero host part, which means it isn't a network
- *     as called for by inet_net_pton() but it can be a host address with
- *     an included netmask.
- * author:
- *     Paul Vixie (ISC), October 1998
- */
-int
-inet_cidr_pton(int af, const char *src, void *dst, int *bits) {
-       switch (af) {
-       case AF_INET:
-               return (inet_cidr_pton_ipv4(src, dst, bits, 0));
-       case AF_INET6:
-               return (inet_cidr_pton_ipv6(src, dst, bits));
-       default:
-               errno = EAFNOSUPPORT;
-               return (-1);
-       }
-}
-
-static const char digits[] = "0123456789";
-
-static int
-inet_cidr_pton_ipv4(const char *src, u_char *dst, int *pbits, int ipv6) {
-       const u_char *odst = dst;
-       int n, ch, tmp, bits;
-       size_t size = 4;
-
-       /* Get the mantissa. */
-       while (ch = *src++, (isascii(ch) && isdigit(ch))) {
-               tmp = 0;
-               do {
-                       n = strchr(digits, ch) - digits;
-                       INSIST(n >= 0 && n <= 9);
-                       tmp *= 10;
-                       tmp += n;
-                       if (tmp > 255)
-                               goto enoent;
-               } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch));
-               if (size-- == 0U)
-                       goto emsgsize;
-               *dst++ = (u_char) tmp;
-               if (ch == '\0' || ch == '/')
-                       break;
-               if (ch != '.')
-                       goto enoent;
-       }
-
-       /* Get the prefix length if any. */
-       bits = -1;
-       if (ch == '/' && dst > odst) {
-               bits = getbits(src, ipv6);
-               if (bits == -2)
-                       goto enoent;
-       } else if (ch != '\0')
-               goto enoent;
-
-       /* Prefix length can default to /32 only if all four octets spec'd. */
-       if (bits == -1) {
-               if (dst - odst == 4)
-                       bits = ipv6 ? 128 : 32;
-               else
-                       goto enoent;
-       }
-
-       /* If nothing was written to the destination, we found no address. */
-       if (dst == odst)
-               goto enoent;
-
-       /* If prefix length overspecifies mantissa, life is bad. */
-       if (((bits - (ipv6 ? 96 : 0)) / 8) > (dst - odst))
-               goto enoent;
-
-       /* Extend address to four octets. */
-       while (size-- > 0U)
-               *dst++ = 0;
-
-       *pbits = bits;
-       return (0);
-
- enoent:
-       errno = ENOENT;
-       return (-1);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (-1);
-}
-
-static int
-inet_cidr_pton_ipv6(const char *src, u_char *dst, int *pbits) {
-       static const char xdigits_l[] = "0123456789abcdef",
-                         xdigits_u[] = "0123456789ABCDEF";
-       u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
-       const char *xdigits, *curtok;
-       int ch, saw_xdigit;
-       u_int val;
-       int bits;
-
-       memset((tp = tmp), '\0', NS_IN6ADDRSZ);
-       endp = tp + NS_IN6ADDRSZ;
-       colonp = NULL;
-       /* Leading :: requires some special handling. */
-       if (*src == ':')
-               if (*++src != ':')
-                       return (0);
-       curtok = src;
-       saw_xdigit = 0;
-       val = 0;
-       bits = -1;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
-                       pch = strchr((xdigits = xdigits_u), ch);
-               if (pch != NULL) {
-                       val <<= 4;
-                       val |= (pch - xdigits);
-                       if (val > 0xffff)
-                               return (0);
-                       saw_xdigit = 1;
-                       continue;
-               }
-               if (ch == ':') {
-                       curtok = src;
-                       if (!saw_xdigit) {
-                               if (colonp)
-                                       return (0);
-                               colonp = tp;
-                               continue;
-                       } else if (*src == '\0') {
-                               return (0);
-                       }
-                       if (tp + NS_INT16SZ > endp)
-                               return (0);
-                       *tp++ = (u_char) (val >> 8) & 0xff;
-                       *tp++ = (u_char) val & 0xff;
-                       saw_xdigit = 0;
-                       val = 0;
-                       continue;
-               }
-               if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
-                   inet_cidr_pton_ipv4(curtok, tp, &bits, 1) == 0) {
-                       tp += NS_INADDRSZ;
-                       saw_xdigit = 0;
-                       break;  /*%< '\\0' was seen by inet_pton4(). */
-               }
-               if (ch == '/') {
-                       bits = getbits(src, 1);
-                       if (bits == -2)
-                               goto enoent;
-                       break;
-               }
-               goto enoent;
-       }
-       if (saw_xdigit) {
-               if (tp + NS_INT16SZ > endp)
-                       goto emsgsize;
-               *tp++ = (u_char) (val >> 8) & 0xff;
-               *tp++ = (u_char) val & 0xff;
-       }
-       if (colonp != NULL) {
-               /*
-                * Since some memmove()'s erroneously fail to handle
-                * overlapping regions, we'll do the shift by hand.
-                */
-               const int n = tp - colonp;
-               int i;
-
-               if (tp == endp)
-                       goto enoent;
-               for (i = 1; i <= n; i++) {
-                       endp[- i] = colonp[n - i];
-                       colonp[n - i] = 0;
-               }
-               tp = endp;
-       }
-
-       memcpy(dst, tmp, NS_IN6ADDRSZ);
-
-       *pbits = bits;
-       return (0);
-
- enoent:
-       errno = ENOENT;
-       return (-1);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (-1);
-}
-
-static int
-getbits(const char *src, int ipv6) {
-       int bits = 0;
-       char *cp, ch;
-       
-       if (*src == '\0')                       /*%< syntax */
-               return (-2);
-       do {
-               ch = *src++;
-               cp = strchr(digits, ch);
-               if (cp == NULL)                 /*%< syntax */
-                       return (-2);
-               bits *= 10;
-               bits += cp - digits;
-               if (bits == 0 && *src != '\0')  /*%< no leading zeros */
-                       return (-2);
-               if (bits > (ipv6 ? 128 : 32))   /*%< range error */
-                       return (-2);
-       } while (*src != '\0');
-
-       return (bits);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_data.c b/lib/bind/inet/inet_data.c
deleted file mode 100644 (file)
index 4373a17..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id: inet_data.c,v 1.4 2005/04/27 04:56:19 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "port_after.h"
-
-const struct in6_addr isc_in6addr_any = IN6ADDR_ANY_INIT;
-const struct in6_addr isc_in6addr_loopback = IN6ADDR_LOOPBACK_INIT;
-
-/*! \file */
diff --git a/lib/bind/inet/inet_lnaof.c b/lib/bind/inet/inet_lnaof.c
deleted file mode 100644 (file)
index 70ac409..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_lnaof.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "port_after.h"
-
-/*%
- * Return the local network address portion of an
- * internet address; handles class a/b/c network
- * number formats.
- */
-u_long
-inet_lnaof(in)
-       struct in_addr in;
-{
-       register u_long i = ntohl(in.s_addr);
-
-       if (IN_CLASSA(i))
-               return ((i)&IN_CLASSA_HOST);
-       else if (IN_CLASSB(i))
-               return ((i)&IN_CLASSB_HOST);
-       else
-               return ((i)&IN_CLASSC_HOST);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_makeaddr.c b/lib/bind/inet/inet_makeaddr.c
deleted file mode 100644 (file)
index c56cb3e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_makeaddr.c      8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "port_after.h"
-
-/*%
- * Formulate an Internet address from network + host.  Used in
- * building addresses stored in the ifnet structure.
- */
-struct in_addr
-inet_makeaddr(net, host)
-       u_long net, host;
-{
-       struct in_addr a;
-
-       if (net < 128U)
-               a.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
-       else if (net < 65536U)
-               a.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
-       else if (net < 16777216L)
-               a.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
-       else
-               a.s_addr = net | host;
-       a.s_addr = htonl(a.s_addr);
-       return (a);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_net_ntop.c b/lib/bind/inet/inet_net_ntop.c
deleted file mode 100644 (file)
index fb28e3c..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.5 2006/06/20 02:50:14 marka Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-static char *  inet_net_ntop_ipv4 __P((const u_char *src, int bits,
-                                       char *dst, size_t size));
-static char *  inet_net_ntop_ipv6 __P((const u_char *src, int bits,
-                                       char *dst, size_t size));
-
-/*%
- * char *
- * inet_net_ntop(af, src, bits, dst, size)
- *     convert network number from network to presentation format.
- *     generates CIDR style result always.
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * author:
- *     Paul Vixie (ISC), July 1996
- */
-char *
-inet_net_ntop(af, src, bits, dst, size)
-       int af;
-       const void *src;
-       int bits;
-       char *dst;
-       size_t size;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_net_ntop_ipv4(src, bits, dst, size));
-       case AF_INET6:
-               return (inet_net_ntop_ipv6(src, bits, dst, size));
-       default:
-               errno = EAFNOSUPPORT;
-               return (NULL);
-       }
-}
-
-/*%
- * static char *
- * inet_net_ntop_ipv4(src, bits, dst, size)
- *     convert IPv4 network number from network to presentation format.
- *     generates CIDR style result always.
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0b11110000 in its fourth octet.
- * author:
- *     Paul Vixie (ISC), July 1996
- */
-static char *
-inet_net_ntop_ipv4(src, bits, dst, size)
-       const u_char *src;
-       int bits;
-       char *dst;
-       size_t size;
-{
-       char *odst = dst;
-       char *t;
-       u_int m;
-       int b;
-
-       if (bits < 0 || bits > 32) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       if (bits == 0) {
-               if (size < sizeof "0")
-                       goto emsgsize;
-               *dst++ = '0';
-               size--;
-               *dst = '\0';
-       }
-
-       /* Format whole octets. */
-       for (b = bits / 8; b > 0; b--) {
-               if (size <= sizeof "255.")
-                       goto emsgsize;
-               t = dst;
-               dst += SPRINTF((dst, "%u", *src++));
-               if (b > 1) {
-                       *dst++ = '.';
-                       *dst = '\0';
-               }
-               size -= (size_t)(dst - t);
-       }
-
-       /* Format partial octet. */
-       b = bits % 8;
-       if (b > 0) {
-               if (size <= sizeof ".255")
-                       goto emsgsize;
-               t = dst;
-               if (dst != odst)
-                       *dst++ = '.';
-               m = ((1 << b) - 1) << (8 - b);
-               dst += SPRINTF((dst, "%u", *src & m));
-               size -= (size_t)(dst - t);
-       }
-
-       /* Format CIDR /width. */
-       if (size <= sizeof "/32")
-               goto emsgsize;
-       dst += SPRINTF((dst, "/%u", bits));
-       return (odst);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (NULL);
-}
-
-/*%
- * static char *
- * inet_net_ntop_ipv6(src, bits, fakebits, dst, size)
- *     convert IPv6 network number from network to presentation format.
- *     generates CIDR style result always. Picks the shortest representation
- *     unless the IP is really IPv4.
- *     always prints specified number of bits (bits).
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0x11110000 in its fourth octet.
- * author:
- *     Vadim Kogan (UCB), June 2001
- *  Original version (IPv4) by Paul Vixie (ISC), July 1996
- */
-
-static char *
-inet_net_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) {
-       u_int   m;
-       int     b;
-       int     p;
-       int     zero_s, zero_l, tmp_zero_s, tmp_zero_l;
-       int     i;
-       int     is_ipv4 = 0;
-       unsigned char inbuf[16];
-       char outbuf[sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:255.255.255.255/128")];
-       char    *cp;
-       int     words;
-       u_char  *s;
-
-       if (bits < 0 || bits > 128) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       cp = outbuf;
-
-       if (bits == 0) {
-               *cp++ = ':';
-               *cp++ = ':';
-               *cp = '\0';
-       } else {
-               /* Copy src to private buffer.  Zero host part. */      
-               p = (bits + 7) / 8;
-               memcpy(inbuf, src, p);
-               memset(inbuf + p, 0, 16 - p);
-               b = bits % 8;
-               if (b != 0) {
-                       m = ~0 << (8 - b);
-                       inbuf[p-1] &= m;
-               }
-
-               s = inbuf;
-
-               /* how many words need to be displayed in output */
-               words = (bits + 15) / 16;
-               if (words == 1)
-                       words = 2;
-               
-               /* Find the longest substring of zero's */
-               zero_s = zero_l = tmp_zero_s = tmp_zero_l = 0;
-               for (i = 0; i < (words * 2); i += 2) {
-                       if ((s[i] | s[i+1]) == 0) {
-                               if (tmp_zero_l == 0)
-                                       tmp_zero_s = i / 2;
-                               tmp_zero_l++;
-                       } else {
-                               if (tmp_zero_l && zero_l < tmp_zero_l) {
-                                       zero_s = tmp_zero_s;
-                                       zero_l = tmp_zero_l;
-                                       tmp_zero_l = 0;
-                               }
-                       }
-               }
-
-               if (tmp_zero_l && zero_l < tmp_zero_l) {
-                       zero_s = tmp_zero_s;
-                       zero_l = tmp_zero_l;
-               }
-
-               if (zero_l != words && zero_s == 0 && ((zero_l == 6) ||
-                   ((zero_l == 5 && s[10] == 0xff && s[11] == 0xff) ||
-                   ((zero_l == 7 && s[14] != 0 && s[15] != 1)))))
-                       is_ipv4 = 1;
-
-               /* Format whole words. */
-               for (p = 0; p < words; p++) {
-                       if (zero_l != 0 && p >= zero_s && p < zero_s + zero_l) {
-                               /* Time to skip some zeros */
-                               if (p == zero_s)
-                                       *cp++ = ':';
-                               if (p == words - 1)
-                                       *cp++ = ':';
-                               s++;
-                               s++;
-                               continue;
-                       }
-
-                       if (is_ipv4 && p > 5 ) {
-                               *cp++ = (p == 6) ? ':' : '.';
-                               cp += SPRINTF((cp, "%u", *s++));
-                               /* we can potentially drop the last octet */
-                               if (p != 7 || bits > 120) {
-                                       *cp++ = '.';
-                                       cp += SPRINTF((cp, "%u", *s++));
-                               }
-                       } else {
-                               if (cp != outbuf)
-                                       *cp++ = ':';
-                               cp += SPRINTF((cp, "%x", *s * 256 + s[1]));
-                               s += 2;
-                       }
-               }
-       }
-       /* Format CIDR /width. */
-       sprintf(cp, "/%u", bits);
-       if (strlen(outbuf) + 1 > size)
-               goto emsgsize;
-       strcpy(dst, outbuf);
-       
-       return (dst);
-
-emsgsize:
-       errno = EMSGSIZE;
-       return (NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_net_pton.c b/lib/bind/inet/inet_net_pton.c
deleted file mode 100644 (file)
index 0970a93..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_net_pton.c,v 1.9 2008/08/26 03:53:04 marka Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <isc/assertions.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/*%
- * static int
- * inet_net_pton_ipv4(src, dst, size)
- *     convert IPv4 network number from presentation to network format.
- *     accepts hex octets, hex strings, decimal octets, and /CIDR.
- *     "size" is in bytes and describes "dst".
- * return:
- *     number of bits, either imputed classfully or specified with /CIDR,
- *     or -1 if some failure occurred (check errno).  ENOENT means it was
- *     not an IPv4 network specification.
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0b11110000 in its fourth octet.
- * author:
- *     Paul Vixie (ISC), June 1996
- */
-static int
-inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) {
-       static const char xdigits[] = "0123456789abcdef";
-       static const char digits[] = "0123456789";
-       int n, ch, tmp = 0, dirty, bits;
-       const u_char *odst = dst;
-
-       ch = *src++;
-       if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
-           && isascii((unsigned char)(src[1]))
-           && isxdigit((unsigned char)(src[1]))) {
-               /* Hexadecimal: Eat nybble string. */
-               if (size <= 0U)
-                       goto emsgsize;
-               dirty = 0;
-               src++;  /*%< skip x or X. */
-               while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch)) {
-                       if (isupper(ch))
-                               ch = tolower(ch);
-                       n = strchr(xdigits, ch) - xdigits;
-                       INSIST(n >= 0 && n <= 15);
-                       if (dirty == 0)
-                               tmp = n;
-                       else
-                               tmp = (tmp << 4) | n;
-                       if (++dirty == 2) {
-                               if (size-- <= 0U)
-                                       goto emsgsize;
-                               *dst++ = (u_char) tmp;
-                               dirty = 0;
-                       }
-               }
-               if (dirty) {  /*%< Odd trailing nybble? */
-                       if (size-- <= 0U)
-                               goto emsgsize;
-                       *dst++ = (u_char) (tmp << 4);
-               }
-       } else if (isascii(ch) && isdigit(ch)) {
-               /* Decimal: eat dotted digit string. */
-               for (;;) {
-                       tmp = 0;
-                       do {
-                               n = strchr(digits, ch) - digits;
-                               INSIST(n >= 0 && n <= 9);
-                               tmp *= 10;
-                               tmp += n;
-                               if (tmp > 255)
-                                       goto enoent;
-                       } while ((ch = *src++) != '\0' &&
-                                isascii(ch) && isdigit(ch));
-                       if (size-- <= 0U)
-                               goto emsgsize;
-                       *dst++ = (u_char) tmp;
-                       if (ch == '\0' || ch == '/')
-                               break;
-                       if (ch != '.')
-                               goto enoent;
-                       ch = *src++;
-                       if (!isascii(ch) || !isdigit(ch))
-                               goto enoent;
-               }
-       } else
-               goto enoent;
-
-       bits = -1;
-       if (ch == '/' && isascii((unsigned char)(src[0])) &&
-           isdigit((unsigned char)(src[0])) && dst > odst) {
-               /* CIDR width specifier.  Nothing can follow it. */
-               ch = *src++;    /*%< Skip over the /. */
-               bits = 0;
-               do {
-                       n = strchr(digits, ch) - digits;
-                       INSIST(n >= 0 && n <= 9);
-                       bits *= 10;
-                       bits += n;
-                       if (bits > 32)
-                               goto enoent;
-               } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch));
-               if (ch != '\0')
-                       goto enoent;
-       }
-
-       /* Firey death and destruction unless we prefetched EOS. */
-       if (ch != '\0')
-               goto enoent;
-
-       /* If nothing was written to the destination, we found no address. */
-       if (dst == odst)
-               goto enoent;
-       /* If no CIDR spec was given, infer width from net class. */
-       if (bits == -1) {
-               if (*odst >= 240)       /*%< Class E */
-                       bits = 32;
-               else if (*odst >= 224)  /*%< Class D */
-                       bits = 8;
-               else if (*odst >= 192)  /*%< Class C */
-                       bits = 24;
-               else if (*odst >= 128)  /*%< Class B */
-                       bits = 16;
-               else                    /*%< Class A */
-                       bits = 8;
-               /* If imputed mask is narrower than specified octets, widen. */
-               if (bits < ((dst - odst) * 8))
-                       bits = (dst - odst) * 8;
-               /*
-                * If there are no additional bits specified for a class D
-                * address adjust bits to 4.
-                */
-               if (bits == 8 && *odst == 224)
-                       bits = 4;
-       }
-       /* Extend network to cover the actual mask. */
-       while (bits > ((dst - odst) * 8)) {
-               if (size-- <= 0U)
-                       goto emsgsize;
-               *dst++ = '\0';
-       }
-       return (bits);
-
- enoent:
-       errno = ENOENT;
-       return (-1);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (-1);
-}
-
-static int
-getbits(const char *src, int *bitsp) {
-       static const char digits[] = "0123456789";
-       int n;
-       int val;
-       char ch;
-
-       val = 0;
-       n = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               pch = strchr(digits, ch);
-               if (pch != NULL) {
-                       if (n++ != 0 && val == 0)       /*%< no leading zeros */
-                               return (0);
-                       val *= 10;
-                       val += (pch - digits);
-                       if (val > 128)                  /*%< range */
-                               return (0);
-                       continue;
-               }
-               return (0);
-       }
-       if (n == 0)
-               return (0);
-       *bitsp = val;
-       return (1);
-}
-
-static int
-getv4(const char *src, u_char *dst, int *bitsp) {
-       static const char digits[] = "0123456789";
-       u_char *odst = dst;
-       int n;
-       u_int val;
-       char ch;
-
-       val = 0;
-       n = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               pch = strchr(digits, ch);
-               if (pch != NULL) {
-                       if (n++ != 0 && val == 0)       /*%< no leading zeros */
-                               return (0);
-                       val *= 10;
-                       val += (pch - digits);
-                       if (val > 255)                  /*%< range */
-                               return (0);
-                       continue;
-               }
-               if (ch == '.' || ch == '/') {
-                       if (dst - odst > 3)             /*%< too many octets? */
-                               return (0);
-                       *dst++ = val;
-                       if (ch == '/')
-                               return (getbits(src, bitsp));
-                       val = 0;
-                       n = 0;
-                       continue;
-               }
-               return (0);
-       }
-       if (n == 0)
-               return (0);
-       if (dst - odst > 3)             /*%< too many octets? */
-               return (0);
-       *dst++ = val;
-       return (1);
-}
-
-static int
-inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) {
-       static const char xdigits_l[] = "0123456789abcdef",
-                         xdigits_u[] = "0123456789ABCDEF";
-       u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
-       const char *xdigits, *curtok;
-       int ch, saw_xdigit;
-       u_int val;
-       int digits;
-       int bits;
-       size_t bytes;
-       int words;
-       int ipv4;
-
-       memset((tp = tmp), '\0', NS_IN6ADDRSZ);
-       endp = tp + NS_IN6ADDRSZ;
-       colonp = NULL;
-       /* Leading :: requires some special handling. */
-       if (*src == ':')
-               if (*++src != ':')
-                       goto enoent;
-       curtok = src;
-       saw_xdigit = 0;
-       val = 0;
-       digits = 0;
-       bits = -1;
-       ipv4 = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
-                       pch = strchr((xdigits = xdigits_u), ch);
-               if (pch != NULL) {
-                       val <<= 4;
-                       val |= (pch - xdigits);
-                       if (++digits > 4)
-                               goto enoent;
-                       saw_xdigit = 1;
-                       continue;
-               }
-               if (ch == ':') {
-                       curtok = src;
-                       if (!saw_xdigit) {
-                               if (colonp)
-                                       goto enoent;
-                               colonp = tp;
-                               continue;
-                       } else if (*src == '\0')
-                               goto enoent;
-                       if (tp + NS_INT16SZ > endp)
-                               return (0);
-                       *tp++ = (u_char) (val >> 8) & 0xff;
-                       *tp++ = (u_char) val & 0xff;
-                       saw_xdigit = 0;
-                       digits = 0;
-                       val = 0;
-                       continue;
-               }
-               if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
-                    getv4(curtok, tp, &bits) > 0) {
-                       tp += NS_INADDRSZ;
-                       saw_xdigit = 0;
-                       ipv4 = 1;
-                       break;  /*%< '\\0' was seen by inet_pton4(). */
-               }
-               if (ch == '/' && getbits(src, &bits) > 0)
-                       break;
-               goto enoent;
-       }
-       if (saw_xdigit) {
-               if (tp + NS_INT16SZ > endp)
-                       goto enoent;
-               *tp++ = (u_char) (val >> 8) & 0xff;
-               *tp++ = (u_char) val & 0xff;
-       }
-       if (bits == -1)
-               bits = 128;
-
-       words = (bits + 15) / 16;
-       if (words < 2)
-               words = 2;
-       if (ipv4)
-               words = 8;
-       endp =  tmp + 2 * words;
-
-       if (colonp != NULL) {
-               /*
-                * Since some memmove()'s erroneously fail to handle
-                * overlapping regions, we'll do the shift by hand.
-                */
-               const int n = tp - colonp;
-               int i;
-
-               if (tp == endp)
-                       goto enoent;
-               for (i = 1; i <= n; i++) {
-                       endp[- i] = colonp[n - i];
-                       colonp[n - i] = 0;
-               }
-               tp = endp;
-       }
-       if (tp != endp)
-               goto enoent;
-
-       bytes = (bits + 7) / 8;
-       if (bytes > size)
-               goto emsgsize;
-       memcpy(dst, tmp, bytes);
-       return (bits);
-
- enoent:
-       errno = ENOENT;
-       return (-1);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (-1);
-}
-
-/*%
- * int
- * inet_net_pton(af, src, dst, size)
- *     convert network number from presentation to network format.
- *     accepts hex octets, hex strings, decimal octets, and /CIDR.
- *     "size" is in bytes and describes "dst".
- * return:
- *     number of bits, either imputed classfully or specified with /CIDR,
- *     or -1 if some failure occurred (check errno).  ENOENT means it was
- *     not a valid network specification.
- * author:
- *     Paul Vixie (ISC), June 1996
- */
-int
-inet_net_pton(int af, const char *src, void *dst, size_t size) {
-       switch (af) {
-       case AF_INET:
-               return (inet_net_pton_ipv4(src, dst, size));
-       case AF_INET6:
-               return (inet_net_pton_ipv6(src, dst, size));
-       default:
-               errno = EAFNOSUPPORT;
-               return (-1);
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_neta.c b/lib/bind/inet/inet_neta.c
deleted file mode 100644 (file)
index 63a6c20..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_neta.c,v 1.3 2005/04/27 04:56:20 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/*%
- * char *
- * inet_neta(src, dst, size)
- *     format a u_long network number into presentation format.
- * return:
- *     pointer to dst, or NULL if an error occurred (check errno).
- * note:
- *     format of ``src'' is as for inet_network().
- * author:
- *     Paul Vixie (ISC), July 1996
- */
-char *
-inet_neta(src, dst, size)
-       u_long src;
-       char *dst;
-       size_t size;
-{
-       char *odst = dst;
-       char *tp;
-
-       while (src & 0xffffffff) {
-               u_char b = (src & 0xff000000) >> 24;
-
-               src <<= 8;
-               if (b) {
-                       if (size < sizeof "255.")
-                               goto emsgsize;
-                       tp = dst;
-                       dst += SPRINTF((dst, "%u", b));
-                       if (src != 0L) {
-                               *dst++ = '.';
-                               *dst = '\0';
-                       }
-                       size -= (size_t)(dst - tp);
-               }
-       }
-       if (dst == odst) {
-               if (size < sizeof "0.0.0.0")
-                       goto emsgsize;
-               strcpy(dst, "0.0.0.0");
-       }
-       return (odst);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_netof.c b/lib/bind/inet/inet_netof.c
deleted file mode 100644 (file)
index c228e3d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_netof.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "port_after.h"
-
-/*%
- * Return the network number from an internet
- * address; handles class a/b/c network #'s.
- */
-u_long
-inet_netof(in)
-       struct in_addr in;
-{
-       register u_long i = ntohl(in.s_addr);
-
-       if (IN_CLASSA(i))
-               return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
-       else if (IN_CLASSB(i))
-               return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
-       else
-               return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_network.c b/lib/bind/inet/inet_network.c
deleted file mode 100644 (file)
index 47976cf..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_network.c       8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <ctype.h>
-
-#include "port_after.h"
-
-/*%
- * Internet network address interpretation routine.
- * The library routines call this routine to interpret
- * network numbers.
- */
-u_long
-inet_network(cp)
-       register const char *cp;
-{
-       register u_long val, base, n, i;
-       register char c;
-       u_long parts[4], *pp = parts;
-       int digit;
-
-again:
-       val = 0; base = 10; digit = 0;
-       if (*cp == '0')
-               digit = 1, base = 8, cp++;
-       if (*cp == 'x' || *cp == 'X')
-               base = 16, cp++;
-       while ((c = *cp) != 0) {
-               if (isdigit((unsigned char)c)) {
-                       if (base == 8U && (c == '8' || c == '9'))
-                               return (INADDR_NONE);
-                       val = (val * base) + (c - '0');
-                       cp++;
-                       digit = 1;
-                       continue;
-               }
-               if (base == 16U && isxdigit((unsigned char)c)) {
-                       val = (val << 4) +
-                             (c + 10 - (islower((unsigned char)c) ? 'a' : 'A'));
-                       cp++;
-                       digit = 1;
-                       continue;
-               }
-               break;
-       }
-       if (!digit)
-               return (INADDR_NONE);
-       if (pp >= parts + 4 || val > 0xffU)
-               return (INADDR_NONE);
-       if (*cp == '.') {
-               *pp++ = val, cp++;
-               goto again;
-       }
-       if (*cp && !isspace(*cp&0xff))
-               return (INADDR_NONE);
-       *pp++ = val;
-       n = pp - parts;
-       if (n > 4U)
-               return (INADDR_NONE);
-       for (val = 0, i = 0; i < n; i++) {
-               val <<= 8;
-               val |= parts[i] & 0xff;
-       }
-       return (val);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_ntoa.c b/lib/bind/inet/inet_ntoa.c
deleted file mode 100644 (file)
index 983121e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)inet_ntoa.c  8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: inet_ntoa.c,v 1.2 2005/04/27 04:56:21 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#include "port_after.h"
-
-/*%
- * Convert network-format internet address
- * to base 256 d.d.d.d representation.
- */
-/*const*/ char *
-inet_ntoa(struct in_addr in) {
-       static char ret[18];
-
-       strcpy(ret, "[inet_ntoa error]");
-       (void) inet_ntop(AF_INET, &in, ret, sizeof ret);
-       return (ret);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_ntop.c b/lib/bind/inet/inet_ntop.c
deleted file mode 100644 (file)
index 114ca5d..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_ntop.c,v 1.5 2005/11/03 22:59:52 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/*%
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static const char *inet_ntop4 __P((const u_char *src, char *dst, size_t size));
-static const char *inet_ntop6 __P((const u_char *src, char *dst, size_t size));
-
-/* char *
- * inet_ntop(af, src, dst, size)
- *     convert a network format address to presentation format.
- * return:
- *     pointer to presentation format address (`dst'), or NULL (see errno).
- * author:
- *     Paul Vixie, 1996.
- */
-const char *
-inet_ntop(af, src, dst, size)
-       int af;
-       const void *src;
-       char *dst;
-       size_t size;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_ntop4(src, dst, size));
-       case AF_INET6:
-               return (inet_ntop6(src, dst, size));
-       default:
-               errno = EAFNOSUPPORT;
-               return (NULL);
-       }
-       /* NOTREACHED */
-}
-
-/* const char *
- * inet_ntop4(src, dst, size)
- *     format an IPv4 address
- * return:
- *     `dst' (as a const)
- * notes:
- *     (1) uses no statics
- *     (2) takes a u_char* not an in_addr as input
- * author:
- *     Paul Vixie, 1996.
- */
-static const char *
-inet_ntop4(src, dst, size)
-       const u_char *src;
-       char *dst;
-       size_t size;
-{
-       static const char fmt[] = "%u.%u.%u.%u";
-       char tmp[sizeof "255.255.255.255"];
-
-       if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) >= size) {
-               errno = ENOSPC;
-               return (NULL);
-       }
-       strcpy(dst, tmp);
-       return (dst);
-}
-
-/* const char *
- * inet_ntop6(src, dst, size)
- *     convert IPv6 binary address into presentation (printable) format
- * author:
- *     Paul Vixie, 1996.
- */
-static const char *
-inet_ntop6(src, dst, size)
-       const u_char *src;
-       char *dst;
-       size_t size;
-{
-       /*
-        * Note that int32_t and int16_t need only be "at least" large enough
-        * to contain a value of the specified size.  On some systems, like
-        * Crays, there is no such thing as an integer variable with 16 bits.
-        * Keep this in mind if you think this function should have been coded
-        * to use pointer overlays.  All the world's not a VAX.
-        */
-       char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
-       struct { int base, len; } best, cur;
-       u_int words[NS_IN6ADDRSZ / NS_INT16SZ];
-       int i;
-
-       /*
-        * Preprocess:
-        *      Copy the input (bytewise) array into a wordwise array.
-        *      Find the longest run of 0x00's in src[] for :: shorthanding.
-        */
-       memset(words, '\0', sizeof words);
-       for (i = 0; i < NS_IN6ADDRSZ; i++)
-               words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
-       best.base = -1;
-       best.len = 0;
-       cur.base = -1;
-       cur.len = 0;
-       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
-               if (words[i] == 0) {
-                       if (cur.base == -1)
-                               cur.base = i, cur.len = 1;
-                       else
-                               cur.len++;
-               } else {
-                       if (cur.base != -1) {
-                               if (best.base == -1 || cur.len > best.len)
-                                       best = cur;
-                               cur.base = -1;
-                       }
-               }
-       }
-       if (cur.base != -1) {
-               if (best.base == -1 || cur.len > best.len)
-                       best = cur;
-       }
-       if (best.base != -1 && best.len < 2)
-               best.base = -1;
-
-       /*
-        * Format the result.
-        */
-       tp = tmp;
-       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
-               /* Are we inside the best run of 0x00's? */
-               if (best.base != -1 && i >= best.base &&
-                   i < (best.base + best.len)) {
-                       if (i == best.base)
-                               *tp++ = ':';
-                       continue;
-               }
-               /* Are we following an initial run of 0x00s or any real hex? */
-               if (i != 0)
-                       *tp++ = ':';
-               /* Is this address an encapsulated IPv4? */
-               if (i == 6 && best.base == 0 && (best.len == 6 ||
-                   (best.len == 7 && words[7] != 0x0001) ||
-                   (best.len == 5 && words[5] == 0xffff))) {
-                       if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
-                               return (NULL);
-                       tp += strlen(tp);
-                       break;
-               }
-               tp += SPRINTF((tp, "%x", words[i]));
-       }
-       /* Was it a trailing run of 0x00's? */
-       if (best.base != -1 && (best.base + best.len) == 
-           (NS_IN6ADDRSZ / NS_INT16SZ))
-               *tp++ = ':';
-       *tp++ = '\0';
-
-       /*
-        * Check for overflow, copy, and we're done.
-        */
-       if ((size_t)(tp - tmp) > size) {
-               errno = ENOSPC;
-               return (NULL);
-       }
-       strcpy(dst, tmp);
-       return (dst);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/inet_pton.c b/lib/bind/inet/inet_pton.c
deleted file mode 100644 (file)
index 2c516c7..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_pton.c,v 1.5 2005/07/28 06:51:47 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-#include <string.h>
-#include <errno.h>
-#include "port_after.h"
-
-/*%
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static int     inet_pton4 __P((const char *src, u_char *dst));
-static int     inet_pton6 __P((const char *src, u_char *dst));
-
-/* int
- * inet_pton(af, src, dst)
- *     convert from presentation format (which usually means ASCII printable)
- *     to network format (which is usually some kind of binary format).
- * return:
- *     1 if the address was valid for the specified address family
- *     0 if the address wasn't valid (`dst' is untouched in this case)
- *     -1 if some other error occurred (`dst' is untouched in this case, too)
- * author:
- *     Paul Vixie, 1996.
- */
-int
-inet_pton(af, src, dst)
-       int af;
-       const char *src;
-       void *dst;
-{
-       switch (af) {
-       case AF_INET:
-               return (inet_pton4(src, dst));
-       case AF_INET6:
-               return (inet_pton6(src, dst));
-       default:
-               errno = EAFNOSUPPORT;
-               return (-1);
-       }
-       /* NOTREACHED */
-}
-
-/* int
- * inet_pton4(src, dst)
- *     like inet_aton() but without all the hexadecimal and shorthand.
- * return:
- *     1 if `src' is a valid dotted quad, else 0.
- * notice:
- *     does not touch `dst' unless it's returning 1.
- * author:
- *     Paul Vixie, 1996.
- */
-static int
-inet_pton4(src, dst)
-       const char *src;
-       u_char *dst;
-{
-       static const char digits[] = "0123456789";
-       int saw_digit, octets, ch;
-       u_char tmp[NS_INADDRSZ], *tp;
-
-       saw_digit = 0;
-       octets = 0;
-       *(tp = tmp) = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr(digits, ch)) != NULL) {
-                       u_int new = *tp * 10 + (pch - digits);
-
-                       if (saw_digit && *tp == 0)
-                               return (0);
-                       if (new > 255)
-                               return (0);
-                       *tp = new;
-                       if (!saw_digit) {
-                               if (++octets > 4)
-                                       return (0);
-                               saw_digit = 1;
-                       }
-               } else if (ch == '.' && saw_digit) {
-                       if (octets == 4)
-                               return (0);
-                       *++tp = 0;
-                       saw_digit = 0;
-               } else
-                       return (0);
-       }
-       if (octets < 4)
-               return (0);
-       memcpy(dst, tmp, NS_INADDRSZ);
-       return (1);
-}
-
-/* int
- * inet_pton6(src, dst)
- *     convert presentation level address to network order binary form.
- * return:
- *     1 if `src' is a valid [RFC1884 2.2] address, else 0.
- * notice:
- *     (1) does not touch `dst' unless it's returning 1.
- *     (2) :: in a full address is silently ignored.
- * credit:
- *     inspired by Mark Andrews.
- * author:
- *     Paul Vixie, 1996.
- */
-static int
-inet_pton6(src, dst)
-       const char *src;
-       u_char *dst;
-{
-       static const char xdigits_l[] = "0123456789abcdef",
-                         xdigits_u[] = "0123456789ABCDEF";
-       u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
-       const char *xdigits, *curtok;
-       int ch, seen_xdigits;
-       u_int val;
-
-       memset((tp = tmp), '\0', NS_IN6ADDRSZ);
-       endp = tp + NS_IN6ADDRSZ;
-       colonp = NULL;
-       /* Leading :: requires some special handling. */
-       if (*src == ':')
-               if (*++src != ':')
-                       return (0);
-       curtok = src;
-       seen_xdigits = 0;
-       val = 0;
-       while ((ch = *src++) != '\0') {
-               const char *pch;
-
-               if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
-                       pch = strchr((xdigits = xdigits_u), ch);
-               if (pch != NULL) {
-                       val <<= 4;
-                       val |= (pch - xdigits);
-                       if (++seen_xdigits > 4)
-                               return (0);
-                       continue;
-               }
-               if (ch == ':') {
-                       curtok = src;
-                       if (!seen_xdigits) {
-                               if (colonp)
-                                       return (0);
-                               colonp = tp;
-                               continue;
-                       } else if (*src == '\0') {
-                               return (0);
-                       }
-                       if (tp + NS_INT16SZ > endp)
-                               return (0);
-                       *tp++ = (u_char) (val >> 8) & 0xff;
-                       *tp++ = (u_char) val & 0xff;
-                       seen_xdigits = 0;
-                       val = 0;
-                       continue;
-               }
-               if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
-                   inet_pton4(curtok, tp) > 0) {
-                       tp += NS_INADDRSZ;
-                       seen_xdigits = 0;
-                       break;  /*%< '\\0' was seen by inet_pton4(). */
-               }
-               return (0);
-       }
-       if (seen_xdigits) {
-               if (tp + NS_INT16SZ > endp)
-                       return (0);
-               *tp++ = (u_char) (val >> 8) & 0xff;
-               *tp++ = (u_char) val & 0xff;
-       }
-       if (colonp != NULL) {
-               /*
-                * Since some memmove()'s erroneously fail to handle
-                * overlapping regions, we'll do the shift by hand.
-                */
-               const int n = tp - colonp;
-               int i;
-
-               if (tp == endp)
-                       return (0);
-               for (i = 1; i <= n; i++) {
-                       endp[- i] = colonp[n - i];
-                       colonp[n - i] = 0;
-               }
-               tp = endp;
-       }
-       if (tp != endp)
-               return (0);
-       memcpy(dst, tmp, NS_IN6ADDRSZ);
-       return (1);
-}
-
-/*! \file */
diff --git a/lib/bind/inet/nsap_addr.c b/lib/bind/inet/nsap_addr.c
deleted file mode 100644 (file)
index b6432e1..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nsap_addr.c,v 1.5 2005/07/28 06:51:48 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <resolv.h>
-#include <resolv_mt.h>
-
-#include "port_after.h"
-
-static char
-xtob(int c) {
-       return (c - (((c >= '0') && (c <= '9')) ? '0' : '7'));
-}
-
-u_int
-inet_nsap_addr(const char *ascii, u_char *binary, int maxlen) {
-       u_char c, nib;
-       u_int len = 0;
-
-       if (ascii[0] != '0' || (ascii[1] != 'x' && ascii[1] != 'X'))
-               return (0);
-       ascii += 2;
-
-       while ((c = *ascii++) != '\0' && len < (u_int)maxlen) {
-               if (c == '.' || c == '+' || c == '/')
-                       continue;
-               if (!isascii(c))
-                       return (0);
-               if (islower(c))
-                       c = toupper(c);
-               if (isxdigit(c)) {
-                       nib = xtob(c);
-                       c = *ascii++;
-                       if (c != '\0') {
-                               c = toupper(c);
-                               if (isxdigit(c)) {
-                                       *binary++ = (nib << 4) | xtob(c);
-                                       len++;
-                               } else
-                                       return (0);
-                       }
-                       else
-                               return (0);
-               }
-               else
-                       return (0);
-       }
-       return (len);
-}
-
-char *
-inet_nsap_ntoa(int binlen, const u_char *binary, char *ascii) {
-       int nib;
-       int i;
-       char *tmpbuf = inet_nsap_ntoa_tmpbuf;
-       char *start;
-
-       if (ascii)
-               start = ascii;
-       else {
-               ascii = tmpbuf;
-               start = tmpbuf;
-       }
-
-       *ascii++ = '0';
-       *ascii++ = 'x';
-
-       if (binlen > 255)
-               binlen = 255;
-
-       for (i = 0; i < binlen; i++) {
-               nib = *binary >> 4;
-               *ascii++ = nib + (nib < 10 ? '0' : '7');
-               nib = *binary++ & 0x0f;
-               *ascii++ = nib + (nib < 10 ? '0' : '7');
-               if (((i % 2) == 0 && (i + 1) < binlen))
-                       *ascii++ = '.';
-       }
-       *ascii = '\0';
-       return (start);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/.cvsignore b/lib/bind/irs/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/irs/Makefile.in b/lib/bind/irs/Makefile.in
deleted file mode 100644 (file)
index 730d559..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.14 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-WANT_IRS_THREADS_OBJS= gethostent_r.@O@ getnetent_r.@O@ getnetgrent_r.@O@ \
-       getprotoent_r.@O@ getservent_r.@O@
-
-WANT_IRS_NISGR_OBJS= nis_gr.@O@ 
-WANT_IRS_GR_OBJS= dns_gr.@O@ irp_gr.@O@ lcl_gr.@O@ gen_gr.@O@ getgrent.@O@ \
-       @WANT_IRS_NISGR_OBJS@ @WANT_IRS_THREADSGR_OBJS@
-
-WANT_IRS_THREADSPW_OBJS=getpwent_r.@O@
-WANT_IRS_NISPW_OBJS= nis_pw.@O@
-WANT_IRS_DBPW_OBJS=irp_pw.@O@ lcl_pw.@O@
-WANT_IRS_PW_OBJS= dns_pw.@O@ gen_pw.@O@ getpwent.@O@ \
-       @WANT_IRS_DBPW_OBJS@ @WANT_IRS_NISPW_OBJS@ @WANT_IRS_THREADSPW_OBJS@
-
-WANT_IRS_NIS_OBJS= \
-       nis_ho.@O@ nis_ng.@O@ nis_nw.@O@ nis_pr.@O@ nis_sv.@O@
-
-OBJS=  @WANT_IRS_GR_OBJS@ @WANT_IRS_NIS_OBJS@ @WANT_IRS_THREADS_OBJS@ \
-       @WANT_IRS_PW_OBJS@ \
-       dns.@O@ dns_ho.@O@ dns_nw.@O@ dns_pr.@O@ \
-       dns_sv.@O@ gai_strerror.@O@ gen.@O@ gen_ho.@O@ \
-       gen_ng.@O@ gen_nw.@O@ gen_pr.@O@ gen_sv.@O@ \
-       getaddrinfo.@O@ gethostent.@O@ \
-       getnameinfo.@O@ getnetent.@O@ \
-       getnetgrent.@O@ getprotoent.@O@ getservent.@O@ \
-       hesiod.@O@ irp.@O@ irp_ho.@O@ irp_ng.@O@ irp_nw.@O@ \
-       irp_pr.@O@ irp_sv.@O@ irpmarshall.@O@ irs_data.@O@ \
-       lcl.@O@ lcl_ho.@O@ lcl_ng.@O@ lcl_nw.@O@ lcl_pr.@O@ \
-       lcl_sv.@O@ nis.@O@ nul_ng.@O@ util.@O@
-
-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 gethostent.c \
-       getnameinfo.c getnetent.c getnetent_r.c \
-       getnetgrent.c getprotoent.c getpwent.c getservent.c \
-       hesiod.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 irs_data.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 getgrent_r.c gethostent_r.c getnetgrent_r.c getprotoent_r.c \
-       getpwent_r.c getservent_r.c
-
-WANT_IRS_THREADSGR_OBJS=getgrent_r.@O@
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/irs/dns.c b/lib/bind/irs/dns.c
deleted file mode 100644 (file)
index cbea946..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns.c,v 1.5 2006/03/09 23:57:56 marka Exp $";
-#endif
-
-/*! \file
- * \brief
- * dns.c --- this is the top-level accessor function for the dns
- */
-
-#include "port_before.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* forward */
-
-static void            dns_close(struct irs_acc *);
-static struct __res_state *    dns_res_get(struct irs_acc *);
-static void            dns_res_set(struct irs_acc *, struct __res_state *,
-                               void (*)(void *));
-
-/* public */
-
-struct irs_acc *
-irs_dns_acc(const char *options) {
-       struct irs_acc *acc;
-       struct dns_p *dns;
-
-       UNUSED(options);
-
-       if (!(acc = memget(sizeof *acc))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(acc, 0x5e, sizeof *acc);
-       if (!(dns = memget(sizeof *dns))) {
-               errno = ENOMEM;
-               memput(acc, sizeof *acc);
-               return (NULL);
-       }
-       memset(dns, 0x5e, sizeof *dns);
-       dns->res = NULL;
-       dns->free_res = NULL;
-       if (hesiod_init(&dns->hes_ctx) < 0) {
-               /*
-                * We allow the dns accessor class to initialize
-                * despite hesiod failing to initialize correctly,
-                * since dns host queries don't depend on hesiod.
-                */
-               dns->hes_ctx = NULL;
-       }
-       acc->private = dns;
-#ifdef WANT_IRS_GR
-       acc->gr_map = irs_dns_gr;
-#else
-       acc->gr_map = NULL;
-#endif
-#ifdef WANT_IRS_PW
-       acc->pw_map = irs_dns_pw;
-#else
-       acc->pw_map = NULL;
-#endif
-       acc->sv_map = irs_dns_sv;
-       acc->pr_map = irs_dns_pr;
-       acc->ho_map = irs_dns_ho;
-       acc->nw_map = irs_dns_nw;
-       acc->ng_map = irs_nul_ng;
-       acc->res_get = dns_res_get;
-       acc->res_set = dns_res_set;
-       acc->close = dns_close;
-       return (acc);
-}
-
-/* methods */
-static struct __res_state *
-dns_res_get(struct irs_acc *this) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-
-       if (dns->res == NULL) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (res == NULL)
-                       return (NULL);
-               memset(res, 0, sizeof *res);
-               dns_res_set(this, res, free);
-       }
-
-       if ((dns->res->options & RES_INIT) == 0U &&
-           res_ninit(dns->res) < 0)
-               return (NULL);
-
-       return (dns->res);
-}
-
-static void
-dns_res_set(struct irs_acc *this, struct __res_state *res,
-           void (*free_res)(void *)) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-
-       if (dns->res && dns->free_res) {
-               res_nclose(dns->res);
-               (*dns->free_res)(dns->res);
-       }
-       dns->res = res;
-       dns->free_res = free_res;
-}
-
-static void
-dns_close(struct irs_acc *this) {
-       struct dns_p *dns;
-
-       dns = (struct dns_p *)this->private;
-       if (dns->res && dns->free_res)
-               (*dns->free_res)(dns->res);
-       if (dns->hes_ctx)
-               hesiod_end(dns->hes_ctx);
-       memput(dns, sizeof *dns);
-       memput(this, sizeof *this);
-}
-
diff --git a/lib/bind/irs/dns_gr.c b/lib/bind/irs/dns_gr.c
deleted file mode 100644 (file)
index 629d2fb..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_gr.c,v 1.4 2005/04/27 04:56:21 sra Exp $";
-#endif
-
-/*! \file
- * \brief
- * dns_gr.c --- this file contains the functions for accessing
- *     group information from Hesiod.
- */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_GR
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <sys/param.h>
-#include <sys/types.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <netinet/in.h> 
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* Types. */
-
-struct pvt {
-       /*
-        * This is our private accessor data.  It has a shared hesiod context.
-        */
-       struct dns_p *  dns;
-       /*
-        * Need space to store the entries read from the group file.
-        * The members list also needs space per member, and the
-        * strings making up the user names must be allocated
-        * somewhere.  Rather than doing lots of small allocations,
-        * we keep one buffer and resize it as needed.
-        */
-       struct group    group;
-       size_t          nmemb;          /*%< Malloc'd max index of gr_mem[]. */
-       char *          membuf;
-       size_t          membufsize;
-};
-
-/* Forward. */
-
-static struct group *  gr_next(struct irs_gr *);
-static struct group *  gr_byname(struct irs_gr *, const char *);
-static struct group *  gr_bygid(struct irs_gr *, gid_t);
-static void            gr_rewind(struct irs_gr *);
-static void            gr_close(struct irs_gr *);
-static int             gr_list(struct irs_gr *, const char *,
-                               gid_t, gid_t *, int *);
-static void            gr_minimize(struct irs_gr *);
-static struct __res_state * gr_res_get(struct irs_gr *);
-static void            gr_res_set(struct irs_gr *,
-                                  struct __res_state *,
-                                  void (*)(void *));
-
-static struct group *  get_hes_group(struct irs_gr *this,
-                                     const char *name,
-                                     const char *type);
-
-/* Public. */
-
-struct irs_gr *
-irs_dns_gr(struct irs_acc *this) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-       struct irs_gr *gr;
-       struct pvt *pvt;
-
-       if (!dns || !dns->hes_ctx) {
-               errno = ENODEV;
-               return (NULL);
-       }
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->dns = dns;
-       if (!(gr = memget(sizeof *gr))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(gr, 0x5e, sizeof *gr);
-       gr->private = pvt;
-       gr->next = gr_next;
-       gr->byname = gr_byname;
-       gr->bygid = gr_bygid;
-       gr->rewind = gr_rewind;
-       gr->close = gr_close;
-       gr->list = gr_list;
-       gr->minimize = gr_minimize;
-       gr->res_get = gr_res_get;
-       gr->res_set = gr_res_set;
-       return (gr);
-}
-
-/* methods */
-
-static void
-gr_close(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->group.gr_mem)
-               free(pvt->group.gr_mem);
-       if (pvt->membuf)
-               free(pvt->membuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct group *
-gr_next(struct irs_gr *this) {
-
-       UNUSED(this);
-
-       return (NULL);
-}
-
-static struct group *
-gr_byname(struct irs_gr *this, const char *name) {
-       return (get_hes_group(this, name, "group"));
-}
-
-static struct group *
-gr_bygid(struct irs_gr *this, gid_t gid) {
-       char name[32];
-
-       sprintf(name, "%ld", (long)gid);
-       return (get_hes_group(this, name, "gid"));
-}
-
-static void
-gr_rewind(struct irs_gr *this) {
-
-       UNUSED(this);
-
-       /* NOOP */
-}
-
-static int
-gr_list(struct irs_gr *this, const char *name,
-       gid_t basegid, gid_t *groups, int *ngroups)
-{
-       UNUSED(this);
-       UNUSED(name);
-       UNUSED(basegid);
-       UNUSED(groups);
-
-       *ngroups = 0;
-       /* There's some way to do this in Hesiod. */
-       return (-1);
-}
-
-static void
-gr_minimize(struct irs_gr *this) {
-
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private. */
-
-static struct group *
-get_hes_group(struct irs_gr *this, const char *name, const char *type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char **hes_list, *cp, **new;
-       size_t num_members = 0;
-       u_long t;
-
-       hes_list = hesiod_resolve(pvt->dns->hes_ctx, name, type);
-       if (!hes_list)
-               return (NULL);
-
-       /*
-        * Copy the returned hesiod string into storage space.
-        */
-       if (pvt->membuf)
-               free(pvt->membuf);
-       pvt->membuf = strdup(*hes_list);
-       hesiod_free_list(pvt->dns->hes_ctx, hes_list);
-
-       cp = pvt->membuf;
-       pvt->group.gr_name = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-       
-       pvt->group.gr_passwd = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       errno = 0;
-       t = strtoul(cp, NULL, 10);
-       if (errno == ERANGE)
-               goto cleanup;
-       pvt->group.gr_gid = (gid_t) t;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       cp++;
-
-       /*
-        * Parse the members out.
-        */
-       while (*cp) {
-               if (num_members+1 >= pvt->nmemb || pvt->group.gr_mem == NULL) {
-                       pvt->nmemb += 10;
-                       new = realloc(pvt->group.gr_mem,
-                                     pvt->nmemb * sizeof(char *));
-                       if (new == NULL)
-                               goto cleanup;
-                       pvt->group.gr_mem = new;
-               }
-               pvt->group.gr_mem[num_members++] = cp;
-               if (!(cp = strchr(cp, ',')))
-                       break;
-               *cp++ = '\0';
-       }
-       if (!pvt->group.gr_mem) {
-               pvt->group.gr_mem = malloc(sizeof(char*));
-               if (!pvt->group.gr_mem)
-                       goto cleanup;
-       }
-       pvt->group.gr_mem[num_members] = NULL;
-       
-       return (&pvt->group);
-       
- cleanup:      
-       if (pvt->group.gr_mem) {
-               free(pvt->group.gr_mem);
-               pvt->group.gr_mem = NULL;
-       }
-       if (pvt->membuf) {
-               free(pvt->membuf);
-               pvt->membuf = NULL;
-       }
-       return (NULL);
-}
-
-static struct __res_state *
-gr_res_get(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       return (__hesiod_res_get(dns->hes_ctx));
-}
-
-static void
-gr_res_set(struct irs_gr *this, struct __res_state * res,
-          void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       __hesiod_res_set(dns->hes_ctx, res, free_res);
-}
-
-#endif /* WANT_IRS_GR */
diff --git a/lib/bind/irs/dns_ho.c b/lib/bind/irs/dns_ho.c
deleted file mode 100644 (file)
index d5d7536..0000000
+++ /dev/null
@@ -1,1142 +0,0 @@
-/*
- * Copyright (c) 1985, 1988, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* from gethostnamadr.c        8.1 (Berkeley) 6/4/93 */
-/* BIND Id: gethnamaddr.c,v 8.15 1996/05/22 04:56:30 vixie Exp $ */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_ho.c,v 1.21 2006/12/07 03:51:29 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports. */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <syslog.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "dns_p.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
-/* Definitions. */
-
-#define        MAXALIASES      35
-#define        MAXADDRS        35
-
-#define MAXPACKET (65535)      /*%< Maximum TCP message size */
-#define BOUNDS_CHECK(ptr, count) \
-       if ((ptr) + (count) > eom) { \
-               had_error++; \
-               continue; \
-       } else (void)0
-
-typedef union {
-       HEADER hdr;
-       u_char buf[MAXPACKET];
-} querybuf;
-
-struct dns_res_target {
-       struct dns_res_target *next;
-       querybuf qbuf;          /*%< query buffer */
-       u_char *answer;         /*%< buffer to put answer */
-       int anslen;             /*%< size of answer buffer */
-       int qclass, qtype;      /*%< class and type of query */
-       int action;             /*%< condition whether query is really issued */
-       char qname[MAXDNAME +1]; /*%< domain name */
-#if 0
-       int n;                  /*%< result length */
-#endif
-};
-enum {RESTGT_DOALWAYS, RESTGT_AFTERFAILURE, RESTGT_IGNORE};
-enum {RESQRY_SUCCESS, RESQRY_FAIL};
-
-struct pvt {
-       struct hostent  host;
-       char *          h_addr_ptrs[MAXADDRS + 1];
-       char *          host_aliases[MAXALIASES];
-       char            hostbuf[8*1024];
-       u_char          host_addr[16];  /*%< IPv4 or IPv6 */
-       struct __res_state  *res;
-       void            (*free_res)(void *);
-};
-
-typedef union {
-       int32_t al;
-       char ac;
-} align;
-
-static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
-static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
-/* Note: the IPv6 loopback address is in the "tunnel" space */
-static const u_char v6local[] = { 0,0, 0,1 }; /*%< last 4 bytes of IPv6 addr */
-/* Forwards. */
-
-static void            ho_close(struct irs_ho *this);
-static struct hostent *        ho_byname(struct irs_ho *this, const char *name);
-static struct hostent *        ho_byname2(struct irs_ho *this, const char *name,
-                                  int af);
-static struct hostent *        ho_byaddr(struct irs_ho *this, const void *addr,
-                                 int len, int af);
-static struct hostent *        ho_next(struct irs_ho *this);
-static void            ho_rewind(struct irs_ho *this);
-static void            ho_minimize(struct irs_ho *this);
-static struct __res_state * ho_res_get(struct irs_ho *this);
-static void            ho_res_set(struct irs_ho *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name,
-                                    const struct addrinfo *pai);
-
-static void            map_v4v6_hostent(struct hostent *hp, char **bp,
-                                        char *ep);
-static void            addrsort(res_state, char **, int);
-static struct hostent *        gethostans(struct irs_ho *this,
-                                  const u_char *ansbuf, int anslen,
-                                  const char *qname, int qtype,
-                                  int af, int size,
-                                  struct addrinfo **ret_aip,
-                                  const struct addrinfo *pai);
-static int add_hostent(struct pvt *pvt, char *bp, char **hap,
-                      struct addrinfo *ai);
-static int             init(struct irs_ho *this);
-
-/* Exports. */
-
-struct irs_ho *
-irs_dns_ho(struct irs_acc *this) {
-       struct irs_ho *ho;
-       struct pvt *pvt;
-
-       UNUSED(this);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-
-       if (!(ho = memget(sizeof *ho))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ho, 0x5e, sizeof *ho);
-       ho->private = pvt;
-       ho->close = ho_close;
-       ho->byname = ho_byname;
-       ho->byname2 = ho_byname2;
-       ho->byaddr = ho_byaddr;
-       ho->next = ho_next;
-       ho->rewind = ho_rewind;
-       ho->minimize = ho_minimize;
-       ho->res_get = ho_res_get;
-       ho->res_set = ho_res_set;
-       ho->addrinfo = ho_addrinfo;
-       return (ho);
-}
-
-/* Methods. */
-
-static void
-ho_close(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ho_minimize(this);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct hostent *
-ho_byname(struct irs_ho *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       if (pvt->res->options & RES_USE_INET6) {
-               hp = ho_byname2(this, name, AF_INET6);
-               if (hp)
-                       return (hp);
-       }
-       return (ho_byname2(this, name, AF_INET));
-}
-
-static struct hostent *
-ho_byname2(struct irs_ho *this, const char *name, int af)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp = NULL;
-       int n, size;
-       char tmp[NS_MAXDNAME];
-       const char *cp;
-       struct addrinfo ai;
-       struct dns_res_target *q, *p;
-       int querystate = RESQRY_FAIL;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       q = memget(sizeof(*q));
-       if (q == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = ENOMEM;
-               goto cleanup;
-       }
-       memset(q, 0, sizeof(*q));
-
-       switch (af) {
-       case AF_INET:
-               size = INADDRSZ;
-               q->qclass = C_IN;
-               q->qtype = T_A;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->action = RESTGT_DOALWAYS;
-               break;
-       case AF_INET6:
-               size = IN6ADDRSZ;
-               q->qclass = C_IN;
-               q->qtype = T_AAAA;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->action = RESTGT_DOALWAYS;
-               break;
-       default:
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = EAFNOSUPPORT;
-               hp = NULL;
-               goto cleanup;
-       }
-
-       /*
-        * if there aren't any dots, it could be a user-level alias.
-        * this is also done in res_nquery() since we are not the only
-        * function that looks up host names.
-        */
-       if (!strchr(name, '.') && (cp = res_hostalias(pvt->res, name,
-                                                     tmp, sizeof tmp)))
-               name = cp;
-
-       for (p = q; p; p = p->next) {
-               switch(p->action) {
-               case RESTGT_DOALWAYS:
-                       break;
-               case RESTGT_AFTERFAILURE:
-                       if (querystate == RESQRY_SUCCESS)
-                               continue;
-                       break;
-               case RESTGT_IGNORE:
-                       continue;
-               }
-
-               if ((n = res_nsearch(pvt->res, name, p->qclass, p->qtype,
-                                    p->answer, p->anslen)) < 0) {
-                       querystate = RESQRY_FAIL;
-                       continue;
-               }
-
-               memset(&ai, 0, sizeof(ai));
-               ai.ai_family = af;
-               if ((hp = gethostans(this, p->answer, n, name, p->qtype,
-                                    af, size, NULL,
-                                    (const struct addrinfo *)&ai)) != NULL)
-                       goto cleanup;   /*%< no more loop is necessary */
-               querystate = RESQRY_FAIL;
-               continue;
-       }
-
- cleanup:
-       if (q != NULL)
-               memput(q, sizeof(*q));
-       return(hp);
-}
-
-static struct hostent *
-ho_byaddr(struct irs_ho *this, const void *addr, int len, int af)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       const u_char *uaddr = addr;
-       char *qp;
-       struct hostent *hp = NULL;
-       struct addrinfo ai;
-       struct dns_res_target *q, *q2, *p;
-       int n, size, i;
-       int querystate = RESQRY_FAIL;
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       q = memget(sizeof(*q));
-       q2 = memget(sizeof(*q2));
-       if (q == NULL || q2 == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = ENOMEM;
-               goto cleanup;
-       }
-       memset(q, 0, sizeof(*q));
-       memset(q2, 0, sizeof(*q2));
-
-       if (af == AF_INET6 && len == IN6ADDRSZ &&
-           (!memcmp(uaddr, mapped, sizeof mapped) ||
-           (!memcmp(uaddr, tunnelled, sizeof tunnelled) &&
-            memcmp(&uaddr[sizeof tunnelled], v6local, sizeof(v6local))))) {
-               /* Unmap. */
-               addr = (const char *)addr + sizeof mapped;
-               uaddr += sizeof mapped;
-               af = AF_INET;
-               len = INADDRSZ;
-       }
-       switch (af) {
-       case AF_INET:
-               size = INADDRSZ;
-               q->qclass = C_IN;
-               q->qtype = T_PTR;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->action = RESTGT_DOALWAYS;
-               break;
-       case AF_INET6:
-               size = IN6ADDRSZ;
-               q->qclass = C_IN;
-               q->qtype = T_PTR;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->next = q2;
-               q->action = RESTGT_DOALWAYS;
-               q2->qclass = C_IN;
-               q2->qtype = T_PTR;
-               q2->answer = q2->qbuf.buf;
-               q2->anslen = sizeof(q2->qbuf);
-               if ((pvt->res->options & RES_NO_NIBBLE2) != 0U)
-                       q2->action = RESTGT_IGNORE;
-               else
-                       q2->action = RESTGT_AFTERFAILURE;
-               break;
-       default:
-               errno = EAFNOSUPPORT;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               hp = NULL;
-               goto cleanup;
-       }
-       if (size > len) {
-               errno = EINVAL;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               hp = NULL;
-               goto cleanup;
-       }
-       switch (af) {
-       case AF_INET:
-               qp = q->qname;
-               (void) sprintf(qp, "%u.%u.%u.%u.in-addr.arpa",
-                              (uaddr[3] & 0xff),
-                              (uaddr[2] & 0xff),
-                              (uaddr[1] & 0xff),
-                              (uaddr[0] & 0xff));
-               break;
-       case AF_INET6:
-               if (q->action != RESTGT_IGNORE) {
-                       const char *nibsuff = res_get_nibblesuffix(pvt->res);
-                       qp = q->qname;
-                       for (n = IN6ADDRSZ - 1; n >= 0; n--) {
-                               i = SPRINTF((qp, "%x.%x.",
-                                              uaddr[n] & 0xf,
-                                              (uaddr[n] >> 4) & 0xf));
-                               if (i != 4)
-                                       abort();
-                               qp += i;
-                       }
-                       if (strlen(q->qname) + strlen(nibsuff) + 1 >
-                           sizeof q->qname) {
-                               errno = ENAMETOOLONG;
-                               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-                               hp = NULL;
-                               goto cleanup;
-                       }
-                       strcpy(qp, nibsuff);    /* (checked) */
-               }
-               if (q2->action != RESTGT_IGNORE) {
-                       const char *nibsuff2 = res_get_nibblesuffix2(pvt->res);
-                       qp = q2->qname;
-                       for (n = IN6ADDRSZ - 1; n >= 0; n--) {
-                               i = SPRINTF((qp, "%x.%x.",
-                                              uaddr[n] & 0xf,
-                                              (uaddr[n] >> 4) & 0xf));
-                               if (i != 4)
-                                       abort();
-                               qp += i;
-                       }
-                       if (strlen(q2->qname) + strlen(nibsuff2) + 1 >
-                           sizeof q2->qname) {
-                               errno = ENAMETOOLONG;
-                               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-                               hp = NULL;
-                               goto cleanup;
-                       }
-                       strcpy(qp, nibsuff2);   /* (checked) */
-               }
-               break;
-       default:
-               abort();
-       }
-
-       for (p = q; p; p = p->next) {
-               switch(p->action) {
-               case RESTGT_DOALWAYS:
-                       break;
-               case RESTGT_AFTERFAILURE:
-                       if (querystate == RESQRY_SUCCESS)
-                               continue;
-                       break;
-               case RESTGT_IGNORE:
-                       continue;
-               }
-
-               if ((n = res_nquery(pvt->res, p->qname, p->qclass, p->qtype,
-                                   p->answer, p->anslen)) < 0) {
-                       querystate = RESQRY_FAIL;
-                       continue;
-               }
-
-               memset(&ai, 0, sizeof(ai));
-               ai.ai_family = af;
-               hp = gethostans(this, p->answer, n, p->qname, T_PTR, af, size,
-                               NULL, (const struct addrinfo *)&ai);
-               if (!hp) {
-                       querystate = RESQRY_FAIL;
-                       continue;
-               }
-                       
-               memcpy(pvt->host_addr, addr, len);
-               pvt->h_addr_ptrs[0] = (char *)pvt->host_addr;
-               pvt->h_addr_ptrs[1] = NULL;
-               if (af == AF_INET && (pvt->res->options & RES_USE_INET6)) {
-                       map_v4v6_address((char*)pvt->host_addr,
-                                        (char*)pvt->host_addr);
-                       pvt->host.h_addrtype = AF_INET6;
-                       pvt->host.h_length = IN6ADDRSZ;
-               }
-
-               RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-               goto cleanup;   /*%< no more loop is necessary. */
-       }
-       hp = NULL; /*%< H_ERRNO was set by subroutines */
- cleanup:
-       if (q != NULL)
-               memput(q, sizeof(*q));
-       if (q2 != NULL)
-               memput(q2, sizeof(*q2));
-       return(hp);
-}
-
-static struct hostent *
-ho_next(struct irs_ho *this) {
-
-       UNUSED(this);
-
-       return (NULL);
-}
-
-static void
-ho_rewind(struct irs_ho *this) {
-
-       UNUSED(this);
-
-       /* NOOP */
-}
-
-static void
-ho_minimize(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-}
-
-static struct __res_state *
-ho_res_get(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               ho_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-/* XXX */
-extern struct addrinfo *addr2addrinfo __P((const struct addrinfo *,
-                                          const char *));
-
-static struct addrinfo *
-ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       int n;
-       char tmp[NS_MAXDNAME];
-       const char *cp;
-       struct dns_res_target *q, *q2, *p;
-       struct addrinfo sentinel, *cur;
-       int querystate = RESQRY_FAIL;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-
-       q = memget(sizeof(*q));
-       q2 = memget(sizeof(*q2));
-       if (q == NULL || q2 == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = ENOMEM;
-               goto cleanup;
-       }
-       memset(q, 0, sizeof(*q2));
-       memset(q2, 0, sizeof(*q2));
-
-       switch (pai->ai_family) {
-       case AF_UNSPEC:
-               /* prefer IPv6 */
-               q->qclass = C_IN;
-               q->qtype = T_AAAA;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->next = q2;
-               q->action = RESTGT_DOALWAYS;
-               q2->qclass = C_IN;
-               q2->qtype = T_A;
-               q2->answer = q2->qbuf.buf;
-               q2->anslen = sizeof(q2->qbuf);
-               q2->action = RESTGT_DOALWAYS;
-               break;
-       case AF_INET:
-               q->qclass = C_IN;
-               q->qtype = T_A;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->action = RESTGT_DOALWAYS;
-               break;
-       case AF_INET6:
-               q->qclass = C_IN;
-               q->qtype = T_AAAA;
-               q->answer = q->qbuf.buf;
-               q->anslen = sizeof(q->qbuf);
-               q->action = RESTGT_DOALWAYS;
-               break;
-       default:
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /*%< better error? */
-               goto cleanup;
-       }
-
-       /*
-        * if there aren't any dots, it could be a user-level alias.
-        * this is also done in res_nquery() since we are not the only
-        * function that looks up host names.
-        */
-       if (!strchr(name, '.') && (cp = res_hostalias(pvt->res, name,
-                                                     tmp, sizeof tmp)))
-               name = cp;
-
-       for (p = q; p; p = p->next) {
-               struct addrinfo *ai;
-
-               switch(p->action) {
-               case RESTGT_DOALWAYS:
-                       break;
-               case RESTGT_AFTERFAILURE:
-                       if (querystate == RESQRY_SUCCESS)
-                               continue;
-                       break;
-               case RESTGT_IGNORE:
-                       continue;
-               }
-
-               if ((n = res_nsearch(pvt->res, name, p->qclass, p->qtype,
-                                    p->answer, p->anslen)) < 0) {
-                       querystate = RESQRY_FAIL;
-                       continue;
-               }
-               (void)gethostans(this, p->answer, n, name, p->qtype,
-                                pai->ai_family, /*%< XXX: meaningless */
-                                0, &ai, pai);
-               if (ai) {
-                       querystate = RESQRY_SUCCESS;
-                       cur->ai_next = ai;
-                       while (cur->ai_next)
-                               cur = cur->ai_next;
-               } else
-                       querystate = RESQRY_FAIL;
-       }
-
- cleanup:
-       if (q != NULL)
-               memput(q, sizeof(*q));
-       if (q2 != NULL)
-               memput(q2, sizeof(*q2));
-       return(sentinel.ai_next);
-}
-
-static void
-ho_res_set(struct irs_ho *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-/* Private. */
-
-static struct hostent *
-gethostans(struct irs_ho *this,
-          const u_char *ansbuf, int anslen, const char *qname, int qtype,
-          int af, int size,    /*!< meaningless for addrinfo cases  */
-          struct addrinfo **ret_aip, const struct addrinfo *pai)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       int type, class, ancount, qdcount, n, haveanswer, had_error;
-       int error = NETDB_SUCCESS;
-       int (*name_ok)(const char *);
-       const HEADER *hp;
-       const u_char *eom;
-       const u_char *eor;
-       const u_char *cp;
-       const char *tname;
-       const char *hname;
-       char *bp, *ep, **ap, **hap;
-       char tbuf[MAXDNAME+1];
-       struct addrinfo sentinel, *cur, ai;
-
-       if (pai == NULL) abort();
-       if (ret_aip != NULL)
-               *ret_aip = NULL;
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-
-       tname = qname;
-       eom = ansbuf + anslen;
-       switch (qtype) {
-       case T_A:
-       case T_AAAA:
-       case T_ANY:     /*%< use T_ANY only for T_A/T_AAAA lookup */
-               name_ok = res_hnok;
-               break;
-       case T_PTR:
-               name_ok = res_dnok;
-               break;
-       default:
-               abort();
-       }
-
-       pvt->host.h_addrtype = af;
-       pvt->host.h_length = size;
-       hname = pvt->host.h_name = NULL;
-
-       /*
-        * Find first satisfactory answer.
-        */
-       if (ansbuf + HFIXEDSZ > eom) {
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-               return (NULL);
-       }
-       hp = (const HEADER *)ansbuf;
-       ancount = ntohs(hp->ancount);
-       qdcount = ntohs(hp->qdcount);
-       bp = pvt->hostbuf;
-       ep = pvt->hostbuf + sizeof(pvt->hostbuf);
-       cp = ansbuf + HFIXEDSZ;
-       if (qdcount != 1) {
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-               return (NULL);
-       }
-       n = dn_expand(ansbuf, eom, cp, bp, ep - bp);
-       if (n < 0 || !maybe_ok(pvt->res, bp, name_ok)) {
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-               return (NULL);
-       }
-       cp += n + QFIXEDSZ;
-       if (cp > eom) {
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-               return (NULL);
-       }
-       if (qtype == T_A || qtype == T_AAAA || qtype == T_ANY) {
-               /* res_nsend() has already verified that the query name is the
-                * same as the one we sent; this just gets the expanded name
-                * (i.e., with the succeeding search-domain tacked on).
-                */
-               n = strlen(bp) + 1;             /*%< for the \\0 */
-               if (n > MAXHOSTNAMELEN) {
-                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                       return (NULL);
-               }
-               pvt->host.h_name = bp;
-               hname = bp;
-               bp += n;
-               /* The qname can be abbreviated, but hname is now absolute. */
-               qname = pvt->host.h_name;
-       }
-       ap = pvt->host_aliases;
-       *ap = NULL;
-       pvt->host.h_aliases = pvt->host_aliases;
-       hap = pvt->h_addr_ptrs;
-       *hap = NULL;
-       pvt->host.h_addr_list = pvt->h_addr_ptrs;
-       haveanswer = 0;
-       had_error = 0;
-       while (ancount-- > 0 && cp < eom && !had_error) {
-               n = dn_expand(ansbuf, eom, cp, bp, ep - bp);
-               if (n < 0 || !maybe_ok(pvt->res, bp, name_ok)) {
-                       had_error++;
-                       continue;
-               }
-               cp += n;                        /*%< name */
-               BOUNDS_CHECK(cp, 3 * INT16SZ + INT32SZ);
-               type = ns_get16(cp);
-               cp += INT16SZ;                  /*%< type */
-               class = ns_get16(cp);
-               cp += INT16SZ + INT32SZ;        /*%< class, TTL */
-               n = ns_get16(cp);
-               cp += INT16SZ;                  /*%< len */
-               BOUNDS_CHECK(cp, n);
-               if (class != C_IN) {
-                       cp += n;
-                       continue;
-               }
-               eor = cp + n;
-               if ((qtype == T_A || qtype == T_AAAA || qtype == T_ANY) &&
-                   type == T_CNAME) {
-                       if (haveanswer) {
-                               int level = LOG_CRIT;
-#ifdef LOG_SECURITY
-                               level |= LOG_SECURITY;
-#endif
-                               syslog(level,
- "gethostans: possible attempt to exploit buffer overflow while looking up %s",
-                                       *qname ? qname : ".");
-                       }
-                       n = dn_expand(ansbuf, eor, cp, tbuf, sizeof tbuf);
-                       if (n < 0 || !maybe_ok(pvt->res, tbuf, name_ok)) {
-                               had_error++;
-                               continue;
-                       }
-                       cp += n;
-                       /* Store alias. */
-                       if (ap >= &pvt->host_aliases[MAXALIASES-1])
-                               continue;
-                       *ap++ = bp;
-                       n = strlen(bp) + 1;     /*%< for the \\0 */
-                       bp += n;
-                       /* Get canonical name. */
-                       n = strlen(tbuf) + 1;   /*%< for the \\0 */
-                       if (n > (ep - bp) || n > MAXHOSTNAMELEN) {
-                               had_error++;
-                               continue;
-                       }
-                       strcpy(bp, tbuf);       /* (checked) */
-                       pvt->host.h_name = bp;
-                       hname = bp;
-                       bp += n;
-                       continue;
-               }
-               if (qtype == T_PTR && type == T_CNAME) {
-                       n = dn_expand(ansbuf, eor, cp, tbuf, sizeof tbuf);
-                       if (n < 0 || !maybe_dnok(pvt->res, tbuf)) {
-                               had_error++;
-                               continue;
-                       }
-                       cp += n;
-#ifdef RES_USE_DNAME
-                       if ((pvt->res->options & RES_USE_DNAME) != 0U)
-#endif
-                       {
-                               /*
-                                * We may be able to check this regardless
-                                * of the USE_DNAME bit, but we add the check
-                                * for now since the DNAME support is
-                                * experimental.
-                                */
-                               if (ns_samename(tname, bp) != 1)
-                                       continue;
-                       }
-                       /* Get canonical name. */
-                       n = strlen(tbuf) + 1;   /*%< for the \\0 */
-                       if (n > (ep - bp)) {
-                               had_error++;
-                               continue;
-                       }
-                       strcpy(bp, tbuf);       /* (checked) */
-                       tname = bp;
-                       bp += n;
-                       continue;
-               }
-               if (qtype == T_ANY) {
-                       if (!(type == T_A || type == T_AAAA)) {
-                               cp += n;
-                               continue;
-                       }
-               } else if (type != qtype) {
-                       cp += n;
-                       continue;
-               }
-               switch (type) {
-               case T_PTR:
-                       if (ret_aip != NULL) {
-                               /* addrinfo never needs T_PTR */
-                               cp += n;
-                               continue;
-                       }
-                       if (ns_samename(tname, bp) != 1) {
-                               cp += n;
-                               continue;
-                       }
-                       n = dn_expand(ansbuf, eor, cp, bp, ep - bp);
-                       if (n < 0 || !maybe_hnok(pvt->res, bp) ||
-                           n >= MAXHOSTNAMELEN) {
-                               had_error++;
-                               break;
-                       }
-                       cp += n;
-                       if (!haveanswer) {
-                               pvt->host.h_name = bp;
-                               hname = bp;
-                       }
-                       else if (ap < &pvt->host_aliases[MAXALIASES-1])
-                               *ap++ = bp;
-                       else
-                               n = -1;
-                       if (n != -1) {
-                               n = strlen(bp) + 1;     /*%< for the \\0 */
-                               bp += n;
-                       }
-                       break;
-               case T_A:
-               case T_AAAA:
-                       if (ns_samename(hname, bp) != 1) {
-                               cp += n;
-                               continue;
-                       }
-                       if (type == T_A && n != INADDRSZ) {
-                               cp += n;
-                               continue;
-                       }
-                       if (type == T_AAAA && n != IN6ADDRSZ) {
-                               cp += n;
-                               continue;
-                       }
-
-                       /* make addrinfo. don't overwrite constant PAI */
-                       ai = *pai;
-                       ai.ai_family = (type == T_AAAA) ? AF_INET6 : AF_INET;
-                       cur->ai_next = addr2addrinfo(
-                                       (const struct addrinfo *)&ai,
-                                       (const char *)cp);
-                       if (cur->ai_next == NULL)
-                               had_error++;
-
-                       if (!haveanswer) {
-                               int nn;
-
-                               nn = strlen(bp) + 1;    /*%< for the \\0 */
-                               if (nn >= MAXHOSTNAMELEN) {
-                                       cp += n;
-                                       had_error++;
-                                       continue;
-                               }
-                               pvt->host.h_name = bp;
-                               hname = bp;
-                               bp += nn;
-                       }
-                       /* Ensure alignment. */
-                       bp = (char *)(((u_long)bp + (sizeof(align) - 1)) &
-                                     ~(sizeof(align) - 1));
-                       /* Avoid overflows. */
-                       if (bp + n > &pvt->hostbuf[sizeof(pvt->hostbuf) - 1]) {
-                               had_error++;
-                               continue;
-                       }
-                       if (ret_aip) { /*%< need addrinfo. keep it. */
-                               while (cur->ai_next)
-                                       cur = cur->ai_next;
-                       } else if (cur->ai_next) { /*%< need hostent */
-                               struct addrinfo *aip = cur->ai_next;
-
-                               for (aip = cur->ai_next; aip;
-                                    aip = aip->ai_next) {
-                                       int m;
-
-                                       m = add_hostent(pvt, bp, hap, aip);
-                                       if (m < 0) {
-                                               had_error++;
-                                               break;
-                                       }
-                                       if (m == 0)
-                                               continue;
-                                       if (hap < &pvt->h_addr_ptrs[MAXADDRS-1])
-                                               hap++;
-                                       *hap = NULL;
-                                       bp += m;
-                               }
-
-                               freeaddrinfo(cur->ai_next);
-                               cur->ai_next = NULL;
-                       }
-                       cp += n;
-                       break;
-               default:
-                       abort();
-               }
-               if (!had_error)
-                       haveanswer++;
-       }
-       if (haveanswer) {
-               if (ret_aip == NULL) {
-                       *ap = NULL;
-                       *hap = NULL;
-
-                       if (pvt->res->nsort && haveanswer > 1 && qtype == T_A)
-                               addrsort(pvt->res, pvt->h_addr_ptrs,
-                                        haveanswer);
-                       if (pvt->host.h_name == NULL) {
-                               n = strlen(qname) + 1;  /*%< for the \\0 */
-                               if (n > (ep - bp) || n >= MAXHOSTNAMELEN)
-                                       goto no_recovery;
-                               strcpy(bp, qname);      /* (checked) */
-                               pvt->host.h_name = bp;
-                               bp += n;
-                       }
-                       if (pvt->res->options & RES_USE_INET6)
-                               map_v4v6_hostent(&pvt->host, &bp, ep);
-                       RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-                       return (&pvt->host);
-               } else {
-                       if ((pai->ai_flags & AI_CANONNAME) != 0) {
-                               if (pvt->host.h_name == NULL) {
-                                       sentinel.ai_next->ai_canonname =
-                                               strdup(qname);
-                               }
-                               else {
-                                       sentinel.ai_next->ai_canonname =
-                                               strdup(pvt->host.h_name);
-                               }
-                       }
-                       *ret_aip = sentinel.ai_next;
-                       return(NULL);
-               }
-       }
- no_recovery:
-       if (sentinel.ai_next) {
-               /* this should be impossible, but check it for safety */
-               freeaddrinfo(sentinel.ai_next);
-       }
-       if (error == NETDB_SUCCESS)
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-       else
-               RES_SET_H_ERRNO(pvt->res, error);
-       return(NULL);
-}
-
-static int
-add_hostent(struct pvt *pvt, char *bp, char **hap, struct addrinfo *ai)
-{
-       int addrlen;
-       char *addrp;
-       const char **tap;
-       char *obp = bp;
-
-       switch(ai->ai_addr->sa_family) {
-       case AF_INET6:
-               addrlen = IN6ADDRSZ;
-               addrp = (char *)&((struct sockaddr_in6 *)ai->ai_addr)->sin6_addr;
-               break;
-       case AF_INET:
-               addrlen = INADDRSZ;
-               addrp = (char *)&((struct sockaddr_in *)ai->ai_addr)->sin_addr;
-               break;
-       default:
-               return(-1);     /*%< abort? */
-       }
-
-       /* Ensure alignment. */
-       bp = (char *)(((u_long)bp + (sizeof(align) - 1)) &
-                     ~(sizeof(align) - 1));
-       /* Avoid overflows. */
-       if (bp + addrlen > &pvt->hostbuf[sizeof(pvt->hostbuf) - 1])
-               return(-1);
-       if (hap >= &pvt->h_addr_ptrs[MAXADDRS-1])
-               return(0); /*%< fail, but not treat it as an error. */
-       /* Suppress duplicates. */
-       for (tap = (const char **)pvt->h_addr_ptrs;
-            *tap != NULL;
-            tap++)
-               if (memcmp(*tap, addrp, addrlen) == 0)
-                       break;
-       if (*tap != NULL)
-               return (0);
-
-       memcpy(*hap = bp, addrp, addrlen);
-       return((bp + addrlen) - obp);
-}
-
-static void
-map_v4v6_hostent(struct hostent *hp, char **bpp, char *ep) {
-       char **ap;
-
-       if (hp->h_addrtype != AF_INET || hp->h_length != INADDRSZ)
-               return;
-       hp->h_addrtype = AF_INET6;
-       hp->h_length = IN6ADDRSZ;
-       for (ap = hp->h_addr_list; *ap; ap++) {
-               int i = (u_long)*bpp % sizeof(align);
-
-               if (i != 0)
-                       i = sizeof(align) - i;
-
-               if ((ep - *bpp) < (i + IN6ADDRSZ)) {
-                       /* Out of memory.  Truncate address list here. */
-                       *ap = NULL;
-                       return;
-               }
-               *bpp += i;
-               map_v4v6_address(*ap, *bpp);
-               *ap = *bpp;
-               *bpp += IN6ADDRSZ;
-       }
-}
-
-static void
-addrsort(res_state statp, char **ap, int num) {
-       int i, j, needsort = 0, aval[MAXADDRS];
-       char **p;
-
-       p = ap;
-       for (i = 0; i < num; i++, p++) {
-               for (j = 0 ; (unsigned)j < statp->nsort; j++)
-                       if (statp->sort_list[j].addr.s_addr == 
-                           (((struct in_addr *)(*p))->s_addr &
-                            statp->sort_list[j].mask))
-                               break;
-               aval[i] = j;
-               if (needsort == 0 && i > 0 && j < aval[i-1])
-                       needsort = i;
-       }
-       if (!needsort)
-               return;
-
-       while (needsort < num) {
-               for (j = needsort - 1; j >= 0; j--) {
-                       if (aval[j] > aval[j+1]) {
-                               char *hp;
-
-                               i = aval[j];
-                               aval[j] = aval[j+1];
-                               aval[j+1] = i;
-
-                               hp = ap[j];
-                               ap[j] = ap[j+1];
-                               ap[j+1] = hp;
-
-                       } else
-                               break;
-               }
-               needsort++;
-       }
-}
-
-static int
-init(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !ho_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0U) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
diff --git a/lib/bind/irs/dns_nw.c b/lib/bind/irs/dns_nw.c
deleted file mode 100644 (file)
index dc1e617..0000000
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_nw.c,v 1.12 2005/04/27 04:56:22 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports. */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "dns_p.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
-/* Definitions. */
-
-#define        MAXALIASES      35
-
-#define        MAXPACKET       (64*1024)
-
-struct pvt {
-       struct nwent    net;
-       char *          ali[MAXALIASES];
-       char            buf[BUFSIZ+1];
-       struct __res_state * res;
-       void            (*free_res)(void *);
-};
-
-typedef union {
-       long    al;
-       char    ac;
-} align;
-
-enum by_what { by_addr, by_name };
-
-/* Forwards. */
-
-static void            nw_close(struct irs_nw *);
-static struct nwent *  nw_byname(struct irs_nw *, const char *, int);
-static struct nwent *  nw_byaddr(struct irs_nw *, void *, int, int);
-static struct nwent *  nw_next(struct irs_nw *);
-static void            nw_rewind(struct irs_nw *);
-static void            nw_minimize(struct irs_nw *);
-static struct __res_state * nw_res_get(struct irs_nw *this);
-static void            nw_res_set(struct irs_nw *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-
-static struct nwent *  get1101byaddr(struct irs_nw *, u_char *, int);
-static struct nwent *  get1101byname(struct irs_nw *, const char *);
-static struct nwent *  get1101answer(struct irs_nw *,
-                                     u_char *ansbuf, int anslen,
-                                     enum by_what by_what,
-                                     int af, const char *name,
-                                     const u_char *addr, int addrlen);
-static struct nwent *  get1101mask(struct irs_nw *this, struct nwent *);
-static int             make1101inaddr(const u_char *, int, char *, int);
-static void            normalize_name(char *name);
-static int             init(struct irs_nw *this);
-
-/* Exports. */
-
-struct irs_nw *
-irs_dns_nw(struct irs_acc *this) {
-       struct irs_nw *nw;
-       struct pvt *pvt;
-
-       UNUSED(this);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(nw = memget(sizeof *nw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nw, 0x5e, sizeof *nw);
-       nw->private = pvt;
-       nw->close = nw_close;
-       nw->byname = nw_byname;
-       nw->byaddr = nw_byaddr;
-       nw->next = nw_next;
-       nw->rewind = nw_rewind;
-       nw->minimize = nw_minimize;
-       nw->res_get = nw_res_get;
-       nw->res_set = nw_res_set;
-       return (nw);
-}
-
-/* Methods. */
-
-static void
-nw_close(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       nw_minimize(this);
-
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct nwent *
-nw_byname(struct irs_nw *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       switch (af) {
-       case AF_INET:
-               return (get1101byname(this, name));
-       default:
-               (void)NULL;
-       }
-       RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-       errno = EAFNOSUPPORT;
-       return (NULL);
-}
-
-static struct nwent *
-nw_byaddr(struct irs_nw *this, void *net, int len, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       switch (af) {
-       case AF_INET:
-               return (get1101byaddr(this, net, len));
-       default:
-               (void)NULL;
-       }
-       RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-       errno = EAFNOSUPPORT;
-       return (NULL);
-}
-
-static struct nwent *
-nw_next(struct irs_nw *this) {
-
-       UNUSED(this);
-
-       return (NULL);
-}
-
-static void
-nw_rewind(struct irs_nw *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-static void
-nw_minimize(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-}
-
-static struct __res_state *
-nw_res_get(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               nw_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-nw_res_set(struct irs_nw *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-/* Private. */
-
-static struct nwent *
-get1101byname(struct irs_nw *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       u_char *ansbuf;
-       int anslen;
-       struct nwent *result;
-
-       ansbuf = memget(MAXPACKET);
-       if (ansbuf == NULL) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       anslen = res_nsearch(pvt->res, name, C_IN, T_PTR, ansbuf, MAXPACKET);
-       if (anslen < 0) {
-               memput(ansbuf, MAXPACKET);
-               return (NULL);
-       }
-       result = get1101mask(this, get1101answer(this, ansbuf, anslen, by_name,
-                                                AF_INET, name, NULL, 0));
-       memput(ansbuf, MAXPACKET);
-       return (result);
-}
-
-static struct nwent *
-get1101byaddr(struct irs_nw *this, u_char *net, int len) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char qbuf[sizeof "255.255.255.255.in-addr.arpa"];
-       struct nwent *result;
-       u_char *ansbuf;
-       int anslen;
-
-       if (len < 1 || len > 32) {
-               errno = EINVAL;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       if (make1101inaddr(net, len, qbuf, sizeof qbuf) < 0)
-               return (NULL);
-       ansbuf = memget(MAXPACKET);
-       if (ansbuf == NULL) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       anslen = res_nquery(pvt->res, qbuf, C_IN, T_PTR, ansbuf, MAXPACKET);
-       if (anslen < 0) {
-               memput(ansbuf, MAXPACKET);
-               return (NULL);
-       }
-       result = get1101mask(this, get1101answer(this, ansbuf, anslen, by_addr,
-                                                AF_INET, NULL, net, len));
-       memput(ansbuf, MAXPACKET);
-       return (result);
-}
-
-static struct nwent *
-get1101answer(struct irs_nw *this,
-             u_char *ansbuf, int anslen, enum by_what by_what,
-             int af, const char *name, const u_char *addr, int addrlen)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       int type, class, ancount, qdcount, haveanswer;
-       char *bp, *ep, **ap;
-       u_char *cp, *eom;
-       HEADER *hp;
-
-       /* Initialize, and parse header. */
-       eom = ansbuf + anslen;
-       if (ansbuf + HFIXEDSZ > eom) {
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-               return (NULL);
-       }
-       hp = (HEADER *)ansbuf;
-       cp = ansbuf + HFIXEDSZ;
-       qdcount = ntohs(hp->qdcount);
-       while (qdcount-- > 0) {
-               int n = dn_skipname(cp, eom);
-               cp += n + QFIXEDSZ;
-               if (n < 0 || cp > eom) {
-                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                       return (NULL);
-               }
-       }
-       ancount = ntohs(hp->ancount);
-       if (!ancount) {
-               if (hp->aa)
-                       RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               else
-                       RES_SET_H_ERRNO(pvt->res, TRY_AGAIN);
-               return (NULL);
-       }
-
-       /* Prepare a return structure. */
-       bp = pvt->buf;
-       ep = pvt->buf + sizeof(pvt->buf);
-       pvt->net.n_name = NULL;
-       pvt->net.n_aliases = pvt->ali;
-       pvt->net.n_addrtype = af;
-       pvt->net.n_addr = NULL;
-       pvt->net.n_length = addrlen;
-
-       /* Save input key if given. */
-       switch (by_what) {
-       case by_name:
-               if (name != NULL) {
-                       int n = strlen(name) + 1;
-
-                       if (n > (ep - bp)) {
-                               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                               return (NULL);
-                       }
-                       pvt->net.n_name = strcpy(bp, name);     /* (checked) */
-                       bp += n;
-               }
-               break;
-       case by_addr:
-               if (addr != NULL && addrlen != 0) {
-                       int n = addrlen / 8 + ((addrlen % 8) != 0);
-
-                       if (INADDRSZ > (ep - bp)) {
-                               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                               return (NULL);
-                       }
-                       memset(bp, 0, INADDRSZ);
-                       memcpy(bp, addr, n);
-                       pvt->net.n_addr = bp;
-                       bp += INADDRSZ;
-               }
-               break;
-       default:
-               abort();
-       }
-
-       /* Parse the answer, collect aliases. */
-       ap = pvt->ali;
-       haveanswer = 0;
-       while (--ancount >= 0 && cp < eom) {
-               int n = dn_expand(ansbuf, eom, cp, bp, ep - bp);
-
-               cp += n;                /*%< Owner */
-               if (n < 0 || !maybe_dnok(pvt->res, bp) ||
-                   cp + 3 * INT16SZ + INT32SZ > eom) {
-                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                       return (NULL);
-               }
-               GETSHORT(type, cp);     /*%< Type */
-               GETSHORT(class, cp);    /*%< Class */
-               cp += INT32SZ;          /*%< TTL */
-               GETSHORT(n, cp);        /*%< RDLENGTH */
-               if (class == C_IN && type == T_PTR) {
-                       int nn;
-
-                       nn = dn_expand(ansbuf, eom, cp, bp, ep - bp);
-                       if (nn < 0 || !maybe_hnok(pvt->res, bp) || nn != n) {
-                               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                               return (NULL);
-                       }
-                       normalize_name(bp);
-                       switch (by_what) {
-                       case by_addr: {
-                               if (pvt->net.n_name == NULL)
-                                       pvt->net.n_name = bp;
-                               else if (ns_samename(pvt->net.n_name, bp) == 1)
-                                       break;
-                               else
-                                       *ap++ = bp;
-                               nn = strlen(bp) + 1;
-                               bp += nn;
-                               haveanswer++;
-                               break;
-                           }
-                       case by_name: {
-                               u_int b1, b2, b3, b4;
-
-                               if (pvt->net.n_addr != NULL ||
-                                   sscanf(bp, "%u.%u.%u.%u.in-addr.arpa",
-                                          &b1, &b2, &b3, &b4) != 4)
-                                       break;
-                               if ((ep - bp) < INADDRSZ) {
-                                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                                       return (NULL);
-                               }
-                               pvt->net.n_addr = bp;
-                               *bp++ = b4;
-                               *bp++ = b3;
-                               *bp++ = b2;
-                               *bp++ = b1;
-                               pvt->net.n_length = INADDRSZ * 8;
-                               haveanswer++;
-                           }
-                       }
-               }
-               cp += n;                /*%< RDATA */
-       }
-       if (!haveanswer) {
-               RES_SET_H_ERRNO(pvt->res, TRY_AGAIN);
-               return (NULL);
-       }
-       *ap = NULL;
-
-       return (&pvt->net);
-}
-
-static struct nwent *
-get1101mask(struct irs_nw *this, struct nwent *nwent) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char qbuf[sizeof "255.255.255.255.in-addr.arpa"], owner[MAXDNAME];
-       int anslen, type, class, ancount, qdcount;
-       u_char *ansbuf, *cp, *eom;
-       HEADER *hp;
-
-       if (!nwent)
-               return (NULL);
-       if (make1101inaddr(nwent->n_addr, nwent->n_length, qbuf, sizeof qbuf)
-           < 0) {
-               /* "First, do no harm." */
-               return (nwent);
-       }
-
-       ansbuf = memget(MAXPACKET);
-       if (ansbuf == NULL) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       /* Query for the A RR that would hold this network's mask. */
-       anslen = res_nquery(pvt->res, qbuf, C_IN, T_A, ansbuf, MAXPACKET);
-       if (anslen < HFIXEDSZ) {
-               memput(ansbuf, MAXPACKET);
-               return (nwent);
-       }
-
-       /* Initialize, and parse header. */
-       hp = (HEADER *)ansbuf;
-       cp = ansbuf + HFIXEDSZ;
-       eom = ansbuf + anslen;
-       qdcount = ntohs(hp->qdcount);
-       while (qdcount-- > 0) {
-               int n = dn_skipname(cp, eom);
-               cp += n + QFIXEDSZ;
-               if (n < 0 || cp > eom) {
-                       memput(ansbuf, MAXPACKET);
-                       return (nwent);
-               }
-       }
-       ancount = ntohs(hp->ancount);
-
-       /* Parse the answer, collect aliases. */
-       while (--ancount >= 0 && cp < eom) {
-               int n = dn_expand(ansbuf, eom, cp, owner, sizeof owner);
-
-               if (n < 0 || !maybe_dnok(pvt->res, owner))
-                       break;
-               cp += n;                /*%< Owner */
-               if (cp + 3 * INT16SZ + INT32SZ > eom)
-                       break;
-               GETSHORT(type, cp);     /*%< Type */
-               GETSHORT(class, cp);    /*%< Class */
-               cp += INT32SZ;          /*%< TTL */
-               GETSHORT(n, cp);        /*%< RDLENGTH */
-               if (cp + n > eom)
-                       break;
-               if (n == INADDRSZ && class == C_IN && type == T_A &&
-                   ns_samename(qbuf, owner) == 1) {
-                       /* This A RR indicates the actual netmask. */
-                       int nn, mm;
-
-                       nwent->n_length = 0;
-                       for (nn = 0; nn < INADDRSZ; nn++)
-                               for (mm = 7; mm >= 0; mm--)
-                                       if (cp[nn] & (1 << mm))
-                                               nwent->n_length++;
-                                       else
-                                               break;
-               }
-               cp += n;                /*%< RDATA */
-       }
-       memput(ansbuf, MAXPACKET);
-       return (nwent);
-}
-
-static int
-make1101inaddr(const u_char *net, int bits, char *name, int size) {
-       int n, m;
-       char *ep;
-
-       ep = name + size;
-
-       /* Zero fill any whole bytes left out of the prefix. */
-       for (n = (32 - bits) / 8; n > 0; n--) {
-               if (ep - name < (int)(sizeof "0."))
-                       goto emsgsize;
-               m = SPRINTF((name, "0."));
-               name += m;
-       }
-
-       /* Format the partial byte, if any, within the prefix. */
-       if ((n = bits % 8) != 0) {
-               if (ep - name < (int)(sizeof "255."))
-                       goto emsgsize;
-               m = SPRINTF((name, "%u.",
-                            net[bits / 8] & ~((1 << (8 - n)) - 1)));
-               name += m;
-       }
-
-       /* Format the whole bytes within the prefix. */
-       for (n = bits / 8; n > 0; n--) {
-               if (ep - name < (int)(sizeof "255."))
-                       goto emsgsize;
-               m = SPRINTF((name, "%u.", net[n - 1]));
-               name += m;
-       }
-
-       /* Add the static text. */
-       if (ep - name < (int)(sizeof "in-addr.arpa"))
-               goto emsgsize;
-       (void) SPRINTF((name, "in-addr.arpa"));
-       return (0);
-
- emsgsize:
-       errno = EMSGSIZE;
-       return (-1);
-}
-
-static void
-normalize_name(char *name) {
-       char *t;
-
-       /* Make lower case. */
-       for (t = name; *t; t++)
-               if (isascii((unsigned char)*t) && isupper((unsigned char)*t))
-                       *t = tolower((*t)&0xff);
-
-       /* Remove trailing dots. */
-       while (t > name && t[-1] == '.')
-               *--t = '\0';
-}
-
-static int
-init(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !nw_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0U) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/dns_p.h b/lib/bind/irs/dns_p.h
deleted file mode 100644 (file)
index d85ae2a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: dns_p.h,v 1.4 2005/04/27 04:56:22 sra Exp $
- */
-
-#ifndef _DNS_P_H_INCLUDED
-#define        _DNS_P_H_INCLUDED
-
-#define        maybe_ok(res, nm, ok) (((res)->options & RES_NOCHECKNAME) != 0U || \
-                              (ok)(nm) != 0)
-#define maybe_hnok(res, hn) maybe_ok((res), (hn), res_hnok)
-#define maybe_dnok(res, dn) maybe_ok((res), (dn), res_dnok)
-
-/*%
- * Object state.
- */
-struct dns_p {
-       void                    *hes_ctx;
-       struct __res_state      *res;
-       void                    (*free_res) __P((void *));
-};
-
-/*
- * Methods.
- */
-
-extern struct irs_gr * irs_dns_gr __P((struct irs_acc *));
-extern struct irs_pw * irs_dns_pw __P((struct irs_acc *));
-extern struct irs_sv * irs_dns_sv __P((struct irs_acc *));
-extern struct irs_pr * irs_dns_pr __P((struct irs_acc *));
-extern struct irs_ho * irs_dns_ho __P((struct irs_acc *));
-extern struct irs_nw * irs_dns_nw __P((struct irs_acc *));
-
-#endif /*_DNS_P_H_INCLUDED*/
-
-/*! \file */
diff --git a/lib/bind/irs/dns_pr.c b/lib/bind/irs/dns_pr.c
deleted file mode 100644 (file)
index 137f306..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_pr.c,v 1.5 2005/04/27 04:56:22 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* Types. */
-
-struct pvt {
-       struct dns_p *          dns;
-       struct protoent         proto;
-       char *                  prbuf;
-};
-
-/* Forward. */
-
-static void                    pr_close(struct irs_pr *);
-static struct protoent *       pr_byname(struct irs_pr *, const char *);
-static struct protoent *       pr_bynumber(struct irs_pr *, int);
-static struct protoent *       pr_next(struct irs_pr *);
-static void                    pr_rewind(struct irs_pr *);
-static void                    pr_minimize(struct irs_pr *);
-static struct __res_state *    pr_res_get(struct irs_pr *);
-static void                    pr_res_set(struct irs_pr *,
-                                          struct __res_state *,
-                                          void (*)(void *));
-
-static struct protoent *       parse_hes_list(struct irs_pr *, char **);
-
-/* Public. */
-
-struct irs_pr *
-irs_dns_pr(struct irs_acc *this) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-       struct pvt *pvt;
-       struct irs_pr *pr;
-
-       if (!dns->hes_ctx) {
-               errno = ENODEV;
-               return (NULL);
-       }
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(pr = memget(sizeof *pr))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pr, 0x5e, sizeof *pr);
-       pvt->dns = dns;
-       pr->private = pvt;
-       pr->byname = pr_byname;
-       pr->bynumber = pr_bynumber;
-       pr->next = pr_next;
-       pr->rewind = pr_rewind;
-       pr->close = pr_close;
-       pr->minimize = pr_minimize;
-       pr->res_get = pr_res_get;
-       pr->res_set = pr_res_set;
-       return (pr);
-}
-
-/* Methods. */
-
-static void
-pr_close(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->proto.p_aliases)
-               free(pvt->proto.p_aliases);
-       if (pvt->prbuf)
-               free(pvt->prbuf);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct protoent *
-pr_byname(struct irs_pr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-       struct protoent *proto;
-       char **hes_list;
-
-       if (!(hes_list = hesiod_resolve(dns->hes_ctx, name, "protocol")))
-               return (NULL);
-
-       proto = parse_hes_list(this, hes_list);
-       hesiod_free_list(dns->hes_ctx, hes_list);
-       return (proto);
-}
-
-static struct protoent *
-pr_bynumber(struct irs_pr *this, int num) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-       struct protoent *proto;
-       char numstr[16];
-       char **hes_list;
-
-       sprintf(numstr, "%d", num);
-       if (!(hes_list = hesiod_resolve(dns->hes_ctx, numstr, "protonum")))
-               return (NULL);
-       
-       proto = parse_hes_list(this, hes_list);
-       hesiod_free_list(dns->hes_ctx, hes_list);
-       return (proto);
-}
-
-static struct protoent *
-pr_next(struct irs_pr *this) {
-       UNUSED(this);
-       errno = ENODEV;
-       return (NULL);
-}
-
-static void
-pr_rewind(struct irs_pr *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-static void
-pr_minimize(struct irs_pr *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-static struct __res_state *
-pr_res_get(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       return (__hesiod_res_get(dns->hes_ctx));
-}
-
-static void
-pr_res_set(struct irs_pr *this, struct __res_state * res,
-          void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       __hesiod_res_set(dns->hes_ctx, res, free_res);
-}
-
-/* Private. */
-
-static struct protoent *
-parse_hes_list(struct irs_pr *this, char **hes_list) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *p, *cp, **cpp, **new;
-       int num = 0;
-       int max = 0;
-       
-       for (cpp = hes_list; *cpp; cpp++) {
-               cp = *cpp;
-
-               /* Strip away comments, if any. */
-               if ((p = strchr(cp, '#')))
-                       *p = 0;
-
-               /* Skip blank lines. */
-               p = cp;
-               while (*p && !isspace((unsigned char)*p))
-                       p++;
-               if (!*p)
-                       continue;
-
-               /* OK, we've got a live one.  Let's parse it for real. */
-               if (pvt->prbuf)
-                       free(pvt->prbuf);
-               pvt->prbuf = strdup(cp);
-
-               p = pvt->prbuf;
-               pvt->proto.p_name = p;
-               while (*p && !isspace((unsigned char)*p))
-                       p++;
-               if (!*p)
-                       continue;
-               *p++ = '\0';
-
-               pvt->proto.p_proto = atoi(p);
-               while (*p && !isspace((unsigned char)*p))
-                       p++;
-               if (*p)
-                       *p++ = '\0';
-
-               while (*p) {
-                       if ((num + 1) >= max || !pvt->proto.p_aliases) {
-                               max += 10;
-                               new = realloc(pvt->proto.p_aliases,
-                                             max * sizeof(char *));
-                               if (!new) {
-                                       errno = ENOMEM;
-                                       goto cleanup;
-                               }
-                               pvt->proto.p_aliases = new;
-                       }
-                       pvt->proto.p_aliases[num++] = p;
-                       while (*p && !isspace((unsigned char)*p))
-                               p++;
-                       if (*p)
-                               *p++ = '\0';
-               }
-               if (!pvt->proto.p_aliases)
-                       pvt->proto.p_aliases = malloc(sizeof(char *));
-               if (!pvt->proto.p_aliases)
-                       goto cleanup;
-               pvt->proto.p_aliases[num] = NULL;
-               return (&pvt->proto);
-       }
-       
- cleanup:
-       if (pvt->proto.p_aliases) {
-               free(pvt->proto.p_aliases);
-               pvt->proto.p_aliases = NULL;
-       }
-       if (pvt->prbuf) {
-               free(pvt->prbuf);
-               pvt->prbuf = NULL;
-       }
-       return (NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/dns_pw.c b/lib/bind/irs/dns_pw.c
deleted file mode 100644 (file)
index 4ea97ad..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_pw.c,v 1.3 2005/04/27 04:56:22 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* Types. */
-
-struct pvt {
-       struct dns_p *  dns;
-       struct passwd   passwd;
-       char *          pwbuf;
-};
-
-/* Forward. */
-
-static void                    pw_close(struct irs_pw *);
-static struct passwd *         pw_byname(struct irs_pw *, const char *);
-static struct passwd *         pw_byuid(struct irs_pw *, uid_t);
-static struct passwd *         pw_next(struct irs_pw *);
-static void                    pw_rewind(struct irs_pw *);
-static void                    pw_minimize(struct irs_pw *);
-static struct __res_state *    pw_res_get(struct irs_pw *);
-static void                    pw_res_set(struct irs_pw *,
-                                          struct __res_state *,
-                                          void (*)(void *));
-
-static struct passwd *         getpwcommon(struct irs_pw *, const char *,
-                                           const char *);
-
-/* Public. */
-
-struct irs_pw *
-irs_dns_pw(struct irs_acc *this) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-       struct irs_pw *pw;
-       struct pvt *pvt;
-
-       if (!dns || !dns->hes_ctx) {
-               errno = ENODEV;
-               return (NULL);
-       }
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->dns = dns;
-       if (!(pw = memget(sizeof *pw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pw, 0x5e, sizeof *pw);
-       pw->private = pvt;
-       pw->close = pw_close;
-       pw->byname = pw_byname;
-       pw->byuid = pw_byuid;
-       pw->next = pw_next;
-       pw->rewind = pw_rewind;
-       pw->minimize = pw_minimize;
-       pw->res_get = pw_res_get;
-       pw->res_set = pw_res_set;
-       return (pw);
-}
-
-/* Methods. */
-
-static void
-pw_close(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->pwbuf)
-               free(pvt->pwbuf);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct passwd *
-pw_byname(struct irs_pw *this, const char *nam) {
-       return (getpwcommon(this, nam, "passwd"));
-}
-
-static struct passwd *
-pw_byuid(struct irs_pw *this, uid_t uid) {
-       char uidstr[16];
-
-       sprintf(uidstr, "%lu", (u_long)uid);
-       return (getpwcommon(this, uidstr, "uid"));
-}
-
-static struct passwd *
-pw_next(struct irs_pw *this) {
-       UNUSED(this);
-       errno = ENODEV;
-       return (NULL);
-}
-
-static void
-pw_rewind(struct irs_pw *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-static void
-pw_minimize(struct irs_pw *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-static struct __res_state *
-pw_res_get(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       return (__hesiod_res_get(dns->hes_ctx));
-}
-
-static void
-pw_res_set(struct irs_pw *this, struct __res_state * res,
-          void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       __hesiod_res_set(dns->hes_ctx, res, free_res);
-}
-
-/* Private. */
-
-static struct passwd *
-getpwcommon(struct irs_pw *this, const char *arg, const char *type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char **hes_list, *cp;
-
-       if (!(hes_list = hesiod_resolve(pvt->dns->hes_ctx, arg, type)))
-               return (NULL);
-       if (!*hes_list) {
-               hesiod_free_list(pvt->dns->hes_ctx, hes_list);
-               errno = ENOENT;
-               return (NULL);
-       }
-
-       memset(&pvt->passwd, 0, sizeof pvt->passwd);
-       if (pvt->pwbuf)
-               free(pvt->pwbuf);
-       pvt->pwbuf = strdup(*hes_list);
-       hesiod_free_list(pvt->dns->hes_ctx, hes_list);
-
-       cp = pvt->pwbuf;
-       pvt->passwd.pw_name = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_passwd = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-       
-       pvt->passwd.pw_uid = atoi(cp);
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_gid = atoi(cp);
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_gecos = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_dir = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_shell = cp;
-       return (&pvt->passwd);
-       
- cleanup:
-       free(pvt->pwbuf);
-       pvt->pwbuf = NULL;
-       return (NULL);
-}
-
-#endif /* WANT_IRS_PW */
-/*! \file */
diff --git a/lib/bind/irs/dns_sv.c b/lib/bind/irs/dns_sv.c
deleted file mode 100644 (file)
index c329425..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_sv.c,v 1.5 2005/04/27 04:56:23 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* Definitions */
-
-struct pvt {
-       struct dns_p *          dns;
-       struct servent          serv;
-       char *                  svbuf;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward. */
-
-static void                    sv_close(struct irs_sv *);
-static struct servent *                sv_byname(struct irs_sv *,
-                                         const char *, const char *);
-static struct servent *                sv_byport(struct irs_sv *, int, const char *);
-static struct servent *                sv_next(struct irs_sv *);
-static void                    sv_rewind(struct irs_sv *);
-static void                    sv_minimize(struct irs_sv *);
-#ifdef SV_RES_SETGET
-static struct __res_state *    sv_res_get(struct irs_sv *);
-static void                    sv_res_set(struct irs_sv *,
-                                          struct __res_state *,
-                                          void (*)(void *));
-#endif
-
-static struct servent *                parse_hes_list(struct irs_sv *,
-                                              char **, const char *);
-
-/* Public */
-
-struct irs_sv *
-irs_dns_sv(struct irs_acc *this) {
-       struct dns_p *dns = (struct dns_p *)this->private;
-       struct irs_sv *sv;
-       struct pvt *pvt;
-
-       if (!dns || !dns->hes_ctx) {
-               errno = ENODEV;
-               return (NULL);
-       }
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->dns = dns;
-       if (!(sv = memget(sizeof *sv))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(sv, 0x5e, sizeof *sv);
-       sv->private = pvt;
-       sv->byname = sv_byname;
-       sv->byport = sv_byport;
-       sv->next = sv_next;
-       sv->rewind = sv_rewind;
-       sv->close = sv_close;
-       sv->minimize = sv_minimize;
-#ifdef SV_RES_SETGET
-       sv->res_get = sv_res_get;
-       sv->res_set = sv_res_set;
-#else
-       sv->res_get = NULL; /*%< sv_res_get; */
-       sv->res_set = NULL; /*%< sv_res_set; */
-#endif
-       return (sv);
-}
-
-/* Methods */
-
-static void
-sv_close(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->serv.s_aliases)
-               free(pvt->serv.s_aliases);
-       if (pvt->svbuf)
-               free(pvt->svbuf);
-
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct servent *
-sv_byname(struct irs_sv *this, const char *name, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-       struct servent *s;
-       char **hes_list;
-
-       if (!(hes_list = hesiod_resolve(dns->hes_ctx, name, "service")))
-               return (NULL);
-
-       s = parse_hes_list(this, hes_list, proto);
-       hesiod_free_list(dns->hes_ctx, hes_list);
-       return (s);
-}
-
-static struct servent *
-sv_byport(struct irs_sv *this, int port, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-       struct servent *s;
-       char portstr[16];
-       char **hes_list;
-
-       sprintf(portstr, "%d", ntohs(port));
-       if (!(hes_list = hesiod_resolve(dns->hes_ctx, portstr, "port")))
-               return (NULL);
-       
-       s = parse_hes_list(this, hes_list, proto);
-       hesiod_free_list(dns->hes_ctx, hes_list);
-       return (s);
-}
-
-static struct servent *
-sv_next(struct irs_sv *this) {
-       UNUSED(this);
-       errno = ENODEV;
-       return (NULL);
-}
-
-static void
-sv_rewind(struct irs_sv *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static struct servent *
-parse_hes_list(struct irs_sv *this, char **hes_list, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *p, *cp, **cpp, **new;
-       int proto_len;
-       int num = 0;
-       int max = 0;
-       
-       for (cpp = hes_list; *cpp; cpp++) {
-               cp = *cpp;
-
-               /* Strip away comments, if any. */
-               if ((p = strchr(cp, '#')))
-                       *p = 0;
-
-               /* Check to make sure the protocol matches. */
-               p = cp;
-               while (*p && !isspace((unsigned char)*p))
-                       p++;
-               if (!*p)
-                       continue;
-               if (proto) {
-                    proto_len = strlen(proto);
-                    if (strncasecmp(++p, proto, proto_len) != 0)
-                         continue;
-                    if (p[proto_len] && !isspace(p[proto_len]&0xff))
-                         continue;
-               }
-               /* OK, we've got a live one.  Let's parse it for real. */
-               if (pvt->svbuf)
-                       free(pvt->svbuf);
-               pvt->svbuf = strdup(cp);
-
-               p = pvt->svbuf;
-               pvt->serv.s_name = p;
-               while (*p && !isspace(*p&0xff))
-                       p++;
-               if (!*p)
-                       continue;
-               *p++ = '\0';
-
-               pvt->serv.s_proto = p;
-               while (*p && !isspace(*p&0xff))
-                       p++;
-               if (!*p)
-                       continue;
-               *p++ = '\0';
-
-               pvt->serv.s_port = htons((u_short) atoi(p));
-               while (*p && !isspace(*p&0xff))
-                       p++;
-               if (*p)
-                       *p++ = '\0';
-
-               while (*p) {
-                       if ((num + 1) >= max || !pvt->serv.s_aliases) {
-                               max += 10;
-                               new = realloc(pvt->serv.s_aliases,
-                                             max * sizeof(char *));
-                               if (!new) {
-                                       errno = ENOMEM;
-                                       goto cleanup;
-                               }
-                               pvt->serv.s_aliases = new;
-                       }
-                       pvt->serv.s_aliases[num++] = p;
-                       while (*p && !isspace(*p&0xff))
-                               p++;
-                       if (*p)
-                               *p++ = '\0';
-               }
-               if (!pvt->serv.s_aliases)
-                       pvt->serv.s_aliases = malloc(sizeof(char *));
-               if (!pvt->serv.s_aliases)
-                       goto cleanup;
-               pvt->serv.s_aliases[num] = NULL;
-               return (&pvt->serv);
-       }
-       
- cleanup:
-       if (pvt->serv.s_aliases) {
-               free(pvt->serv.s_aliases);
-               pvt->serv.s_aliases = NULL;
-       }
-       if (pvt->svbuf) {
-               free(pvt->svbuf);
-               pvt->svbuf = NULL;
-       }
-       return (NULL);
-}
-
-static void
-sv_minimize(struct irs_sv *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-#ifdef SV_RES_SETGET
-static struct __res_state *
-sv_res_get(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       return (__hesiod_res_get(dns->hes_ctx));
-}
-
-static void
-sv_res_set(struct irs_sv *this, struct __res_state * res,
-          void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct dns_p *dns = pvt->dns;
-
-       __hesiod_res_set(dns->hes_ctx, res, free_res);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/gai_strerror.c b/lib/bind/irs/gai_strerror.c
deleted file mode 100644 (file)
index 9ca1c4b..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 2001 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#include <port_before.h>
-#include <netdb.h>
-#include <port_after.h>
-
-#ifdef DO_PTHREADS
-#include <pthread.h>
-#include <stdlib.h>
-#endif
-
-static const char *gai_errlist[] = {
-       "no error",
-       "address family not supported for name",/*%< EAI_ADDRFAMILY */
-       "temporary failure",                    /*%< EAI_AGAIN */
-       "invalid flags",                        /*%< EAI_BADFLAGS */
-       "permanent failure",                    /*%< EAI_FAIL */
-       "address family not supported",         /*%< EAI_FAMILY */
-       "memory failure",                       /*%< EAI_MEMORY */
-       "no address",                           /*%< EAI_NODATA */
-       "unknown name or service",              /*%< EAI_NONAME */
-       "service not supported for socktype",   /*%< EAI_SERVICE */
-       "socktype not supported",               /*%< EAI_SOCKTYPE */
-       "system failure",                       /*%< EAI_SYSTEM */
-       "bad hints",                            /*%< EAI_BADHINTS */
-       "bad protocol",                         /*%< EAI_PROTOCOL */
-       "unknown error"                         /*%< Must be last. */
-};
-
-static const int gai_nerr = (sizeof(gai_errlist)/sizeof(*gai_errlist));
-
-#define EAI_BUFSIZE 128
-
-const char *
-gai_strerror(int ecode) {
-#ifndef DO_PTHREADS
-       static char buf[EAI_BUFSIZE];
-#else  /* DO_PTHREADS */
-#ifndef LIBBIND_MUTEX_INITIALIZER
-#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#endif
-       static pthread_mutex_t lock = LIBBIND_MUTEX_INITIALIZER;
-       static pthread_key_t key;
-       static int once = 0;
-       char *buf;
-#endif
-
-       if (ecode >= 0 && ecode < (gai_nerr - 1))
-               return (gai_errlist[ecode]);
-
-#ifdef DO_PTHREADS
-        if (!once) {
-                if (pthread_mutex_lock(&lock) != 0)
-                       goto unknown;
-                if (!once) {
-                        if (pthread_key_create(&key, free) != 0) {
-                               (void)pthread_mutex_unlock(&lock);
-                               goto unknown;
-                       }
-                       once = 1;
-               }
-                if (pthread_mutex_unlock(&lock) != 0)
-                       goto unknown;
-        }
-
-       buf = pthread_getspecific(key);
-        if (buf == NULL) {
-               buf = malloc(EAI_BUFSIZE);
-                if (buf == NULL)
-                        goto unknown;
-                if (pthread_setspecific(key, buf) != 0) {
-                       free(buf);
-                       goto unknown;
-               }
-        }
-#endif
-       /* 
-        * XXX This really should be snprintf(buf, EAI_BUFSIZE, ...).
-        * It is safe until message catalogs are used.
-        */
-       sprintf(buf, "%s: %d", gai_errlist[gai_nerr - 1], ecode);
-       return (buf);
-
-#ifdef DO_PTHREADS
- unknown:
-       return ("unknown error");
-#endif
-}
-
-/*! \file */
diff --git a/lib/bind/irs/gen.c b/lib/bind/irs/gen.c
deleted file mode 100644 (file)
index 04105b3..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen.c,v 1.7 2005/04/27 04:56:23 sra Exp $";
-#endif
-
-/*! \file
- * \brief
- * this is the top level dispatcher
- *
- * The dispatcher is implemented as an accessor class; it is an
- * accessor class that calls other accessor classes, as controlled by a
- * configuration file.
- * 
- * A big difference between this accessor class and others is that the
- * map class initializers are NULL, and the map classes are already
- * filled in with method functions that will do the right thing.
- */
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <isc/assertions.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/types.h>
-#include <netinet/in.h> 
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Definitions */
-
-struct nameval {
-       const char *    name;
-       int             val;
-};
-
-static const struct nameval acc_names[irs_nacc+1] = {
-       { "local", irs_lcl },
-       { "dns", irs_dns },
-       { "nis", irs_nis },
-       { "irp", irs_irp },
-       { NULL, irs_nacc }
-};
-
-typedef struct irs_acc *(*accinit) __P((const char *options));
-
-static const accinit accs[irs_nacc+1] = {
-       irs_lcl_acc,
-       irs_dns_acc,
-#ifdef WANT_IRS_NIS
-       irs_nis_acc,
-#else
-       NULL,
-#endif
-       irs_irp_acc,
-       NULL
-};
-
-static const struct nameval map_names[irs_nmap+1] = {
-       { "group", irs_gr },
-       { "passwd", irs_pw },
-       { "services", irs_sv },
-       { "protocols", irs_pr },
-       { "hosts", irs_ho },
-       { "networks", irs_nw },
-       { "netgroup", irs_ng },
-       { NULL, irs_nmap }
-};
-
-static const struct nameval option_names[] = {
-       { "merge", IRS_MERGE },
-       { "continue", IRS_CONTINUE },
-       { NULL, 0 }
-};
-
-/* Forward */
-
-static void            gen_close(struct irs_acc *);
-static struct __res_state * gen_res_get(struct irs_acc *);
-static void            gen_res_set(struct irs_acc *, struct __res_state *,
-                                   void (*)(void *));
-static int             find_name(const char *, const struct nameval nv[]);
-static void            init_map_rules(struct gen_p *, const char *conf_file);
-static struct irs_rule *release_rule(struct irs_rule *);
-static int             add_rule(struct gen_p *,
-                                enum irs_map_id, enum irs_acc_id,
-                                const char *);
-
-/* Public */
-
-struct irs_acc *
-irs_gen_acc(const char *options, const char *conf_file) {
-       struct irs_acc *acc;
-       struct gen_p *irs;
-               
-       if (!(acc = memget(sizeof *acc))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(acc, 0x5e, sizeof *acc);
-       if (!(irs = memget(sizeof *irs))) {
-               errno = ENOMEM;
-               memput(acc, sizeof *acc);
-               return (NULL);
-       }
-       memset(irs, 0x5e, sizeof *irs);
-       irs->options = strdup(options);
-       irs->res = NULL;
-       irs->free_res = NULL;
-       memset(irs->accessors, 0, sizeof irs->accessors);
-       memset(irs->map_rules, 0, sizeof irs->map_rules);
-       init_map_rules(irs, conf_file);
-       acc->private = irs;
-#ifdef WANT_IRS_GR
-       acc->gr_map = irs_gen_gr;
-#else
-       acc->gr_map = NULL;
-#endif
-#ifdef WANT_IRS_PW
-       acc->pw_map = irs_gen_pw;
-#else
-       acc->pw_map = NULL;
-#endif
-       acc->sv_map = irs_gen_sv;
-       acc->pr_map = irs_gen_pr;
-       acc->ho_map = irs_gen_ho;
-       acc->nw_map = irs_gen_nw;
-       acc->ng_map = irs_gen_ng;
-       acc->res_get = gen_res_get;
-       acc->res_set = gen_res_set;
-       acc->close = gen_close;
-       return (acc);
-}
-
-/* Methods */
-
-static struct __res_state *
-gen_res_get(struct irs_acc *this) {
-       struct gen_p *irs = (struct gen_p *)this->private;
-
-       if (irs->res == NULL) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (res == NULL)
-                       return (NULL);
-               memset(res, 0, sizeof *res);
-               gen_res_set(this, res, free);
-       }
-
-       if (((irs->res->options & RES_INIT) == 0U) && res_ninit(irs->res) < 0)
-               return (NULL);
-
-       return (irs->res);
-}
-
-static void
-gen_res_set(struct irs_acc *this, struct __res_state *res,
-           void (*free_res)(void *)) {
-       struct gen_p *irs = (struct gen_p *)this->private;
-#if 0
-       struct irs_rule *rule;
-       struct irs_ho *ho;
-       struct irs_nw *nw;
-#endif
-
-       if (irs->res && irs->free_res) {
-               res_nclose(irs->res);
-               (*irs->free_res)(irs->res);
-       }
-
-       irs->res = res;
-       irs->free_res = free_res;
-
-#if 0
-       for (rule = irs->map_rules[irs_ho]; rule; rule = rule->next) {
-                ho = rule->inst->ho;
-
-                (*ho->res_set)(ho, res, NULL);
-       }
-       for (rule = irs->map_rules[irs_nw]; rule; rule = rule->next) {
-                nw = rule->inst->nw;
-
-                (*nw->res_set)(nw, res, NULL);
-       }
-#endif
-}
-
-static void
-gen_close(struct irs_acc *this) {
-       struct gen_p *irs = (struct gen_p *)this->private;
-       int n;
-       
-       /* Search rules. */
-       for (n = 0; n < irs_nmap; n++)
-               while (irs->map_rules[n] != NULL)
-                       irs->map_rules[n] = release_rule(irs->map_rules[n]);
-
-       /* Access methods. */
-       for (n = 0; n < irs_nacc; n++) {
-               /* Map objects. */
-               if (irs->accessors[n].gr != NULL)
-                       (*irs->accessors[n].gr->close)(irs->accessors[n].gr);
-               if (irs->accessors[n].pw != NULL)
-                       (*irs->accessors[n].pw->close)(irs->accessors[n].pw);
-               if (irs->accessors[n].sv != NULL)
-                       (*irs->accessors[n].sv->close)(irs->accessors[n].sv);
-               if (irs->accessors[n].pr != NULL)
-                       (*irs->accessors[n].pr->close)(irs->accessors[n].pr);
-               if (irs->accessors[n].ho != NULL)
-                       (*irs->accessors[n].ho->close)(irs->accessors[n].ho);
-               if (irs->accessors[n].nw != NULL)
-                       (*irs->accessors[n].nw->close)(irs->accessors[n].nw);
-               if (irs->accessors[n].ng != NULL)
-                       (*irs->accessors[n].ng->close)(irs->accessors[n].ng);
-               /* Enclosing accessor. */
-               if (irs->accessors[n].acc != NULL)
-                       (*irs->accessors[n].acc->close)(irs->accessors[n].acc);
-       }
-
-       /* The options string was strdup'd. */
-       free((void*)irs->options);
-
-       if (irs->res && irs->free_res)
-               (*irs->free_res)(irs->res);
-
-       /* The private data container. */
-       memput(irs, sizeof *irs);
-
-       /* The object. */
-       memput(this, sizeof *this);
-}
-
-/* Private */
-
-static int
-find_name(const char *name, const struct nameval names[]) {
-       int n;
-
-       for (n = 0; names[n].name != NULL; n++)
-               if (strcmp(name, names[n].name) == 0)
-                       return (names[n].val);
-       return (-1);
-}
-
-static struct irs_rule *
-release_rule(struct irs_rule *rule) {
-       struct irs_rule *next = rule->next;
-
-       memput(rule, sizeof *rule);
-       return (next);
-}
-
-static int
-add_rule(struct gen_p *irs,
-        enum irs_map_id map, enum irs_acc_id acc,
-        const char *options)
-{
-       struct irs_rule **rules, *last, *tmp, *new;
-       struct irs_inst *inst;
-       const char *cp;
-       int n;
-
-#ifndef WANT_IRS_GR
-       if (map == irs_gr)
-               return (-1);
-#endif
-#ifndef WANT_IRS_PW
-       if (map == irs_pw)
-               return (-1);
-#endif
-#ifndef WANT_IRS_NIS
-       if (acc == irs_nis)
-               return (-1);
-#endif
-       new = memget(sizeof *new);
-       if (new == NULL)
-               return (-1);
-       memset(new, 0x5e, sizeof *new);
-       new->next = NULL;
-
-       new->inst = &irs->accessors[acc];
-
-       new->flags = 0;
-       cp = options;
-       while (cp && *cp) {
-               char option[50], *next;
-
-               next = strchr(cp, ',');
-               if (next)
-                       n = next++ - cp;
-               else
-                       n = strlen(cp);
-               if ((size_t)n > sizeof option - 1)
-                       n = sizeof option - 1;
-               strncpy(option, cp, n);
-               option[n] = '\0';
-
-               n = find_name(option, option_names);
-               if (n >= 0)
-                       new->flags |= n;
-
-               cp = next;
-       }
-
-       rules = &irs->map_rules[map];
-       for (last = NULL, tmp = *rules;
-            tmp != NULL;
-            last = tmp, tmp = tmp->next)
-               (void)NULL;
-       if (last == NULL)
-               *rules = new;
-       else
-               last->next = new;
-
-       /* Try to instantiate map accessors for this if necessary & approp. */
-       inst = &irs->accessors[acc];
-       if (inst->acc == NULL && accs[acc] != NULL)
-               inst->acc = (*accs[acc])(irs->options);
-       if (inst->acc != NULL) {
-               if (inst->gr == NULL && inst->acc->gr_map != NULL)
-                       inst->gr = (*inst->acc->gr_map)(inst->acc);
-               if (inst->pw == NULL && inst->acc->pw_map != NULL)
-                       inst->pw = (*inst->acc->pw_map)(inst->acc);
-               if (inst->sv == NULL && inst->acc->sv_map != NULL)
-                       inst->sv = (*inst->acc->sv_map)(inst->acc);
-               if (inst->pr == NULL && inst->acc->pr_map != NULL)
-                       inst->pr = (*inst->acc->pr_map)(inst->acc);
-               if (inst->ho == NULL && inst->acc->ho_map != NULL)
-                       inst->ho = (*inst->acc->ho_map)(inst->acc);
-               if (inst->nw == NULL && inst->acc->nw_map != NULL)
-                       inst->nw = (*inst->acc->nw_map)(inst->acc);
-               if (inst->ng == NULL && inst->acc->ng_map != NULL)
-                       inst->ng = (*inst->acc->ng_map)(inst->acc);
-       }
-
-       return (0);
-}
-
-static void
-default_map_rules(struct gen_p *irs) {
-       /* Install time honoured and proved BSD style rules as default. */
-       add_rule(irs, irs_gr, irs_lcl, "");
-       add_rule(irs, irs_pw, irs_lcl, "");
-       add_rule(irs, irs_sv, irs_lcl, "");
-       add_rule(irs, irs_pr, irs_lcl, "");
-       add_rule(irs, irs_ho, irs_dns, "continue");
-       add_rule(irs, irs_ho, irs_lcl, "");
-       add_rule(irs, irs_nw, irs_dns, "continue");
-       add_rule(irs, irs_nw, irs_lcl, "");
-       add_rule(irs, irs_ng, irs_lcl, "");
-}
-
-static void
-init_map_rules(struct gen_p *irs, const char *conf_file) {
-       char line[1024], pattern[40], mapname[20], accname[20], options[100];
-       FILE *conf;
-
-       if (conf_file == NULL) 
-               conf_file = _PATH_IRS_CONF ;
-
-       /* A conf file of "" means compiled in defaults. Irpd wants this */
-       if (conf_file[0] == '\0' || (conf = fopen(conf_file, "r")) == NULL) {
-               default_map_rules(irs);
-               return;
-       }
-       (void) sprintf(pattern, "%%%lus %%%lus %%%lus\n",
-                      (unsigned long)sizeof mapname,
-                      (unsigned long)sizeof accname,
-                      (unsigned long)sizeof options);
-       while (fgets(line, sizeof line, conf)) {
-               enum irs_map_id map;
-               enum irs_acc_id acc;
-               char *tmp;
-               int n;
-
-               for (tmp = line;
-                    isascii((unsigned char)*tmp) &&
-                    isspace((unsigned char)*tmp);
-                    tmp++)
-                       (void)NULL;
-               if (*tmp == '#' || *tmp == '\n' || *tmp == '\0')
-                       continue;
-               n = sscanf(tmp, pattern, mapname, accname, options);
-               if (n < 2)
-                       continue;
-               if (n < 3)
-                       options[0] = '\0';
-
-               n = find_name(mapname, map_names);
-               INSIST(n < irs_nmap);
-               if (n < 0)
-                       continue;
-               map = (enum irs_map_id) n;
-
-               n = find_name(accname, acc_names);
-               INSIST(n < irs_nacc);
-               if (n < 0)
-                       continue;
-               acc = (enum irs_acc_id) n;
-
-               add_rule(irs, map, acc, options);
-       }
-       fclose(conf);
-}
diff --git a/lib/bind/irs/gen_gr.c b/lib/bind/irs/gen_gr.c
deleted file mode 100644 (file)
index d689e19..0000000
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_gr.c,v 1.8 2005/04/27 04:56:23 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_GR
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <sys/types.h>
-
-#include <isc/assertions.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Definitions */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct irs_gr *         gr;
-       /*
-        * Need space to store the entries read from the group file.
-        * The members list also needs space per member, and the
-        * strings making up the user names must be allocated
-        * somewhere.  Rather than doing lots of small allocations,
-        * we keep one buffer and resize it as needed.
-        */
-       struct group            group;
-       size_t                  nmemb;    /*%< Malloc'd max index of gr_mem[]. */
-       char *                  membuf;
-       size_t                  membufsize;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward */
-
-static void            gr_close(struct irs_gr *);
-static struct group *  gr_next(struct irs_gr *);
-static struct group *  gr_byname(struct irs_gr *, const char *);
-static struct group *  gr_bygid(struct irs_gr *, gid_t);
-static void            gr_rewind(struct irs_gr *);
-static int             gr_list(struct irs_gr *, const char *,
-                               gid_t, gid_t *, int *);
-static void            gr_minimize(struct irs_gr *);
-static struct __res_state * gr_res_get(struct irs_gr *);
-static void            gr_res_set(struct irs_gr *,
-                                     struct __res_state *,
-                                     void (*)(void *));
-
-static int             grmerge(struct irs_gr *gr, const struct group *src,
-                               int preserve);
-
-static int             countvec(char **vec);
-static int             isnew(char **old, char *new);
-static int             countnew(char **old, char **new);
-static size_t          sizenew(char **old, char **new);
-static int             newgid(int, gid_t *, gid_t);
-
-/* Macros */
-
-#define FREE_IF(x) do { if ((x) != NULL) { free(x); (x) = NULL; } } while (0)
-
-/* Public */
-
-struct irs_gr *
-irs_gen_gr(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_gr *gr;
-       struct pvt *pvt;
-
-       if (!(gr = memget(sizeof *gr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(gr, 0x5e, sizeof *gr);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(gr, sizeof *gr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->rules = accpvt->map_rules[irs_gr];
-       pvt->rule = pvt->rules;
-       gr->private = pvt;
-       gr->close = gr_close;
-       gr->next = gr_next;
-       gr->byname = gr_byname;
-       gr->bygid = gr_bygid;
-       gr->rewind = gr_rewind;
-       gr->list = gr_list;
-       gr->minimize = gr_minimize;
-       gr->res_get = gr_res_get;
-       gr->res_set = gr_res_set;
-       return (gr);
-}
-
-/* Methods. */
-
-static void
-gr_close(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct group *
-gr_next(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct group *rval;
-       struct irs_gr *gr;
-
-       while (pvt->rule) {
-               gr = pvt->rule->inst->gr;
-               rval = (*gr->next)(gr);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rule->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       gr = pvt->rule->inst->gr;
-                       (*gr->rewind)(gr);
-               }
-       }
-       return (NULL);
-}
-
-static struct group *
-gr_byname(struct irs_gr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct group *tval;
-       struct irs_gr *gr;
-       int dirty;
-
-       dirty = 0;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               gr = rule->inst->gr;
-               tval = (*gr->byname)(gr, name);
-               if (tval) {
-                       if (!grmerge(this, tval, dirty++))
-                               return (NULL);
-                       if (!(rule->flags & IRS_MERGE))
-                               break;
-               } else {
-                       if (!(rule->flags & IRS_CONTINUE))
-                               break;
-               }
-       }
-       if (dirty)
-               return (&pvt->group);
-       return (NULL);
-}
-
-static struct group *
-gr_bygid(struct irs_gr *this, gid_t gid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct group *tval;
-       struct irs_gr *gr;
-       int dirty;
-
-       dirty = 0;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               gr = rule->inst->gr;
-               tval = (*gr->bygid)(gr, gid);
-               if (tval) {
-                       if (!grmerge(this, tval, dirty++))
-                               return (NULL);
-                       if (!(rule->flags & IRS_MERGE))
-                               break;
-               } else {
-                       if (!(rule->flags & IRS_CONTINUE))
-                               break;
-               }
-       }
-       if (dirty)
-               return (&pvt->group);
-       return (NULL);
-}
-
-static void
-gr_rewind(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_gr *gr;
-
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               gr = pvt->rule->inst->gr;
-               (*gr->rewind)(gr);
-       }
-}
-
-static int
-gr_list(struct irs_gr *this, const char *name,
-       gid_t basegid, gid_t *groups, int *ngroups)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct irs_gr *gr;
-       int t_ngroups, maxgroups;
-       gid_t *t_groups;
-       int n, t, rval = 0;
-
-       maxgroups = *ngroups;
-       *ngroups = 0;
-       t_groups = (gid_t *)malloc(maxgroups * sizeof(gid_t));
-       if (!t_groups) {
-               errno = ENOMEM;
-               return (-1);
-       }
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               t_ngroups = maxgroups;
-               gr = rule->inst->gr;
-               t = (*gr->list)(gr, name, basegid, t_groups, &t_ngroups);
-               for (n = 0; n < t_ngroups; n++) {
-                       if (newgid(*ngroups, groups, t_groups[n])) {
-                               if (*ngroups == maxgroups) {
-                                       rval = -1;
-                                       goto done;
-                               }
-                               groups[(*ngroups)++] = t_groups[n];
-                       }
-               }
-               if (t == 0) {
-                       if (!(rule->flags & IRS_MERGE))
-                               break;
-               } else {
-                       if (!(rule->flags & IRS_CONTINUE))
-                               break;
-               }
-       }
- done:
-       free(t_groups);
-       return (rval);
-}
-
-static void
-gr_minimize(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_gr *gr = rule->inst->gr;
-
-               (*gr->minimize)(gr);
-       }
-}
-
-static struct __res_state *
-gr_res_get(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               gr_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-gr_res_set(struct irs_gr *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_gr *gr = rule->inst->gr;
-
-               if (gr->res_set)
-                       (*gr->res_set)(gr, pvt->res, NULL);
-       }
-}
-
-/* Private. */
-
-static int
-grmerge(struct irs_gr *this, const struct group *src, int preserve) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *cp, **m, **p, *oldmembuf, *ep;
-       int n, ndst, nnew;
-       size_t used;
-
-       if (!preserve) {
-               pvt->group.gr_gid = src->gr_gid;
-               if (pvt->nmemb < 1) {
-                       m = malloc(sizeof *m);
-                       if (m == NULL) {
-                               /* No harm done, no work done. */
-                               return (0);
-                       }
-                       pvt->group.gr_mem = m;
-                       pvt->nmemb = 1;
-               }
-               pvt->group.gr_mem[0] = NULL;
-       }
-       ndst = countvec(pvt->group.gr_mem);
-       nnew = countnew(pvt->group.gr_mem, src->gr_mem);
-
-       /*
-        * Make sure destination member array is large enough.
-        * p points to new portion.
-        */
-       n = ndst + nnew + 1;
-       if ((size_t)n > pvt->nmemb) {
-               m = realloc(pvt->group.gr_mem, n * sizeof *m);
-               if (m == NULL) {
-                       /* No harm done, no work done. */
-                       return (0);
-               }
-               pvt->group.gr_mem = m;
-               pvt->nmemb = n;
-       }
-       p = pvt->group.gr_mem + ndst;
-
-       /*
-        * Enlarge destination membuf; cp points at new portion.
-        */
-       n = sizenew(pvt->group.gr_mem, src->gr_mem);
-       INSIST((nnew == 0) == (n == 0));
-       if (!preserve) {
-               n += strlen(src->gr_name) + 1;
-               n += strlen(src->gr_passwd) + 1;
-       }
-       if (n == 0) {
-               /* No work to do. */
-               return (1);
-       }
-       used = preserve ? pvt->membufsize : 0;
-       cp = malloc(used + n);
-       if (cp == NULL) {
-               /* No harm done, no work done. */
-               return (0);
-       }
-       ep = cp + used + n;
-       if (used != 0)
-               memcpy(cp, pvt->membuf, used);
-       oldmembuf = pvt->membuf;
-       pvt->membuf = cp;
-       pvt->membufsize = used + n;
-       cp += used;
-
-       /*
-        * Adjust group.gr_mem.
-        */
-       if (pvt->membuf != oldmembuf)
-               for (m = pvt->group.gr_mem; *m; m++)
-                       *m = pvt->membuf + (*m - oldmembuf);
-
-       /*
-        * Add new elements.
-        */
-       for (m = src->gr_mem; *m; m++)
-               if (isnew(pvt->group.gr_mem, *m)) {
-                       *p++ = cp;
-                       *p = NULL;
-                       n = strlen(*m) + 1;
-                       if (n > ep - cp) {
-                               FREE_IF(oldmembuf);
-                               return (0);
-                       }
-                       strcpy(cp, *m);         /* (checked) */
-                       cp += n;
-               }
-       if (preserve) {
-               pvt->group.gr_name = pvt->membuf + 
-                                    (pvt->group.gr_name - oldmembuf);
-               pvt->group.gr_passwd = pvt->membuf + 
-                                      (pvt->group.gr_passwd - oldmembuf);
-       } else {
-               pvt->group.gr_name = cp;
-               n = strlen(src->gr_name) + 1;
-               if (n > ep - cp) {
-                       FREE_IF(oldmembuf);
-                       return (0);
-               }
-               strcpy(cp, src->gr_name);       /* (checked) */
-               cp += n;
-
-               pvt->group.gr_passwd = cp;
-               n = strlen(src->gr_passwd) + 1;
-               if (n > ep - cp) {
-                       FREE_IF(oldmembuf);
-                       return (0);
-               }
-               strcpy(cp, src->gr_passwd);     /* (checked) */
-               cp += n;
-       }
-       FREE_IF(oldmembuf);
-       INSIST(cp >= pvt->membuf && cp <= &pvt->membuf[pvt->membufsize]);
-       return (1);
-}
-
-static int
-countvec(char **vec) {
-       int n = 0;
-
-       while (*vec++)
-               n++;
-       return (n);
-}
-
-static int
-isnew(char **old, char *new) {
-       for (; *old; old++)
-               if (strcmp(*old, new) == 0)
-                       return (0);
-       return (1);
-}
-
-static int
-countnew(char **old, char **new) {
-       int n = 0;
-
-       for (; *new; new++)
-               n += isnew(old, *new);
-       return (n);
-}
-
-static size_t
-sizenew(char **old, char **new) {
-       size_t n = 0;
-
-       for (; *new; new++)
-               if (isnew(old, *new))
-                       n += strlen(*new) + 1;
-       return (n);
-}
-
-static int
-newgid(int ngroups, gid_t *groups, gid_t group) {
-       ngroups--, groups++;
-       for (; ngroups-- > 0; groups++)
-               if (*groups == group)
-                       return (0);
-       return (1);
-}
-
-#endif /* WANT_IRS_GR */
-/*! \file */
diff --git a/lib/bind/irs/gen_ho.c b/lib/bind/irs/gen_ho.c
deleted file mode 100644 (file)
index d38ea26..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: gen_ho.c,v 1.5 2006/03/09 23:57:56 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Definitions */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct irs_ho *         ho;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forwards */
-
-static void            ho_close(struct irs_ho *this);
-static struct hostent *        ho_byname(struct irs_ho *this, const char *name);
-static struct hostent *        ho_byname2(struct irs_ho *this, const char *name,
-                                  int af);
-static struct hostent *        ho_byaddr(struct irs_ho *this, const void *addr,
-                                 int len, int af);
-static struct hostent *        ho_next(struct irs_ho *this);
-static void            ho_rewind(struct irs_ho *this);
-static void            ho_minimize(struct irs_ho *this);
-static struct __res_state * ho_res_get(struct irs_ho *this);
-static void            ho_res_set(struct irs_ho *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name,
-                                    const struct addrinfo *pai);
-
-static int             init(struct irs_ho *this);
-
-/* Exports */
-
-struct irs_ho *
-irs_gen_ho(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_ho *ho;
-       struct pvt *pvt;
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(ho = memget(sizeof *ho))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ho, 0x5e, sizeof *ho);
-       pvt->rules = accpvt->map_rules[irs_ho];
-       pvt->rule = pvt->rules;
-       ho->private = pvt;
-       ho->close = ho_close;
-       ho->byname = ho_byname;
-       ho->byname2 = ho_byname2;
-       ho->byaddr = ho_byaddr;
-       ho->next = ho_next;
-       ho->rewind = ho_rewind;
-       ho->minimize = ho_minimize;
-       ho->res_get = ho_res_get;
-       ho->res_set = ho_res_set;
-       ho->addrinfo = ho_addrinfo;
-       return (ho);
-}
-
-/* Methods. */
-
-static void
-ho_close(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ho_minimize(this);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct hostent *
-ho_byname(struct irs_ho *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct hostent *rval;
-       struct irs_ho *ho;
-       int therrno = NETDB_INTERNAL;
-       int softerror = 0;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               ho = rule->inst->ho;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = 0;
-               rval = (*ho->byname)(ho, name);
-               if (rval != NULL)
-                       return (rval);
-               if (softerror == 0 &&
-                   pvt->res->res_h_errno != HOST_NOT_FOUND &&
-                   pvt->res->res_h_errno != NETDB_INTERNAL) {
-                       softerror = 1;
-                       therrno = pvt->res->res_h_errno;
-               }
-               if (rule->flags & IRS_CONTINUE)
-                       continue;
-               /*
-                * The value TRY_AGAIN can mean that the service
-                * is not available, or just that this particular name
-                * cannot be resolved now.  We use the errno ECONNREFUSED
-                * to distinguish.  If a lookup sets that errno when
-                * H_ERRNO is TRY_AGAIN, we continue to try other lookup
-                * functions, otherwise we return the TRY_AGAIN error.
-                */
-               if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED)
-                       break;
-       }
-       if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND)
-               RES_SET_H_ERRNO(pvt->res, therrno);
-       return (NULL);
-}
-
-static struct hostent *
-ho_byname2(struct irs_ho *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct hostent *rval;
-       struct irs_ho *ho;
-       int therrno = NETDB_INTERNAL;
-       int softerror = 0;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               ho = rule->inst->ho;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = 0;
-               rval = (*ho->byname2)(ho, name, af);
-               if (rval != NULL)
-                       return (rval);
-               if (softerror == 0 &&
-                   pvt->res->res_h_errno != HOST_NOT_FOUND &&
-                   pvt->res->res_h_errno != NETDB_INTERNAL) {
-                       softerror = 1;
-                       therrno = pvt->res->res_h_errno;
-               }
-               if (rule->flags & IRS_CONTINUE)
-                       continue;
-               /*
-                * See the comments in ho_byname() explaining
-                * the interpretation of TRY_AGAIN and ECONNREFUSED.
-                */
-               if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED)
-                       break;
-       }
-       if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND)
-               RES_SET_H_ERRNO(pvt->res, therrno);
-       return (NULL);
-}
-
-static struct hostent *
-ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct hostent *rval;
-       struct irs_ho *ho;
-       int therrno = NETDB_INTERNAL;
-       int softerror = 0;
-
-
-       if (init(this) == -1)
-               return (NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               ho = rule->inst->ho;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = 0;
-               rval = (*ho->byaddr)(ho, addr, len, af);
-               if (rval != NULL)
-                       return (rval);
-               if (softerror == 0 &&
-                   pvt->res->res_h_errno != HOST_NOT_FOUND &&
-                   pvt->res->res_h_errno != NETDB_INTERNAL) {
-                       softerror = 1;
-                       therrno = pvt->res->res_h_errno;
-               }
-
-               if (rule->flags & IRS_CONTINUE)
-                       continue;
-               /*
-                * See the comments in ho_byname() explaining
-                * the interpretation of TRY_AGAIN and ECONNREFUSED.
-                */
-               if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED)
-                       break;
-       }
-       if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND)
-               RES_SET_H_ERRNO(pvt->res, therrno);
-       return (NULL);
-}
-
-static struct hostent *
-ho_next(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *rval;
-       struct irs_ho *ho;
-
-       while (pvt->rule) {
-               ho = pvt->rule->inst->ho;
-               rval = (*ho->next)(ho);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rule->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       ho = pvt->rule->inst->ho;
-                       (*ho->rewind)(ho);
-               }
-       }
-       return (NULL);
-}
-
-static void
-ho_rewind(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_ho *ho;
-
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               ho = pvt->rule->inst->ho;
-               (*ho->rewind)(ho);
-       }
-}
-
-static void
-ho_minimize(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_ho *ho = rule->inst->ho;
-
-               (*ho->minimize)(ho);
-       }
-}
-
-static struct __res_state *
-ho_res_get(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               ho_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-ho_res_set(struct irs_ho *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_ho *ho = rule->inst->ho;
-
-               (*ho->res_set)(ho, pvt->res, NULL);
-       }
-}
-
-static struct addrinfo *
-ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct addrinfo *rval = NULL;
-       struct irs_ho *ho;
-       int therrno = NETDB_INTERNAL;
-       int softerror = 0;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               ho = rule->inst->ho;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = 0;
-               if (ho->addrinfo == NULL) /*%< for safety */
-                       continue;
-               rval = (*ho->addrinfo)(ho, name, pai);
-               if (rval != NULL)
-                       return (rval);
-               if (softerror == 0 &&
-                   pvt->res->res_h_errno != HOST_NOT_FOUND &&
-                   pvt->res->res_h_errno != NETDB_INTERNAL) {
-                       softerror = 1;
-                       therrno = pvt->res->res_h_errno;
-               }
-               if (rule->flags & IRS_CONTINUE)
-                       continue;
-               /*
-                * See the comments in ho_byname() explaining
-                * the interpretation of TRY_AGAIN and ECONNREFUSED.
-                */
-               if (pvt->res->res_h_errno != TRY_AGAIN ||
-                   errno != ECONNREFUSED)
-                       break;
-       }
-       if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND)
-               RES_SET_H_ERRNO(pvt->res, therrno);
-       return (NULL);
-}
-
-static int
-init(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-        if (!pvt->res && !ho_res_get(this))
-                return (-1);
-
-        if (((pvt->res->options & RES_INIT) == 0U) &&
-            (res_ninit(pvt->res) == -1))
-                return (-1);
-
-        return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/gen_ng.c b/lib/bind/irs/gen_ng.c
deleted file mode 100644 (file)
index c617c7c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_ng.c,v 1.3 2005/04/27 04:56:23 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Types */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       char *                  curgroup;
-};
-
-/* Forward */
-
-static void            ng_close(struct irs_ng *);
-static int             ng_next(struct irs_ng *, const char **,
-                               const char **, const char **);
-static int             ng_test(struct irs_ng *, const char *,
-                               const char *, const char *,
-                               const char *);
-static void            ng_rewind(struct irs_ng *, const char *);
-static void            ng_minimize(struct irs_ng *);
-
-/* Public */
-
-struct irs_ng *
-irs_gen_ng(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_ng *ng;
-       struct pvt *pvt;
-       
-       if (!(ng = memget(sizeof *ng))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ng, 0x5e, sizeof *ng);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(ng, sizeof *ng);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->rules = accpvt->map_rules[irs_ng];
-       pvt->rule = pvt->rules;
-       ng->private = pvt;
-       ng->close = ng_close;
-       ng->next = ng_next;
-       ng->test = ng_test;
-       ng->rewind = ng_rewind;
-       ng->minimize = ng_minimize;
-       return (ng);
-}
-
-/* Methods */
-
-static void 
-ng_close(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       ng_minimize(this);
-       if (pvt->curgroup)
-               free(pvt->curgroup);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static int
-ng_next(struct irs_ng *this, const char **host, const char **user,
-       const char **domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_ng *ng;
-       
-       while (pvt->rule) {
-               ng = pvt->rule->inst->ng;
-               if ((*ng->next)(ng, host, user, domain) == 1)
-                       return (1);
-               if (!(pvt->rule->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       ng = pvt->rule->inst->ng;
-                       (*ng->rewind)(ng, pvt->curgroup);
-               }
-       }
-       return (0);
-}
-
-static int
-ng_test(struct irs_ng *this, const char *name,
-       const char *user, const char *host, const char *domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct irs_ng *ng;
-       int rval;
-       
-       rval = 0;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               ng = rule->inst->ng;
-               rval = (*ng->test)(ng, name, user, host, domain);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static void
-ng_rewind(struct irs_ng *this, const char *group) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_ng *ng;
-       
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               if (pvt->curgroup)
-                       free(pvt->curgroup);
-               pvt->curgroup = strdup(group);
-               ng = pvt->rule->inst->ng;
-               (*ng->rewind)(ng, pvt->curgroup);
-       }
-}
-
-static void
-ng_minimize(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_ng *ng = rule->inst->ng;
-
-               (*ng->minimize)(ng);
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/irs/gen_nw.c b/lib/bind/irs/gen_nw.c
deleted file mode 100644 (file)
index 480a435..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_nw.c,v 1.4 2005/04/27 04:56:23 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Types */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward */
-
-static void            nw_close(struct irs_nw*);
-static struct nwent *  nw_next(struct irs_nw *);
-static struct nwent *  nw_byname(struct irs_nw *, const char *, int);
-static struct nwent *  nw_byaddr(struct irs_nw *, void *, int, int);
-static void                    nw_rewind(struct irs_nw *);
-static void            nw_minimize(struct irs_nw *);
-static struct __res_state * nw_res_get(struct irs_nw *this);
-static void            nw_res_set(struct irs_nw *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-
-static int             init(struct irs_nw *this);
-
-/* Public */
-
-struct irs_nw *
-irs_gen_nw(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_nw *nw;
-       struct pvt *pvt;
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(nw = memget(sizeof *nw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nw, 0x5e, sizeof *nw);
-       pvt->rules = accpvt->map_rules[irs_nw];
-       pvt->rule = pvt->rules;
-       nw->private = pvt;
-       nw->close = nw_close;
-       nw->next = nw_next;
-       nw->byname = nw_byname;
-       nw->byaddr = nw_byaddr;
-       nw->rewind = nw_rewind;
-       nw->minimize = nw_minimize;
-       nw->res_get = nw_res_get;
-       nw->res_set = nw_res_set;
-       return (nw);
-}
-
-/* Methods */
-
-static void
-nw_close(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       nw_minimize(this);
-
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct nwent *
-nw_next(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *rval;
-       struct irs_nw *nw;
-
-       if (init(this) == -1)
-               return(NULL);
-
-       while (pvt->rule) {
-               nw = pvt->rule->inst->nw;
-               rval = (*nw->next)(nw);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rules->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       nw = pvt->rule->inst->nw;
-                       (*nw->rewind)(nw);
-               }
-       }
-       return (NULL);
-}
-
-static struct nwent *
-nw_byname(struct irs_nw *this, const char *name, int type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct nwent *rval;
-       struct irs_nw *nw;
-       
-       if (init(this) == -1)
-               return(NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               nw = rule->inst->nw;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               rval = (*nw->byname)(nw, name, type);
-               if (rval != NULL)
-                       return (rval);
-               if (pvt->res->res_h_errno != TRY_AGAIN &&
-                   !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (NULL);
-}
-
-static struct nwent *
-nw_byaddr(struct irs_nw *this, void *net, int length, int type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct nwent *rval;
-       struct irs_nw *nw;
-       
-       if (init(this) == -1)
-               return(NULL);
-
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               nw = rule->inst->nw;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               rval = (*nw->byaddr)(nw, net, length, type);
-               if (rval != NULL)
-                       return (rval);
-               if (pvt->res->res_h_errno != TRY_AGAIN &&
-                   !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (NULL);
-}
-
-static void
-nw_rewind(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_nw *nw;
-
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               nw = pvt->rule->inst->nw;
-               (*nw->rewind)(nw);
-       }
-}
-
-static void
-nw_minimize(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_nw *nw = rule->inst->nw;
-
-               (*nw->minimize)(nw);
-       }
-}
-
-static struct __res_state *
-nw_res_get(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               nw_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-nw_res_set(struct irs_nw *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_nw *nw = rule->inst->nw;
-
-               (*nw->res_set)(nw, pvt->res, NULL);
-       }
-}
-
-static int
-init(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !nw_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0U) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/gen_p.h b/lib/bind/irs/gen_p.h
deleted file mode 100644 (file)
index 1adc590..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: gen_p.h,v 1.3 2005/04/27 04:56:23 sra Exp $
- */
-
-/*! \file
- *  Notes:
- *     We hope to create a complete set of thread-safe entry points someday,
- *     which will mean a set of getXbyY() functions that take as an argument
- *     a pointer to the map class, which will have a pointer to the private
- *     data, which will be used preferentially to the static variables that
- *     are necessary to support the "classic" interface.  This "classic"
- *     interface will then be reimplemented as stubs on top of the thread
- *     safe modules, and will keep the map class pointers as their only
- *     static data.  HOWEVER, we are not there yet.  So while we will call
- *     the just-barely-converted map class methods with map class pointers,
- *     right now they probably all still use statics.  We're not fooling
- *     anybody, and we're not trying to (yet).
- */
-
-#ifndef _GEN_P_H_INCLUDED
-#define _GEN_P_H_INCLUDED
-
-/*%
- * These are the access methods.
- */
-enum irs_acc_id {
-       irs_lcl,        /*%< Local. */
-       irs_dns,        /*%< DNS or Hesiod. */
-       irs_nis,        /*%< Sun NIS ("YP"). */
-       irs_irp,        /*%< IR protocol. */
-       irs_nacc
-};
-
-/*%
- * These are the map types.
- */
-enum irs_map_id {
-       irs_gr,         /*%< "group" */
-       irs_pw,         /*%< "passwd" */
-       irs_sv,         /*%< "services" */
-       irs_pr,         /*%< "protocols" */
-       irs_ho,         /*%< "hosts" */
-       irs_nw,         /*%< "networks" */
-       irs_ng,         /*%< "netgroup" */
-       irs_nmap
-};
-
-/*%
- * This is an accessor instance.
- */
-struct irs_inst {
-       struct irs_acc *acc;
-       struct irs_gr * gr;
-       struct irs_pw * pw;
-       struct irs_sv * sv;
-       struct irs_pr * pr;
-       struct irs_ho * ho;
-       struct irs_nw * nw;
-       struct irs_ng * ng;
-};
-
-/*%
- * This is a search rule for some map type.
- */
-struct irs_rule {
-       struct irs_rule *       next;
-       struct irs_inst *       inst;
-       int                     flags;
-};
-#define IRS_MERGE              0x0001  /*%< Don't stop if acc. has data? */
-#define        IRS_CONTINUE            0x0002  /*%< Don't stop if acc. has no data? */
-/*
- * This is the private data for a search access class.
- */
-struct gen_p {
-       char *                  options;
-       struct irs_rule *       map_rules[(int)irs_nmap];
-       struct irs_inst         accessors[(int)irs_nacc];
-       struct __res_state *    res;
-       void                    (*free_res) __P((void *));
-};
-
-/*
- * Externs.
- */
-
-extern struct irs_acc *        irs_gen_acc __P((const char *, const char *conf_file));
-extern struct irs_gr * irs_gen_gr __P((struct irs_acc *));
-extern struct irs_pw * irs_gen_pw __P((struct irs_acc *));
-extern struct irs_sv * irs_gen_sv __P((struct irs_acc *));
-extern struct irs_pr * irs_gen_pr __P((struct irs_acc *));
-extern struct irs_ho * irs_gen_ho __P((struct irs_acc *));
-extern struct irs_nw * irs_gen_nw __P((struct irs_acc *));
-extern struct irs_ng * irs_gen_ng __P((struct irs_acc *));
-
-#endif /*_IRS_P_H_INCLUDED*/
diff --git a/lib/bind/irs/gen_pr.c b/lib/bind/irs/gen_pr.c
deleted file mode 100644 (file)
index 93c0426..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_pr.c,v 1.3 2005/04/27 04:56:24 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Types */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward */
-
-static void                    pr_close(struct irs_pr*);
-static struct protoent *       pr_next(struct irs_pr *);
-static struct protoent *       pr_byname(struct irs_pr *, const char *);
-static struct protoent *       pr_bynumber(struct irs_pr *, int);
-static void                    pr_rewind(struct irs_pr *);
-static void                    pr_minimize(struct irs_pr *);
-static struct __res_state *    pr_res_get(struct irs_pr *);
-static void                    pr_res_set(struct irs_pr *,
-                                          struct __res_state *,
-                                          void (*)(void *));
-
-/* Public */
-
-struct irs_pr *
-irs_gen_pr(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_pr *pr;
-       struct pvt *pvt;
-
-       if (!(pr = memget(sizeof *pr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pr, 0x5e, sizeof *pr);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pr, sizeof *pr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->rules = accpvt->map_rules[irs_pr];
-       pvt->rule = pvt->rules;
-       pr->private = pvt;
-       pr->close = pr_close;
-       pr->next = pr_next;
-       pr->byname = pr_byname;
-       pr->bynumber = pr_bynumber;
-       pr->rewind = pr_rewind;
-       pr->minimize = pr_minimize;
-       pr->res_get = pr_res_get;
-       pr->res_set = pr_res_set;
-       return (pr);
-}
-
-/* Methods */
-
-static void
-pr_close(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct protoent *
-pr_next(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct protoent *rval;
-       struct irs_pr *pr;
-
-       while (pvt->rule) {
-               pr = pvt->rule->inst->pr;
-               rval = (*pr->next)(pr);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rules->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       pr = pvt->rule->inst->pr;
-                       (*pr->rewind)(pr);
-               }
-       }
-       return (NULL);
-}
-
-static struct protoent *
-pr_byname(struct irs_pr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct protoent *rval;
-       struct irs_pr *pr;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               pr = rule->inst->pr;
-               rval = (*pr->byname)(pr, name);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static struct protoent *
-pr_bynumber(struct irs_pr *this, int proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct protoent *rval;
-       struct irs_pr *pr;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               pr = rule->inst->pr;
-               rval = (*pr->bynumber)(pr, proto);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static void
-pr_rewind(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_pr *pr;
-
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               pr = pvt->rule->inst->pr;
-               (*pr->rewind)(pr);
-       }
-}
-
-static void
-pr_minimize(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_pr *pr = rule->inst->pr;
-
-               (*pr->minimize)(pr);
-       }
-}
-
-static struct __res_state *
-pr_res_get(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               pr_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-pr_res_set(struct irs_pr *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_pr *pr = rule->inst->pr;
-
-               if (pr->res_set)
-                       (*pr->res_set)(pr, pvt->res, NULL);
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/irs/gen_pw.c b/lib/bind/irs/gen_pw.c
deleted file mode 100644 (file)
index 512b011..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_pw.c,v 1.3 2005/04/27 04:56:24 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <errno.h>
-#include <pwd.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Types */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward */
-
-static void                    pw_close(struct irs_pw *);
-static struct passwd *         pw_next(struct irs_pw *);
-static struct passwd *         pw_byname(struct irs_pw *, const char *);
-static struct passwd *         pw_byuid(struct irs_pw *, uid_t);
-static void                    pw_rewind(struct irs_pw *);
-static void                    pw_minimize(struct irs_pw *);
-static struct __res_state *    pw_res_get(struct irs_pw *);
-static void                    pw_res_set(struct irs_pw *,
-                                          struct __res_state *,
-                                          void (*)(void *));
-
-/* Public */
-
-struct irs_pw *
-irs_gen_pw(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_pw *pw;
-       struct pvt *pvt;
-
-       if (!(pw = memget(sizeof *pw))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pw, 0x5e, sizeof *pw);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pw, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->rules = accpvt->map_rules[irs_pw];
-       pvt->rule = pvt->rules;
-       pw->private = pvt;
-       pw->close = pw_close;
-       pw->next = pw_next;
-       pw->byname = pw_byname;
-       pw->byuid = pw_byuid;
-       pw->rewind = pw_rewind;
-       pw->minimize = pw_minimize;
-       pw->res_get = pw_res_get;
-       pw->res_set = pw_res_set;
-       return (pw);
-}
-
-/* Methods */
-
-static void
-pw_close(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct passwd *
-pw_next(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct passwd *rval;
-       struct irs_pw *pw;
-       
-       while (pvt->rule) {
-               pw = pvt->rule->inst->pw;
-               rval = (*pw->next)(pw);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rule->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       pw = pvt->rule->inst->pw;
-                       (*pw->rewind)(pw);
-               }
-       }
-       return (NULL);
-}
-
-static void
-pw_rewind(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_pw *pw;
-       
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               pw = pvt->rule->inst->pw;
-               (*pw->rewind)(pw);
-       }
-}
-
-static struct passwd *
-pw_byname(struct irs_pw *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct passwd *rval;
-       struct irs_pw *pw;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               pw = rule->inst->pw;
-               rval = (*pw->byname)(pw, name);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static struct passwd *
-pw_byuid(struct irs_pw *this, uid_t uid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct passwd *rval;
-       struct irs_pw *pw;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               pw = rule->inst->pw;
-               rval = (*pw->byuid)(pw, uid);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}      
-
-static void
-pw_minimize(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_pw *pw = rule->inst->pw;
-
-               (*pw->minimize)(pw);
-       }
-}
-
-static struct __res_state *
-pw_res_get(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               pw_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-pw_res_set(struct irs_pw *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_pw *pw = rule->inst->pw;
-
-               if (pw->res_set)
-                       (*pw->res_set)(pw, pvt->res, NULL);
-       }
-}
-
-#endif /* WANT_IRS_PW */
-/*! \file */
diff --git a/lib/bind/irs/gen_sv.c b/lib/bind/irs/gen_sv.c
deleted file mode 100644 (file)
index 4cad166..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_sv.c,v 1.3 2005/04/27 04:56:24 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "gen_p.h"
-
-/* Types */
-
-struct pvt {
-       struct irs_rule *       rules;
-       struct irs_rule *       rule;
-       struct __res_state *    res;
-       void                    (*free_res)(void *);
-};
-
-/* Forward */
-
-static void                    sv_close(struct irs_sv*);
-static struct servent *                sv_next(struct irs_sv *);
-static struct servent *                sv_byname(struct irs_sv *, const char *,
-                                         const char *);
-static struct servent *                sv_byport(struct irs_sv *, int, const char *);
-static void                    sv_rewind(struct irs_sv *);
-static void                    sv_minimize(struct irs_sv *);
-static struct __res_state *    sv_res_get(struct irs_sv *);
-static void                    sv_res_set(struct irs_sv *,
-                                             struct __res_state *,
-                                             void (*)(void *));
-
-/* Public */
-
-struct irs_sv *
-irs_gen_sv(struct irs_acc *this) {
-       struct gen_p *accpvt = (struct gen_p *)this->private;
-       struct irs_sv *sv;
-       struct pvt *pvt;
-
-       if (!(sv = memget(sizeof *sv))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(sv, 0x5e, sizeof *sv);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(sv, sizeof *sv);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->rules = accpvt->map_rules[irs_sv];
-       pvt->rule = pvt->rules;
-       sv->private = pvt;
-       sv->close = sv_close;
-       sv->next = sv_next;
-       sv->byname = sv_byname;
-       sv->byport = sv_byport;
-       sv->rewind = sv_rewind;
-       sv->minimize = sv_minimize;
-       sv->res_get = sv_res_get;
-       sv->res_set = sv_res_set;
-       return (sv);
-}
-
-/* Methods */
-
-static void
-sv_close(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct servent *
-sv_next(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct servent *rval;
-       struct irs_sv *sv;
-       
-       while (pvt->rule) {
-               sv = pvt->rule->inst->sv;
-               rval = (*sv->next)(sv);
-               if (rval)
-                       return (rval);
-               if (!(pvt->rule->flags & IRS_CONTINUE))
-                       break;
-               pvt->rule = pvt->rule->next;
-               if (pvt->rule) {
-                       sv = pvt->rule->inst->sv;
-                       (*sv->rewind)(sv);
-               }
-       }
-       return (NULL);
-}
-
-static struct servent *
-sv_byname(struct irs_sv *this, const char *name, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct servent *rval;
-       struct irs_sv *sv;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               sv = rule->inst->sv;
-               rval = (*sv->byname)(sv, name, proto);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static struct servent *
-sv_byport(struct irs_sv *this, int port, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-       struct servent *rval;
-       struct irs_sv *sv;
-       
-       rval = NULL;
-       for (rule = pvt->rules; rule; rule = rule->next) {
-               sv = rule->inst->sv;
-               rval = (*sv->byport)(sv, port, proto);
-               if (rval || !(rule->flags & IRS_CONTINUE))
-                       break;
-       }
-       return (rval);
-}
-
-static void
-sv_rewind(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_sv *sv;
-
-       pvt->rule = pvt->rules;
-       if (pvt->rule) {
-               sv = pvt->rule->inst->sv;
-               (*sv->rewind)(sv);
-       }
-}
-
-static void
-sv_minimize(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_sv *sv = rule->inst->sv;
-
-               (*sv->minimize)(sv);
-       }
-}
-
-static struct __res_state *
-sv_res_get(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               sv_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-sv_res_set(struct irs_sv *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct irs_rule *rule;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-
-       for (rule = pvt->rules; rule != NULL; rule = rule->next) {
-               struct irs_sv *sv = rule->inst->sv;
-
-               if (sv->res_set)
-                       (*sv->res_set)(sv, pvt->res, NULL);
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/irs/getaddrinfo.c b/lib/bind/irs/getaddrinfo.c
deleted file mode 100644 (file)
index 1839ba4..0000000
+++ /dev/null
@@ -1,1253 +0,0 @@
-/*     $KAME: getaddrinfo.c,v 1.14 2001/01/06 09:41:15 jinmei Exp $    */
-
-/*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*! \file
- * Issues to be discussed:
- *\li  Thread safe-ness must be checked.
- *\li  Return values.  There are nonstandard return values defined and used
- *   in the source code.  This is because RFC2553 is silent about which error
- *   code must be returned for which situation.
- *\li  IPv4 classful (shortened) form.  RFC2553 is silent about it.  XNET 5.2
- *   says to use inet_aton() to convert IPv4 numeric to binary (allows
- *   classful form as a result).
- *   current code - disallow classful form for IPv4 (due to use of inet_pton).
- *\li  freeaddrinfo(NULL).  RFC2553 is silent about it.  XNET 5.2 says it is
- *   invalid.
- *   current code - SEGV on freeaddrinfo(NULL)
- * Note:
- *\li  We use getipnodebyname() just for thread-safeness.  There's no intent
- *   to let it do PF_UNSPEC (actually we never pass PF_UNSPEC to
- *   getipnodebyname().
- *\li  The code filters out AFs that are not supported by the kernel,
- *   when globbing NULL hostname (to loopback, or wildcard).  Is it the right
- *   thing to do?  What is the relationship with post-RFC2553 AI_ADDRCONFIG
- *   in ai_flags?
- *\li  (post-2553) semantics of AI_ADDRCONFIG itself is too vague.
- *   (1) what should we do against numeric hostname (2) what should we do
- *   against NULL hostname (3) what is AI_ADDRCONFIG itself.  AF not ready?
- *   non-loopback address configured?  global address configured?
- * \par Additional Issue:
- *  To avoid search order issue, we have a big amount of code duplicate
- *   from gethnamaddr.c and some other places.  The issues that there's no
- *   lower layer function to lookup "IPv4 or IPv6" record.  Calling
- *   gethostbyname2 from getaddrinfo will end up in wrong search order, as
- *   follows:
- *     \li The code makes use of following calls when asked to resolver with
- *       ai_family  = PF_UNSPEC:
- *\code                getipnodebyname(host, AF_INET6);
- *             getipnodebyname(host, AF_INET);
- *\endcode
- *     \li  This will result in the following queries if the node is configure to
- *       prefer /etc/hosts than DNS:
- *\code
- *             lookup /etc/hosts for IPv6 address
- *             lookup DNS for IPv6 address
- *             lookup /etc/hosts for IPv4 address
- *             lookup DNS for IPv4 address
- *\endcode
- *       which may not meet people's requirement.
- *      \li The right thing to happen is to have underlying layer which does
- *       PF_UNSPEC lookup (lookup both) and return chain of addrinfos.
- *       This would result in a bit of code duplicate with _dns_ghbyname() and
- *       friends.
- */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <net/if.h>
-#include <netinet/in.h>
-
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <netdb.h>
-#include <resolv.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-
-#include <stdarg.h>
-
-#include <irs.h>
-#include <isc/assertions.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-#define SUCCESS 0
-#define ANY 0
-#define YES 1
-#define NO  0
-
-static const char in_addrany[] = { 0, 0, 0, 0 };
-static const char in6_addrany[] = {
-       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-static const char in_loopback[] = { 127, 0, 0, 1 };
-static const char in6_loopback[] = {
-       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
-};
-
-static const struct afd {
-       int a_af;
-       int a_addrlen;
-       int a_socklen;
-       int a_off;
-       const char *a_addrany;
-       const char *a_loopback;
-       int a_scoped;
-} afdl [] = {
-       {PF_INET6, sizeof(struct in6_addr),
-        sizeof(struct sockaddr_in6),
-        offsetof(struct sockaddr_in6, sin6_addr),
-        in6_addrany, in6_loopback, 1},
-       {PF_INET, sizeof(struct in_addr),
-        sizeof(struct sockaddr_in),
-        offsetof(struct sockaddr_in, sin_addr),
-        in_addrany, in_loopback, 0},
-       {0, 0, 0, 0, NULL, NULL, 0},
-};
-
-struct explore {
-       int e_af;
-       int e_socktype;
-       int e_protocol;
-       const char *e_protostr;
-       int e_wild;
-#define WILD_AF(ex)            ((ex)->e_wild & 0x01)
-#define WILD_SOCKTYPE(ex)      ((ex)->e_wild & 0x02)
-#define WILD_PROTOCOL(ex)      ((ex)->e_wild & 0x04)
-};
-
-static const struct explore explore[] = {
-#if 0
-       { PF_LOCAL, 0, ANY, ANY, NULL, 0x01 },
-#endif
-       { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
-       { PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
-       { PF_INET6, SOCK_RAW, ANY, NULL, 0x05 },
-       { PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 },
-       { PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 },
-       { PF_INET, SOCK_RAW, ANY, NULL, 0x05 },
-       { -1, 0, 0, NULL, 0 },
-};
-
-#define PTON_MAX       16
-
-static int str_isnumber __P((const char *));
-static int explore_fqdn __P((const struct addrinfo *, const char *,
-       const char *, struct addrinfo **));
-static int explore_copy __P((const struct addrinfo *, const struct addrinfo *,
-       struct addrinfo **));
-static int explore_null __P((const struct addrinfo *,
-       const char *, struct addrinfo **));
-static int explore_numeric __P((const struct addrinfo *, const char *,
-       const char *, struct addrinfo **));
-static int explore_numeric_scope __P((const struct addrinfo *, const char *,
-       const char *, struct addrinfo **));
-static int get_canonname __P((const struct addrinfo *,
-       struct addrinfo *, const char *));
-static struct addrinfo *get_ai __P((const struct addrinfo *,
-       const struct afd *, const char *));
-static struct addrinfo *copy_ai __P((const struct addrinfo *));
-static int get_portmatch __P((const struct addrinfo *, const char *));
-static int get_port __P((const struct addrinfo *, const char *, int));
-static const struct afd *find_afd __P((int));
-static int addrconfig __P((int));
-static int ip6_str2scopeid __P((char *, struct sockaddr_in6 *,
-                               u_int32_t *scopeidp));
-static struct net_data *init __P((void));
-
-struct addrinfo *hostent2addrinfo __P((struct hostent *,
-                                      const struct addrinfo *));
-struct addrinfo *addr2addrinfo __P((const struct addrinfo *,
-                                   const char *));
-
-#if 0
-static const char *ai_errlist[] = {
-       "Success",
-       "Address family for hostname not supported",    /*%< EAI_ADDRFAMILY */
-       "Temporary failure in name resolution",         /*%< EAI_AGAIN */
-       "Invalid value for ai_flags",                   /*%< EAI_BADFLAGS */
-       "Non-recoverable failure in name resolution",   /*%< EAI_FAIL */
-       "ai_family not supported",                      /*%< EAI_FAMILY */
-       "Memory allocation failure",                    /*%< EAI_MEMORY */
-       "No address associated with hostname",          /*%< EAI_NODATA */
-       "hostname nor servname provided, or not known", /*%< EAI_NONAME */
-       "servname not supported for ai_socktype",       /*%< EAI_SERVICE */
-       "ai_socktype not supported",                    /*%< EAI_SOCKTYPE */
-       "System error returned in errno",               /*%< EAI_SYSTEM */
-       "Invalid value for hints",                      /*%< EAI_BADHINTS */
-       "Resolved protocol is unknown",                 /*%< EAI_PROTOCOL */
-       "Unknown error",                                /*%< EAI_MAX */
-};
-#endif
-
-/* XXX macros that make external reference is BAD. */
-
-#define GET_AI(ai, afd, addr) \
-do { \
-       /* external reference: pai, error, and label free */ \
-       (ai) = get_ai(pai, (afd), (addr)); \
-       if ((ai) == NULL) { \
-               error = EAI_MEMORY; \
-               goto free; \
-       } \
-} while (/*CONSTCOND*/0)
-
-#define GET_PORT(ai, serv) \
-do { \
-       /* external reference: error and label free */ \
-       error = get_port((ai), (serv), 0); \
-       if (error != 0) \
-               goto free; \
-} while (/*CONSTCOND*/0)
-
-#define GET_CANONNAME(ai, str) \
-do { \
-       /* external reference: pai, error and label free */ \
-       error = get_canonname(pai, (ai), (str)); \
-       if (error != 0) \
-               goto free; \
-} while (/*CONSTCOND*/0)
-
-#ifndef SOLARIS2
-#define SETERROR(err) \
-do { \
-       /* external reference: error, and label bad */ \
-       error = (err); \
-       goto bad; \
-       /*NOTREACHED*/ \
-} while (/*CONSTCOND*/0)
-#else
-#define SETERROR(err) \
-do { \
-       /* external reference: error, and label bad */ \
-       error = (err); \
-       if (error == error) \
-               goto bad; \
-} while (/*CONSTCOND*/0)
-#endif
-
-
-#define MATCH_FAMILY(x, y, w) \
-       ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == PF_UNSPEC || (y) == PF_UNSPEC)))
-#define MATCH(x, y, w) \
-       ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == ANY || (y) == ANY)))
-
-#if 0                          /*%< bind8 has its own version */
-char *
-gai_strerror(ecode)
-       int ecode;
-{
-       if (ecode < 0 || ecode > EAI_MAX)
-               ecode = EAI_MAX;
-       return ai_errlist[ecode];
-}
-#endif
-
-void
-freeaddrinfo(ai)
-       struct addrinfo *ai;
-{
-       struct addrinfo *next;
-
-       do {
-               next = ai->ai_next;
-               if (ai->ai_canonname)
-                       free(ai->ai_canonname);
-               /* no need to free(ai->ai_addr) */
-               free(ai);
-               ai = next;
-       } while (ai);
-}
-
-static int
-str_isnumber(p)
-       const char *p;
-{
-       char *ep;
-
-       if (*p == '\0')
-               return NO;
-       ep = NULL;
-       errno = 0;
-       (void)strtoul(p, &ep, 10);
-       if (errno == 0 && ep && *ep == '\0')
-               return YES;
-       else
-               return NO;
-}
-
-int
-getaddrinfo(hostname, servname, hints, res)
-       const char *hostname, *servname;
-       const struct addrinfo *hints;
-       struct addrinfo **res;
-{
-       struct addrinfo sentinel;
-       struct addrinfo *cur;
-       int error = 0;
-       struct addrinfo ai, ai0, *afai = NULL;
-       struct addrinfo *pai;
-       const struct explore *ex;
-
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-       pai = &ai;
-       pai->ai_flags = 0;
-       pai->ai_family = PF_UNSPEC;
-       pai->ai_socktype = ANY;
-       pai->ai_protocol = ANY;
-#if defined(sun) && defined(_SOCKLEN_T) && defined(__sparcv9)
-       /*
-        * clear _ai_pad to preserve binary
-        * compatibility with previously compiled 64-bit
-        * applications in a pre-SUSv3 environment by
-        * guaranteeing the upper 32-bits are empty.
-        */
-       pai->_ai_pad = 0;
-#endif
-       pai->ai_addrlen = 0;
-       pai->ai_canonname = NULL;
-       pai->ai_addr = NULL;
-       pai->ai_next = NULL;
-
-       if (hostname == NULL && servname == NULL)
-               return EAI_NONAME;
-       if (hints) {
-               /* error check for hints */
-               if (hints->ai_addrlen || hints->ai_canonname ||
-                   hints->ai_addr || hints->ai_next)
-                       SETERROR(EAI_BADHINTS); /*%< xxx */
-               if (hints->ai_flags & ~AI_MASK)
-                       SETERROR(EAI_BADFLAGS);
-               switch (hints->ai_family) {
-               case PF_UNSPEC:
-               case PF_INET:
-               case PF_INET6:
-                       break;
-               default:
-                       SETERROR(EAI_FAMILY);
-               }
-               memcpy(pai, hints, sizeof(*pai));
-
-#if defined(sun) && defined(_SOCKLEN_T) && defined(__sparcv9)
-               /*
-                * We need to clear _ai_pad to preserve binary
-                * compatibility.  See prior comment.
-                */
-               pai->_ai_pad = 0;
-#endif
-               /*
-                * if both socktype/protocol are specified, check if they
-                * are meaningful combination.
-                */
-               if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
-                       for (ex = explore; ex->e_af >= 0; ex++) {
-                               if (pai->ai_family != ex->e_af)
-                                       continue;
-                               if (ex->e_socktype == ANY)
-                                       continue;
-                               if (ex->e_protocol == ANY)
-                                       continue;
-                               if (pai->ai_socktype == ex->e_socktype &&
-                                   pai->ai_protocol != ex->e_protocol) {
-                                       SETERROR(EAI_BADHINTS);
-                               }
-                       }
-               }
-       }
-
-       /*
-        * post-2553: AI_ALL and AI_V4MAPPED are effective only against
-        * AF_INET6 query.  They needs to be ignored if specified in other
-        * occassions.
-        */
-       switch (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) {
-       case AI_V4MAPPED:
-       case AI_ALL | AI_V4MAPPED:
-               if (pai->ai_family != AF_INET6)
-                       pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED);
-               break;
-       case AI_ALL:
-#if 1
-               /* illegal */
-               SETERROR(EAI_BADFLAGS);
-#else
-               pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED);
-               break;
-#endif
-       }
-
-       /*
-        * check for special cases.  (1) numeric servname is disallowed if
-        * socktype/protocol are left unspecified. (2) servname is disallowed
-        * for raw and other inet{,6} sockets.
-        */
-       if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
-#ifdef PF_INET6
-        || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
-#endif
-           ) {
-               ai0 = *pai;     /* backup *pai */
-
-               if (pai->ai_family == PF_UNSPEC) {
-#ifdef PF_INET6
-                       pai->ai_family = PF_INET6;
-#else
-                       pai->ai_family = PF_INET;
-#endif
-               }
-               error = get_portmatch(pai, servname);
-               if (error)
-                       SETERROR(error);
-
-               *pai = ai0;
-       }
-
-       ai0 = *pai;
-
-       /* NULL hostname, or numeric hostname */
-       for (ex = explore; ex->e_af >= 0; ex++) {
-               *pai = ai0;
-
-               if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
-                       continue;
-               if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
-                       continue;
-               if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
-                       continue;
-
-               if (pai->ai_family == PF_UNSPEC)
-                       pai->ai_family = ex->e_af;
-               if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
-                       pai->ai_socktype = ex->e_socktype;
-               if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
-                       pai->ai_protocol = ex->e_protocol;
-
-               /*
-                * if the servname does not match socktype/protocol, ignore it.
-                */
-               if (get_portmatch(pai, servname) != 0)
-                       continue;
-
-               if (hostname == NULL) {
-                       /*
-                        * filter out AFs that are not supported by the kernel
-                        * XXX errno?
-                        */
-                       if (!addrconfig(pai->ai_family))
-                               continue;
-                       error = explore_null(pai, servname, &cur->ai_next);
-               } else
-                       error = explore_numeric_scope(pai, hostname, servname,
-                           &cur->ai_next);
-
-               if (error)
-                       goto free;
-
-               while (cur && cur->ai_next)
-                       cur = cur->ai_next;
-       }
-
-       /*
-        * XXX
-        * If numreic representation of AF1 can be interpreted as FQDN
-        * representation of AF2, we need to think again about the code below.
-        */
-       if (sentinel.ai_next)
-               goto good;
-
-       if (pai->ai_flags & AI_NUMERICHOST)
-               SETERROR(EAI_NONAME);
-       if (hostname == NULL)
-               SETERROR(EAI_NONAME);
-
-       /*
-        * hostname as alphabetical name.
-        * We'll make sure that
-        * - if returning addrinfo list is empty, return non-zero error
-        *   value (already known one or EAI_NONAME).
-        * - otherwise, 
-        *   + if we haven't had any errors, return 0 (i.e. success).
-        *   + if we've had an error, free the list and return the error.
-        * without any assumption on the behavior of explore_fqdn().
-        */
-
-       /* first, try to query DNS for all possible address families. */
-       *pai = ai0;
-       error = explore_fqdn(pai, hostname, servname, &afai);
-       if (error) {
-               if (afai != NULL)
-                       freeaddrinfo(afai);
-               goto free;
-       }
-       if (afai == NULL) {
-               error = EAI_NONAME; /*%< we've had no errors. */
-               goto free;
-       }
-
-       /*
-        * we would like to prefer AF_INET6 than AF_INET, so we'll make an
-        * outer loop by AFs.
-        */
-       for (ex = explore; ex->e_af >= 0; ex++) {
-               *pai = ai0;
-
-               if (pai->ai_family == PF_UNSPEC)
-                       pai->ai_family = ex->e_af;
-
-               if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
-                       continue;
-               if (!MATCH(pai->ai_socktype, ex->e_socktype,
-                          WILD_SOCKTYPE(ex))) {
-                       continue;
-               }
-               if (!MATCH(pai->ai_protocol, ex->e_protocol,
-                          WILD_PROTOCOL(ex))) {
-                       continue;
-               }
-
-#ifdef AI_ADDRCONFIG
-               /*
-                * If AI_ADDRCONFIG is specified, check if we are
-                * expected to return the address family or not.
-                */
-               if ((pai->ai_flags & AI_ADDRCONFIG) != 0 &&
-                   !addrconfig(pai->ai_family))
-                       continue;
-#endif
-
-               if (pai->ai_family == PF_UNSPEC)
-                       pai->ai_family = ex->e_af;
-               if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
-                       pai->ai_socktype = ex->e_socktype;
-               if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
-                       pai->ai_protocol = ex->e_protocol;
-
-               /*
-                * if the servname does not match socktype/protocol, ignore it.
-                */
-               if (get_portmatch(pai, servname) != 0)
-                       continue;
-
-               if ((error = explore_copy(pai, afai, &cur->ai_next)) != 0) {
-                       freeaddrinfo(afai);
-                       goto free;
-               }
-
-               while (cur && cur->ai_next)
-                       cur = cur->ai_next;
-       }
-
-       freeaddrinfo(afai);     /*%< afai must not be NULL at this point. */
-
-       if (sentinel.ai_next) {
-good:
-               *res = sentinel.ai_next;
-               return(SUCCESS);
-       } else {
-               /*
-                * All the process succeeded, but we've had an empty list. 
-                * This can happen if the given hints do not match our
-                * candidates.
-                */
-               error = EAI_NONAME;
-       }
-
-free:
-bad:
-       if (sentinel.ai_next)
-               freeaddrinfo(sentinel.ai_next);
-       *res = NULL;
-       return(error);
-}
-
-/*%
- * FQDN hostname, DNS lookup
- */
-static int
-explore_fqdn(pai, hostname, servname, res)
-       const struct addrinfo *pai;
-       const char *hostname;
-       const char *servname;
-       struct addrinfo **res;
-{
-       struct addrinfo *result;
-       struct addrinfo *cur;
-       struct net_data *net_data = init();
-       struct irs_ho *ho;
-       int error = 0;
-       char tmp[NS_MAXDNAME];
-       const char *cp;
-
-       INSIST(res != NULL && *res == NULL);
-
-       /*
-        * if the servname does not match socktype/protocol, ignore it.
-        */
-       if (get_portmatch(pai, servname) != 0)
-               return(0);
-
-       if (!net_data || !(ho = net_data->ho))
-               return(0);
-#if 0                          /*%< XXX (notyet) */
-       if (net_data->ho_stayopen && net_data->ho_last &&
-           net_data->ho_last->h_addrtype == af) {
-               if (ns_samename(name, net_data->ho_last->h_name) == 1)
-                       return (net_data->ho_last);
-               for (hap = net_data->ho_last->h_aliases; hap && *hap; hap++)
-                       if (ns_samename(name, *hap) == 1)
-                               return (net_data->ho_last);
-       }
-#endif
-       if (!strchr(hostname, '.') &&
-           (cp = res_hostalias(net_data->res, hostname,
-                               tmp, sizeof(tmp))))
-               hostname = cp;
-       result = (*ho->addrinfo)(ho, hostname, pai);
-       if (!net_data->ho_stayopen) {
-               (*ho->minimize)(ho);
-       }
-       if (result == NULL) {
-               int e = h_errno;
-
-               switch(e) {
-               case NETDB_INTERNAL:
-                       error = EAI_SYSTEM;
-                       break;
-               case TRY_AGAIN:
-                       error = EAI_AGAIN;
-                       break;
-               case NO_RECOVERY:
-                       error = EAI_FAIL;
-                       break;
-               case HOST_NOT_FOUND:
-               case NO_DATA:
-                       error = EAI_NONAME;
-                       break;
-               default:
-               case NETDB_SUCCESS: /*%< should be impossible... */
-                       error = EAI_NONAME;
-                       break;
-               }
-               goto free;
-       }
-
-       for (cur = result; cur; cur = cur->ai_next) {
-               GET_PORT(cur, servname); /*%< XXX: redundant lookups... */
-               /* canonname should already be filled. */
-       }
-
-       *res = result;
-
-       return(0);
-
-free:
-       if (result)
-               freeaddrinfo(result);
-       return error;
-}
-
-static int
-explore_copy(pai, src0, res)
-       const struct addrinfo *pai;     /*%< seed */
-       const struct addrinfo *src0;    /*%< source */
-       struct addrinfo **res;
-{
-       int error;
-       struct addrinfo sentinel, *cur;
-       const struct addrinfo *src;
-
-       error = 0;
-       sentinel.ai_next = NULL;
-       cur = &sentinel;
-
-       for (src = src0; src != NULL; src = src->ai_next) {
-               if (src->ai_family != pai->ai_family)
-                       continue;
-
-               cur->ai_next = copy_ai(src);
-               if (!cur->ai_next) {
-                       error = EAI_MEMORY;
-                       goto fail;
-               }
-
-               cur->ai_next->ai_socktype = pai->ai_socktype;
-               cur->ai_next->ai_protocol = pai->ai_protocol;
-               cur = cur->ai_next;
-       }
-
-       *res = sentinel.ai_next;
-       return 0;
-
-fail:
-       freeaddrinfo(sentinel.ai_next);
-       return error;
-}
-
-/*%
- * hostname == NULL.
- * passive socket -> anyaddr (0.0.0.0 or ::)
- * non-passive socket -> localhost (127.0.0.1 or ::1)
- */
-static int
-explore_null(pai, servname, res)
-       const struct addrinfo *pai;
-       const char *servname;
-       struct addrinfo **res;
-{
-       const struct afd *afd;
-       struct addrinfo *cur;
-       struct addrinfo sentinel;
-       int error;
-
-       *res = NULL;
-       sentinel.ai_next = NULL;
-       cur = &sentinel;
-
-       afd = find_afd(pai->ai_family);
-       if (afd == NULL)
-               return 0;
-
-       if (pai->ai_flags & AI_PASSIVE) {
-               GET_AI(cur->ai_next, afd, afd->a_addrany);
-               /* xxx meaningless?
-                * GET_CANONNAME(cur->ai_next, "anyaddr");
-                */
-               GET_PORT(cur->ai_next, servname);
-       } else {
-               GET_AI(cur->ai_next, afd, afd->a_loopback);
-               /* xxx meaningless?
-                * GET_CANONNAME(cur->ai_next, "localhost");
-                */
-               GET_PORT(cur->ai_next, servname);
-       }
-       cur = cur->ai_next;
-
-       *res = sentinel.ai_next;
-       return 0;
-
-free:
-       if (sentinel.ai_next)
-               freeaddrinfo(sentinel.ai_next);
-       return error;
-}
-
-/*%
- * numeric hostname
- */
-static int
-explore_numeric(pai, hostname, servname, res)
-       const struct addrinfo *pai;
-       const char *hostname;
-       const char *servname;
-       struct addrinfo **res;
-{
-       const struct afd *afd;
-       struct addrinfo *cur;
-       struct addrinfo sentinel;
-       int error;
-       char pton[PTON_MAX];
-
-       *res = NULL;
-       sentinel.ai_next = NULL;
-       cur = &sentinel;
-
-       afd = find_afd(pai->ai_family);
-       if (afd == NULL)
-               return 0;
-
-       switch (afd->a_af) {
-#if 0 /*X/Open spec*/
-       case AF_INET:
-               if (inet_aton(hostname, (struct in_addr *)pton) == 1) {
-                       if (pai->ai_family == afd->a_af ||
-                           pai->ai_family == PF_UNSPEC /*?*/) {
-                               GET_AI(cur->ai_next, afd, pton);
-                               GET_PORT(cur->ai_next, servname);
-                               while (cur->ai_next)
-                                       cur = cur->ai_next;
-                       } else
-                               SETERROR(EAI_FAMILY);   /*xxx*/
-               }
-               break;
-#endif
-       default:
-               if (inet_pton(afd->a_af, hostname, pton) == 1) {
-                       if (pai->ai_family == afd->a_af ||
-                           pai->ai_family == PF_UNSPEC /*?*/) {
-                               GET_AI(cur->ai_next, afd, pton);
-                               GET_PORT(cur->ai_next, servname);
-                               while (cur->ai_next)
-                                       cur = cur->ai_next;
-                       } else
-                               SETERROR(EAI_FAMILY);   /*xxx*/
-               }
-               break;
-       }
-
-       *res = sentinel.ai_next;
-       return 0;
-
-free:
-bad:
-       if (sentinel.ai_next)
-               freeaddrinfo(sentinel.ai_next);
-       return error;
-}
-
-/*%
- * numeric hostname with scope
- */
-static int
-explore_numeric_scope(pai, hostname, servname, res)
-       const struct addrinfo *pai;
-       const char *hostname;
-       const char *servname;
-       struct addrinfo **res;
-{
-#ifndef SCOPE_DELIMITER
-       return explore_numeric(pai, hostname, servname, res);
-#else
-       const struct afd *afd;
-       struct addrinfo *cur;
-       int error;
-       char *cp, *hostname2 = NULL, *scope, *addr;
-       struct sockaddr_in6 *sin6;
-
-       afd = find_afd(pai->ai_family);
-       if (afd == NULL)
-               return 0;
-
-       if (!afd->a_scoped)
-               return explore_numeric(pai, hostname, servname, res);
-
-       cp = strchr(hostname, SCOPE_DELIMITER);
-       if (cp == NULL)
-               return explore_numeric(pai, hostname, servname, res);
-
-       /*
-        * Handle special case of <scoped_address><delimiter><scope id>
-        */
-       hostname2 = strdup(hostname);
-       if (hostname2 == NULL)
-               return EAI_MEMORY;
-       /* terminate at the delimiter */
-       hostname2[cp - hostname] = '\0';
-       addr = hostname2;
-       scope = cp + 1;
-
-       error = explore_numeric(pai, addr, servname, res);
-       if (error == 0) {
-               u_int32_t scopeid = 0;
-
-               for (cur = *res; cur; cur = cur->ai_next) {
-                       if (cur->ai_family != AF_INET6)
-                               continue;
-                       sin6 = (struct sockaddr_in6 *)(void *)cur->ai_addr;
-                       if (!ip6_str2scopeid(scope, sin6, &scopeid)) {
-                               free(hostname2);
-                               return(EAI_NONAME); /*%< XXX: is return OK? */
-                       }
-#ifdef HAVE_SIN6_SCOPE_ID
-                       sin6->sin6_scope_id = scopeid;
-#endif
-               }
-       }
-
-       free(hostname2);
-
-       return error;
-#endif
-}
-
-static int
-get_canonname(pai, ai, str)
-       const struct addrinfo *pai;
-       struct addrinfo *ai;
-       const char *str;
-{
-       if ((pai->ai_flags & AI_CANONNAME) != 0) {
-               ai->ai_canonname = (char *)malloc(strlen(str) + 1);
-               if (ai->ai_canonname == NULL)
-                       return EAI_MEMORY;
-               strcpy(ai->ai_canonname, str);
-       }
-       return 0;
-}
-
-static struct addrinfo *
-get_ai(pai, afd, addr)
-       const struct addrinfo *pai;
-       const struct afd *afd;
-       const char *addr;
-{
-       char *p;
-       struct addrinfo *ai;
-
-       ai = (struct addrinfo *)malloc(sizeof(struct addrinfo)
-               + (afd->a_socklen));
-       if (ai == NULL)
-               return NULL;
-
-       memcpy(ai, pai, sizeof(struct addrinfo));
-       ai->ai_addr = (struct sockaddr *)(void *)(ai + 1);
-       memset(ai->ai_addr, 0, (size_t)afd->a_socklen);
-#ifdef HAVE_SA_LEN
-       ai->ai_addr->sa_len = afd->a_socklen;
-#endif
-       ai->ai_addrlen = afd->a_socklen;
-       ai->ai_addr->sa_family = ai->ai_family = afd->a_af;
-       p = (char *)(void *)(ai->ai_addr);
-       memcpy(p + afd->a_off, addr, (size_t)afd->a_addrlen);
-       return ai;
-}
-
-/* XXX need to malloc() the same way we do from other functions! */
-static struct addrinfo *
-copy_ai(pai)
-       const struct addrinfo *pai;
-{
-       struct addrinfo *ai;
-       size_t l;
-
-       l = sizeof(*ai) + pai->ai_addrlen;
-       if ((ai = (struct addrinfo *)malloc(l)) == NULL)
-               return NULL;
-       memset(ai, 0, l);
-       memcpy(ai, pai, sizeof(*ai));
-       ai->ai_addr = (struct sockaddr *)(void *)(ai + 1);
-       memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen);
-
-       if (pai->ai_canonname) {
-               l = strlen(pai->ai_canonname) + 1;
-               if ((ai->ai_canonname = malloc(l)) == NULL) {
-                       free(ai);
-                       return NULL;
-               }
-               strcpy(ai->ai_canonname, pai->ai_canonname);    /* (checked) */
-       } else {
-               /* just to make sure */
-               ai->ai_canonname = NULL;
-       }
-
-       ai->ai_next = NULL;
-
-       return ai;
-}
-
-static int
-get_portmatch(const struct addrinfo *ai, const char *servname) {
-
-       /* get_port does not touch first argument. when matchonly == 1. */
-       /* LINTED const cast */
-       return get_port((const struct addrinfo *)ai, servname, 1);
-}
-
-static int
-get_port(const struct addrinfo *ai, const char *servname, int matchonly) {
-       const char *proto;
-       struct servent *sp;
-       int port;
-       int allownumeric;
-
-       if (servname == NULL)
-               return 0;
-       switch (ai->ai_family) {
-       case AF_INET:
-#ifdef AF_INET6
-       case AF_INET6:
-#endif
-               break;
-       default:
-               return 0;
-       }
-
-       switch (ai->ai_socktype) {
-       case SOCK_RAW:
-               return EAI_SERVICE;
-       case SOCK_DGRAM:
-       case SOCK_STREAM:
-               allownumeric = 1;
-               break;
-       case ANY:
-               switch (ai->ai_family) {
-               case AF_INET:
-#ifdef AF_INET6
-               case AF_INET6:
-#endif
-                       allownumeric = 1;
-                       break;
-               default:
-                       allownumeric = 0;
-                       break;
-               }
-               break;
-       default:
-               return EAI_SOCKTYPE;
-       }
-
-       if (str_isnumber(servname)) {
-               if (!allownumeric)
-                       return EAI_SERVICE;
-               port = atoi(servname);
-               if (port < 0 || port > 65535)
-                       return EAI_SERVICE;
-               port = htons(port);
-       } else {
-               switch (ai->ai_socktype) {
-               case SOCK_DGRAM:
-                       proto = "udp";
-                       break;
-               case SOCK_STREAM:
-                       proto = "tcp";
-                       break;
-               default:
-                       proto = NULL;
-                       break;
-               }
-
-               if ((sp = getservbyname(servname, proto)) == NULL)
-                       return EAI_SERVICE;
-               port = sp->s_port;
-       }
-
-       if (!matchonly) {
-               switch (ai->ai_family) {
-               case AF_INET:
-                       ((struct sockaddr_in *)(void *)
-                           ai->ai_addr)->sin_port = port;
-                       break;
-               case AF_INET6:
-                       ((struct sockaddr_in6 *)(void *)
-                           ai->ai_addr)->sin6_port = port;
-                       break;
-               }
-       }
-
-       return 0;
-}
-
-static const struct afd *
-find_afd(af)
-       int af;
-{
-       const struct afd *afd;
-
-       if (af == PF_UNSPEC)
-               return NULL;
-       for (afd = afdl; afd->a_af; afd++) {
-               if (afd->a_af == af)
-                       return afd;
-       }
-       return NULL;
-}
-
-/*%
- * post-2553: AI_ADDRCONFIG check.  if we use getipnodeby* as backend, backend
- * will take care of it.
- * the semantics of AI_ADDRCONFIG is not defined well.  we are not sure
- * if the code is right or not.
- */
-static int
-addrconfig(af)
-       int af;
-{
-       int s;
-
-       /* XXX errno */
-       s = socket(af, SOCK_DGRAM, 0);
-       if (s < 0) {
-               if (errno != EMFILE)
-                       return 0;
-       } else
-               close(s);
-       return 1;
-}
-
-/* convert a string to a scope identifier. XXX: IPv6 specific */
-static int
-ip6_str2scopeid(char *scope, struct sockaddr_in6 *sin6,
-               u_int32_t *scopeidp)
-{
-       u_int32_t scopeid;
-       u_long lscopeid;
-       struct in6_addr *a6 = &sin6->sin6_addr;
-       char *ep;
-       
-       /* empty scopeid portion is invalid */
-       if (*scope == '\0')
-               return (0);
-
-#ifdef USE_IFNAMELINKID
-       if (IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6) ||
-           IN6_IS_ADDR_MC_NODELOCAL(a6)) {
-               /*
-                * Using interface names as link indices can be allowed
-                * only when we can assume a one-to-one mappings between
-                * links and interfaces.  See comments in getnameinfo.c.
-                */
-               scopeid = if_nametoindex(scope);
-               if (scopeid == 0)
-                       goto trynumeric;
-               *scopeidp = scopeid;
-               return (1);
-       }
-#endif
-
-       /* still unclear about literal, allow numeric only - placeholder */
-       if (IN6_IS_ADDR_SITELOCAL(a6) || IN6_IS_ADDR_MC_SITELOCAL(a6))
-               goto trynumeric;
-       if (IN6_IS_ADDR_MC_ORGLOCAL(a6))
-               goto trynumeric;
-       else
-               goto trynumeric;        /*%< global */
-       /* try to convert to a numeric id as a last resort */
-trynumeric:
-       errno = 0;
-       lscopeid = strtoul(scope, &ep, 10);
-       scopeid = lscopeid & 0xffffffff;
-       if (errno == 0 && ep && *ep == '\0' && scopeid == lscopeid) {
-               *scopeidp = scopeid;
-               return (1);
-       } else
-               return (0);
-}
-
-struct addrinfo *
-hostent2addrinfo(hp, pai)
-       struct hostent *hp;
-       const struct addrinfo *pai;
-{
-       int i, af, error = 0;
-       char **aplist = NULL, *ap;
-       struct addrinfo sentinel, *cur;
-       const struct afd *afd;
-
-       af = hp->h_addrtype;
-       if (pai->ai_family != AF_UNSPEC && af != pai->ai_family)
-               return(NULL);
-
-       afd = find_afd(af);
-       if (afd == NULL)
-               return(NULL);
-
-       aplist = hp->h_addr_list;
-
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-
-       for (i = 0; (ap = aplist[i]) != NULL; i++) {
-#if 0                          /*%< the trick seems too much */
-               af = hp->h_addr_list;
-               if (af == AF_INET6 &&
-                   IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ap)) {
-                       af = AF_INET;
-                       ap = ap + sizeof(struct in6_addr)
-                               - sizeof(struct in_addr);
-               }
-               afd = find_afd(af);
-               if (afd == NULL)
-                       continue;
-#endif /* 0 */
-
-               GET_AI(cur->ai_next, afd, ap);
-
-               /* GET_PORT(cur->ai_next, servname); */
-               if ((pai->ai_flags & AI_CANONNAME) != 0) {
-                       /*
-                        * RFC2553 says that ai_canonname will be set only for
-                        * the first element.  we do it for all the elements,
-                        * just for convenience.
-                        */
-                       GET_CANONNAME(cur->ai_next, hp->h_name);
-               }
-               while (cur->ai_next) /*%< no need to loop, actually. */
-                       cur = cur->ai_next;
-               continue;
-
-       free:
-               if (cur->ai_next)
-                       freeaddrinfo(cur->ai_next);
-               cur->ai_next = NULL;
-               /* continue, without tht pointer CUR advanced. */
-       }
-
-       return(sentinel.ai_next);
-}
-
-struct addrinfo *
-addr2addrinfo(pai, cp)
-       const struct addrinfo *pai;
-       const char *cp;
-{
-       const struct afd *afd;
-
-       afd = find_afd(pai->ai_family);
-       if (afd == NULL)
-               return(NULL);
-
-       return(get_ai(pai, afd, cp));
-}
-
-static struct net_data *
-init()
-{
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->ho) {
-               net_data->ho = (*net_data->irs->ho_map)(net_data->irs);
-               if (!net_data->ho || !net_data->res) {
-error:
-                       errno = EIO;
-                       if (net_data && net_data->res)
-                               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-                       return (NULL);
-               }
-
-               (*net_data->ho->res_set)(net_data->ho, net_data->res, NULL);
-       }
-
-       return (net_data);
-}
diff --git a/lib/bind/irs/getgrent.c b/lib/bind/irs/getgrent.c
deleted file mode 100644 (file)
index e6c6c42..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: getgrent.c,v 1.5 2005/04/27 04:56:24 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(WANT_IRS_GR) || defined(__BIND_NOSTATIC)
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <grp.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-/* Forward */
-
-static struct net_data *init(void);
-void                   endgrent(void);
-
-/* Public */
-
-struct group *
-getgrent() {
-       struct net_data *net_data = init();
-
-       return (getgrent_p(net_data));
-}
-
-struct group *
-getgrnam(const char *name) {
-       struct net_data *net_data = init();
-
-       return (getgrnam_p(name, net_data));
-}
-
-struct group *
-getgrgid(gid_t gid) {
-       struct net_data *net_data = init();
-
-       return (getgrgid_p(gid, net_data));
-}
-
-int
-setgroupent(int stayopen) {
-       struct net_data *net_data = init();
-
-       return (setgroupent_p(stayopen, net_data));
-}
-
-#ifdef SETGRENT_VOID
-void
-setgrent(void) {
-       struct net_data *net_data = init();
-
-       setgrent_p(net_data);
-}
-#else
-int
-setgrent(void) {
-       struct net_data *net_data = init();
-
-       return (setgrent_p(net_data));
-}
-#endif /* SETGRENT_VOID */
-
-void
-endgrent() {
-       struct net_data *net_data = init();
-
-       endgrent_p(net_data);
-}
-
-int
-getgrouplist(GETGROUPLIST_ARGS) {
-       struct net_data *net_data = init();
-
-       return (getgrouplist_p(name, basegid, groups, ngroups, net_data));
-}
-
-/* Shared private. */
-
-struct group *
-getgrent_p(struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if (!net_data || !(gr = net_data->gr))
-               return (NULL);
-       net_data->gr_last = (*gr->next)(gr);
-       return (net_data->gr_last);
-}
-
-struct group *
-getgrnam_p(const char *name, struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if (!net_data || !(gr = net_data->gr))
-               return (NULL);
-       if (net_data->gr_stayopen && net_data->gr_last &&
-           !strcmp(net_data->gr_last->gr_name, name))
-               return (net_data->gr_last);
-       net_data->gr_last = (*gr->byname)(gr, name);
-       if (!net_data->gr_stayopen)
-               endgrent();
-       return (net_data->gr_last);
-}
-
-struct group *
-getgrgid_p(gid_t gid, struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if (!net_data || !(gr = net_data->gr))
-               return (NULL);
-       if (net_data->gr_stayopen && net_data->gr_last &&
-           (gid_t)net_data->gr_last->gr_gid == gid)
-               return (net_data->gr_last);
-       net_data->gr_last = (*gr->bygid)(gr, gid);
-       if (!net_data->gr_stayopen)
-               endgrent();
-       return (net_data->gr_last);
-}
-
-int
-setgroupent_p(int stayopen, struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if (!net_data || !(gr = net_data->gr))
-               return (0);
-       (*gr->rewind)(gr);
-       net_data->gr_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-       return (1);
-}
-
-#ifdef SETGRENT_VOID
-void
-setgrent_p(struct net_data *net_data) {
-       (void)setgroupent_p(0, net_data);
-}
-#else
-int
-setgrent_p(struct net_data *net_data) {
-       return (setgroupent_p(0, net_data));
-}
-#endif /* SETGRENT_VOID */
-
-void
-endgrent_p(struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if ((net_data != NULL) && ((gr = net_data->gr) != NULL))
-               (*gr->minimize)(gr);
-}
-
-int
-getgrouplist_p(const char *name, gid_t basegid, gid_t *groups, int *ngroups,
-              struct net_data *net_data) {
-       struct irs_gr *gr;
-
-       if (!net_data || !(gr = net_data->gr)) {
-               *ngroups = 0;
-               return (-1);
-       }
-       return ((*gr->list)(gr, name, basegid, groups, ngroups));
-}
-
-/* Private */
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->gr) {
-               net_data->gr = (*net_data->irs->gr_map)(net_data->irs);
-
-               if (!net_data->gr || !net_data->res) {
- error: 
-                       errno = EIO;
-                       return (NULL);
-               }
-               (*net_data->gr->res_set)(net_data->gr, net_data->res,
-                                        NULL);
-       }
-       
-       return (net_data);
-}
-
-#endif /* WANT_IRS_GR */
-/*! \file */
diff --git a/lib/bind/irs/getgrent_r.c b/lib/bind/irs/getgrent_r.c
deleted file mode 100644 (file)
index eb9c794..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getgrent_r.c,v 1.7 2005/04/27 04:56:24 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS) || !defined(WANT_IRS_PW)
-       static int getgrent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#if (defined(POSIX_GETGRNAM_R) || defined(POSIX_GETGRGID_R)) && \
-    defined(_POSIX_PTHREAD_SEMANTICS)
-       /* turn off solaris remapping in <grp.h> */
-#define _UNIX95
-#undef _POSIX_PTHREAD_SEMANTICS
-#include <grp.h>
-#define _POSIX_PTHREAD_SEMANTICS 1
-#else
-#include <grp.h>
-#endif
-#include <sys/param.h>
-#include <port_after.h>
-
-#ifdef GROUP_R_RETURN
-
-static int
-copy_group(struct group *, struct group *, char *buf, int buflen);
-
-/* POSIX 1003.1c */
-#ifdef POSIX_GETGRNAM_R
-int
-__posix_getgrnam_r(const char *name,  struct group *gptr,
-               char *buf, int buflen, struct group **result) {
-#else
-int
-getgrnam_r(const char *name,  struct group *gptr,
-               char *buf, size_t buflen, struct group **result) {
-#endif
-       struct group *ge = getgrnam(name);
-       int res;
-
-       if (ge == NULL) {
-               *result = NULL;
-               return (0);
-       }
-
-       res = copy_group(ge, gptr, buf, buflen);
-       *result = res ? NULL : gptr;
-       return (res);
-}
-
-#ifdef POSIX_GETGRNAM_R
-struct group *
-getgrnam_r(const char *name,  struct group *gptr,
-               char *buf, int buflen) {
-       struct group *ge = getgrnam(name);
-       int res;
-
-       if (ge == NULL)
-               return (NULL);
-       res = copy_group(ge, gptr, buf, buflen);
-       return (res ? NULL : gptr);
-}
-#endif /* POSIX_GETGRNAM_R */
-
-/* POSIX 1003.1c */
-#ifdef POSIX_GETGRGID_R
-int
-__posix_getgrgid_r(gid_t gid, struct group *gptr,
-               char *buf, int buflen, struct group **result) {
-#else /* POSIX_GETGRGID_R */
-int
-getgrgid_r(gid_t gid, struct group *gptr,
-               char *buf, size_t buflen, struct group **result) {
-#endif /* POSIX_GETGRGID_R */
-       struct group *ge = getgrgid(gid);
-       int res;
-
-       if (ge == NULL) {
-               *result = NULL;
-               return (0);
-       }
-
-       res = copy_group(ge, gptr, buf, buflen);
-       *result = res ? NULL : gptr;
-       return (res);
-}
-
-#ifdef POSIX_GETGRGID_R
-struct group *
-getgrgid_r(gid_t gid, struct group *gptr,
-               char *buf, int buflen) {
-       struct group *ge = getgrgid(gid);
-       int res;
-
-       if (ge == NULL)
-               return (NULL);
-
-       res = copy_group(ge, gptr, buf, buflen);
-       return (res ? NULL : gptr);
-}
-#endif
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-GROUP_R_RETURN
-getgrent_r(struct group *gptr, GROUP_R_ARGS) {
-       struct group *ge = getgrent();
-       int res;
-
-       if (ge == NULL) {
-               return (GROUP_R_BAD);
-       }
-
-       res = copy_group(ge, gptr, buf, buflen);
-       return (res ? GROUP_R_BAD : GROUP_R_OK);
-}
-
-GROUP_R_SET_RETURN
-setgrent_r(GROUP_R_ENT_ARGS) {
-
-       setgrent();
-#ifdef GROUP_R_SET_RESULT
-       return (GROUP_R_SET_RESULT);
-#endif
-}
-
-GROUP_R_END_RETURN
-endgrent_r(GROUP_R_ENT_ARGS) {
-
-       endgrent();
-       GROUP_R_END_RESULT(GROUP_R_OK);
-}
-
-
-#if 0
-       /* XXX irs does not have a fgetgrent() */
-GROUP_R_RETURN
-fgetgrent_r(FILE *f, struct group *gptr, GROUP_R_ARGS) {
-       struct group *ge = fgetgrent(f);
-       int res;
-
-       if (ge == NULL)
-               return (GROUP_R_BAD);
-
-       res = copy_group(ge, gptr, buf, buflen);
-       return (res ? GROUP_R_BAD : GROUP_R_OK);
-}
-#endif
-
-/* Private */
-
-static int
-copy_group(struct group *ge, struct group *gptr, char *buf, int buflen) {
-       char *cp;
-       int i, n;
-       int numptr, len;
-
-       /* Find out the amount of space required to store the answer. */
-       numptr = 1; /*%< NULL ptr */
-       len = (char *)ALIGN(buf) - buf;
-       for (i = 0; ge->gr_mem[i]; i++, numptr++) {
-               len += strlen(ge->gr_mem[i]) + 1;
-       }
-       len += strlen(ge->gr_name) + 1;
-       len += strlen(ge->gr_passwd) + 1;
-       len += numptr * sizeof(char*);
-       
-       if (len > buflen) {
-               errno = ERANGE;
-               return (ERANGE);
-       }
-
-       /* copy group id */
-       gptr->gr_gid = ge->gr_gid;
-
-       cp = (char *)ALIGN(buf) + numptr * sizeof(char *);
-
-       /* copy official name */
-       n = strlen(ge->gr_name) + 1;
-       strcpy(cp, ge->gr_name);
-       gptr->gr_name = cp;
-       cp += n;
-
-       /* copy member list */
-       gptr->gr_mem = (char **)ALIGN(buf);
-       for (i = 0 ; ge->gr_mem[i]; i++) {
-               n = strlen(ge->gr_mem[i]) + 1;
-               strcpy(cp, ge->gr_mem[i]);
-               gptr->gr_mem[i] = cp;
-               cp += n;
-       }
-       gptr->gr_mem[i] = NULL;
-
-       /* copy password */
-       n = strlen(ge->gr_passwd) + 1;
-       strcpy(cp, ge->gr_passwd);
-       gptr->gr_passwd = cp;
-       cp += n;
-
-       return (0);
-}
-#else /* GROUP_R_RETURN */
-       static int getgrent_r_unknown_system = 0;
-#endif /* GROUP_R_RETURN */
-#endif /* !def(_REENTRANT) || !def(DO_PTHREADS) || !def(WANT_IRS_PW) */
-/*! \file */
diff --git a/lib/bind/irs/gethostent.c b/lib/bind/irs/gethostent.c
deleted file mode 100644 (file)
index d8c9e24..0000000
+++ /dev/null
@@ -1,1070 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gethostent.c,v 1.8 2006/01/10 05:06:00 marka Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(__BIND_NOSTATIC)
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <netinet/in.h>
-#include <net/if.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "irs_data.h"
-
-/* Definitions */
-
-struct pvt {
-       char *          aliases[1];
-       char *          addrs[2];
-       char            addr[NS_IN6ADDRSZ];
-       char            name[NS_MAXDNAME + 1];
-       struct hostent  host;
-};
-
-/* Forward */
-
-static struct net_data *init(void);
-static void            freepvt(struct net_data *);
-static struct hostent  *fakeaddr(const char *, int, struct net_data *);
-
-
-/* Public */
-
-struct hostent *
-gethostbyname(const char *name) {
-       struct net_data *net_data = init();
-
-       return (gethostbyname_p(name, net_data));
-}
-
-struct hostent *
-gethostbyname2(const char *name, int af) {
-       struct net_data *net_data = init();
-
-       return (gethostbyname2_p(name, af, net_data));
-}
-
-struct hostent *
-gethostbyaddr(const char *addr, int len, int af) {
-       struct net_data *net_data = init();
-
-       return (gethostbyaddr_p(addr, len, af, net_data));
-}
-
-struct hostent *
-gethostent() {
-       struct net_data *net_data = init();
-
-       return (gethostent_p(net_data));
-}
-
-void
-sethostent(int stayopen) {
-       struct net_data *net_data = init();
-       sethostent_p(stayopen, net_data);
-}
-
-
-void
-endhostent() {
-       struct net_data *net_data = init();
-       endhostent_p(net_data);
-}
-
-/* Shared private. */
-
-struct hostent *
-gethostbyname_p(const char *name, struct net_data *net_data) {
-       struct hostent *hp;
-
-       if (!net_data)
-               return (NULL);
-
-       if (net_data->res->options & RES_USE_INET6) {
-               hp = gethostbyname2_p(name, AF_INET6, net_data);
-               if (hp)
-                       return (hp);
-       }
-       return (gethostbyname2_p(name, AF_INET, net_data));
-}
-
-struct hostent *
-gethostbyname2_p(const char *name, int af, struct net_data *net_data) {
-       struct irs_ho *ho;
-       char tmp[NS_MAXDNAME];
-       struct hostent *hp;
-       const char *cp;
-       char **hap;
-
-       if (!net_data || !(ho = net_data->ho))
-               return (NULL);
-       if (net_data->ho_stayopen && net_data->ho_last &&
-           net_data->ho_last->h_addrtype == af) {
-               if (ns_samename(name, net_data->ho_last->h_name) == 1)
-                       return (net_data->ho_last);
-               for (hap = net_data->ho_last->h_aliases; hap && *hap; hap++)
-                       if (ns_samename(name, *hap) == 1)
-                               return (net_data->ho_last);
-       }
-       if (!strchr(name, '.') && (cp = res_hostalias(net_data->res, name,
-                                                     tmp, sizeof tmp)))
-               name = cp;
-       if ((hp = fakeaddr(name, af, net_data)) != NULL)
-               return (hp);
-       net_data->ho_last = (*ho->byname2)(ho, name, af);
-       if (!net_data->ho_stayopen)
-               endhostent();
-       return (net_data->ho_last);
-}
-
-struct hostent *
-gethostbyaddr_p(const char *addr, int len, int af, struct net_data *net_data) {
-       struct irs_ho *ho;
-       char **hap;
-
-       if (!net_data || !(ho = net_data->ho))
-               return (NULL);
-       if (net_data->ho_stayopen && net_data->ho_last &&
-           net_data->ho_last->h_length == len)
-               for (hap = net_data->ho_last->h_addr_list;
-                    hap && *hap;
-                    hap++)
-                       if (!memcmp(addr, *hap, len))
-                               return (net_data->ho_last);
-       net_data->ho_last = (*ho->byaddr)(ho, addr, len, af);
-       if (!net_data->ho_stayopen)
-               endhostent();
-       return (net_data->ho_last);
-}
-
-
-struct hostent *
-gethostent_p(struct net_data *net_data) {
-       struct irs_ho *ho;
-       struct hostent *hp;
-
-       if (!net_data || !(ho = net_data->ho))
-               return (NULL);
-       while ((hp = (*ho->next)(ho)) != NULL &&
-              hp->h_addrtype == AF_INET6 &&
-              (net_data->res->options & RES_USE_INET6) == 0U)
-               continue;
-       net_data->ho_last = hp;
-       return (net_data->ho_last);
-}
-
-
-void
-sethostent_p(int stayopen, struct net_data *net_data) {
-       struct irs_ho *ho;
-
-       if (!net_data || !(ho = net_data->ho))
-               return;
-       freepvt(net_data);
-       (*ho->rewind)(ho);
-       net_data->ho_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-}
-
-void
-endhostent_p(struct net_data *net_data) {
-       struct irs_ho *ho;
-
-       if ((net_data != NULL) && ((ho = net_data->ho) != NULL))
-               (*ho->minimize)(ho);
-}
-
-#ifndef IN6_IS_ADDR_V4COMPAT
-static const unsigned char in6addr_compat[12] = {
-       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-#define IN6_IS_ADDR_V4COMPAT(x) (!memcmp((x)->s6_addr, in6addr_compat, 12) && \
-                                ((x)->s6_addr[12] != 0 || \
-                                 (x)->s6_addr[13] != 0 || \
-                                 (x)->s6_addr[14] != 0 || \
-                                  ((x)->s6_addr[15] != 0 && \
-                                   (x)->s6_addr[15] != 1)))
-#endif
-#ifndef IN6_IS_ADDR_V4MAPPED
-#define IN6_IS_ADDR_V4MAPPED(x) (!memcmp((x)->s6_addr, in6addr_mapped, 12))
-#endif
-
-static const unsigned char in6addr_mapped[12] = {
-       0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0xff, 0xff };
-
-static int scan_interfaces(int *, int *);
-static struct hostent *copyandmerge(struct hostent *, struct hostent *, int, int *);
-
-/*%
- *     Public functions
- */
-
-/*%
- *     AI_V4MAPPED + AF_INET6
- *     If no IPv6 address then a query for IPv4 and map returned values.
- *
- *     AI_ALL + AI_V4MAPPED + AF_INET6
- *     Return IPv6 and IPv4 mapped.
- *
- *     AI_ADDRCONFIG
- *     Only return IPv6 / IPv4 address if there is an interface of that
- *     type active.
- */
-
-struct hostent *
-getipnodebyname(const char *name, int af, int flags, int *error_num) {
-       int have_v4 = 1, have_v6 = 1;
-       struct in_addr in4;
-       struct in6_addr in6;
-       struct hostent he, *he1 = NULL, *he2 = NULL, *he3;
-       int v4 = 0, v6 = 0;
-       struct net_data *net_data = init();
-       u_long options;
-       int tmp_err;
-
-       if (net_data == NULL) {
-               *error_num = NO_RECOVERY;
-               return (NULL);
-       }
-
-       /* If we care about active interfaces then check. */
-       if ((flags & AI_ADDRCONFIG) != 0)
-               if (scan_interfaces(&have_v4, &have_v6) == -1) {
-                       *error_num = NO_RECOVERY;
-                       return (NULL);
-               }
-
-       /* Check for literal address. */
-       if ((v4 = inet_pton(AF_INET, name, &in4)) != 1)
-               v6 = inet_pton(AF_INET6, name, &in6);
-
-       /* Impossible combination? */
-        
-       if ((af == AF_INET6 && (flags & AI_V4MAPPED) == 0 && v4 == 1) ||
-           (af == AF_INET && v6 == 1) ||
-           (have_v4 == 0 && v4 == 1) ||
-           (have_v6 == 0 && v6 == 1) ||
-           (have_v4 == 0 && af == AF_INET) ||
-           (have_v6 == 0 && af == AF_INET6)) {
-               *error_num = HOST_NOT_FOUND;
-               return (NULL);
-       }
-
-       /* Literal address? */
-       if (v4 == 1 || v6 == 1) {
-               char *addr_list[2];
-               char *aliases[1];
-
-               DE_CONST(name, he.h_name);
-               he.h_addr_list = addr_list;
-               he.h_addr_list[0] = (v4 == 1) ? (char *)&in4 : (char *)&in6;
-               he.h_addr_list[1] = NULL;
-               he.h_aliases = aliases;
-               he.h_aliases[0] = NULL;
-               he.h_length = (v4 == 1) ? INADDRSZ : IN6ADDRSZ;
-               he.h_addrtype = (v4 == 1) ? AF_INET : AF_INET6;
-               return (copyandmerge(&he, NULL, af, error_num));
-       }
-
-       options = net_data->res->options;
-       net_data->res->options &= ~RES_USE_INET6;
-
-       tmp_err = NO_RECOVERY;
-       if (have_v6 && af == AF_INET6) {
-               he2 = gethostbyname2_p(name, AF_INET6, net_data);
-               if (he2 != NULL) {
-                       he1 = copyandmerge(he2, NULL, af, error_num);
-                       if (he1 == NULL)
-                               return (NULL);
-                       he2 = NULL;
-               } else {
-                       tmp_err = net_data->res->res_h_errno;
-               }
-       }
-
-       if (have_v4 &&
-           ((af == AF_INET) ||
-            (af == AF_INET6 && (flags & AI_V4MAPPED) != 0 &&
-             (he1 == NULL || (flags & AI_ALL) != 0)))) {
-               he2 = gethostbyname2_p(name, AF_INET, net_data);
-               if (he1 == NULL && he2 == NULL) {
-                       *error_num = net_data->res->res_h_errno;
-                       return (NULL);
-               } 
-       } else
-               *error_num = tmp_err;
-
-       net_data->res->options = options;
-
-       he3 = copyandmerge(he1, he2, af, error_num);
-
-       if (he1 != NULL)
-               freehostent(he1);
-       return (he3);
-}
-
-struct hostent *
-getipnodebyaddr(const void *src, size_t len, int af, int *error_num) {
-       struct hostent *he1, *he2;
-       struct net_data *net_data = init();
-
-       /* Sanity Checks. */
-       if (src == NULL) {
-               *error_num = NO_RECOVERY;
-               return (NULL);
-       }
-               
-       switch (af) {
-       case AF_INET:
-               if (len != (size_t)INADDRSZ) {
-                       *error_num = NO_RECOVERY;
-                       return (NULL);
-               }
-               break;
-       case AF_INET6:
-               if (len != (size_t)IN6ADDRSZ) {
-                       *error_num = NO_RECOVERY;
-                       return (NULL);
-               }
-               break;
-       default:
-               *error_num = NO_RECOVERY;
-               return (NULL);
-       }
-
-       /*
-        * Lookup IPv4 and IPv4 mapped/compatible addresses
-        */
-       if ((af == AF_INET6 &&
-            IN6_IS_ADDR_V4COMPAT((const struct in6_addr *)src)) ||
-           (af == AF_INET6 &&
-            IN6_IS_ADDR_V4MAPPED((const struct in6_addr *)src)) ||
-           (af == AF_INET)) {
-               const char *cp = src;
-
-               if (af == AF_INET6)
-                       cp += 12;
-               he1 = gethostbyaddr_p(cp, 4, AF_INET, net_data);
-               if (he1 == NULL) {
-                       *error_num = net_data->res->res_h_errno;
-                       return (NULL);
-               }
-               he2 = copyandmerge(he1, NULL, af, error_num);
-               if (he2 == NULL)
-                       return (NULL);
-               /*
-                * Restore original address if mapped/compatible.
-                */
-               if (af == AF_INET6)
-                       memcpy(he1->h_addr, src, len);
-               return (he2);
-       }
-
-       /*
-        * Lookup IPv6 address.
-        */
-       if (memcmp((const struct in6_addr *)src, &in6addr_any, 16) == 0) {
-               *error_num = HOST_NOT_FOUND;
-               return (NULL);
-       }
-
-       he1 = gethostbyaddr_p(src, 16, AF_INET6, net_data);
-       if (he1 == NULL) {
-               *error_num = net_data->res->res_h_errno;
-               return (NULL);
-       }
-       return (copyandmerge(he1, NULL, af, error_num));
-}
-
-void
-freehostent(struct hostent *he) {
-       char **cpp;
-       int names = 1;
-       int addresses = 1;
-
-       memput(he->h_name, strlen(he->h_name) + 1);
-
-       cpp = he->h_addr_list;
-       while (*cpp != NULL) {
-               memput(*cpp, (he->h_addrtype == AF_INET) ?
-                            INADDRSZ : IN6ADDRSZ);
-               *cpp = NULL;
-               cpp++;
-               addresses++;
-       }
-
-       cpp = he->h_aliases;
-       while (*cpp != NULL) {
-               memput(*cpp, strlen(*cpp) + 1);
-               cpp++;
-               names++;
-       }
-
-       memput(he->h_aliases, sizeof(char *) * (names));
-       memput(he->h_addr_list, sizeof(char *) * (addresses));
-       memput(he, sizeof *he);
-}
-
-/*%
- * Private
- */
-
-/*%
- * Scan the interface table and set have_v4 and have_v6 depending
- * upon whether there are IPv4 and IPv6 interface addresses.
- *
- * Returns:
- *     0 on success
- *     -1 on failure.
- */
-
-#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR) && \
-    !defined(IRIX_EMUL_IOCTL_SIOCGIFCONF) 
-
-#ifdef __hpux
-#define lifc_len iflc_len
-#define lifc_buf iflc_buf
-#define lifc_req iflc_req
-#define LIFCONF if_laddrconf
-#else
-#define SETFAMILYFLAGS
-#define LIFCONF lifconf
-#endif
-#ifdef __hpux
-#define lifr_addr iflr_addr
-#define lifr_name iflr_name
-#define lifr_dstaddr iflr_dstaddr
-#define lifr_flags iflr_flags
-#define ss_family sa_family
-#define LIFREQ if_laddrreq
-#else
-#define LIFREQ lifreq
-#endif
-
-static void
-scan_interfaces6(int *have_v4, int *have_v6) {
-       struct LIFCONF lifc;
-       struct LIFREQ lifreq;
-       struct in_addr in4;
-       struct in6_addr in6;
-       char *buf = NULL, *cp, *cplim;
-       static unsigned int bufsiz = 4095;
-       int s, cpsize, n;
-
-       /* Get interface list from system. */
-       if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) == -1)
-               goto cleanup;
-
-       /*
-        * Grow buffer until large enough to contain all interface
-        * descriptions.
-        */
-       for (;;) {
-               buf = memget(bufsiz);
-               if (buf == NULL)
-                       goto cleanup;
-#ifdef SETFAMILYFLAGS
-               lifc.lifc_family = AF_UNSPEC;   /*%< request all families */
-               lifc.lifc_flags = 0;
-#endif
-               lifc.lifc_len = bufsiz;
-               lifc.lifc_buf = buf;
-               if ((n = ioctl(s, SIOCGLIFCONF, (char *)&lifc)) != -1) {
-                       /*
-                        * Some OS's just return what will fit rather
-                        * than set EINVAL if the buffer is too small
-                        * to fit all the interfaces in.  If 
-                        * lifc.lifc_len is too near to the end of the
-                        * buffer we will grow it just in case and
-                        * retry.
-                        */
-                       if (lifc.lifc_len + 2 * sizeof(lifreq) < bufsiz)
-                               break;
-               }
-               if ((n == -1) && errno != EINVAL)
-                       goto cleanup;
-
-               if (bufsiz > 1000000)
-                       goto cleanup;
-
-               memput(buf, bufsiz);
-               bufsiz += 4096;
-       }
-
-       /* Parse system's interface list. */
-       cplim = buf + lifc.lifc_len;    /*%< skip over if's with big ifr_addr's */
-       for (cp = buf;
-            (*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
-            cp += cpsize) {
-               memcpy(&lifreq, cp, sizeof lifreq);
-#ifdef HAVE_SA_LEN
-#ifdef FIX_ZERO_SA_LEN
-               if (lifreq.lifr_addr.sa_len == 0)
-                       lifreq.lifr_addr.sa_len = 16;
-#endif
-#ifdef HAVE_MINIMUM_IFREQ
-               cpsize = sizeof lifreq;
-               if (lifreq.lifr_addr.sa_len > sizeof (struct sockaddr))
-                       cpsize += (int)lifreq.lifr_addr.sa_len -
-                               (int)(sizeof (struct sockaddr));
-#else
-               cpsize = sizeof lifreq.lifr_name + lifreq.lifr_addr.sa_len;
-#endif /* HAVE_MINIMUM_IFREQ */
-#elif defined SIOCGIFCONF_ADDR
-               cpsize = sizeof lifreq;
-#else
-               cpsize = sizeof lifreq.lifr_name;
-               /* XXX maybe this should be a hard error? */
-               if (ioctl(s, SIOCGLIFADDR, (char *)&lifreq) < 0)
-                       continue;
-#endif
-               switch (lifreq.lifr_addr.ss_family) {
-               case AF_INET:
-                       if (*have_v4 == 0) {
-                               memcpy(&in4,
-                                      &((struct sockaddr_in *)
-                                      &lifreq.lifr_addr)->sin_addr,
-                                      sizeof in4);
-                               if (in4.s_addr == INADDR_ANY)
-                                       break;
-                               n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq);
-                               if (n < 0)
-                                       break;
-                               if ((lifreq.lifr_flags & IFF_UP) == 0)
-                                       break;
-                               *have_v4 = 1;
-                       } 
-                       break;
-               case AF_INET6:
-                       if (*have_v6 == 0) {
-                               memcpy(&in6,
-                                      &((struct sockaddr_in6 *)
-                                      &lifreq.lifr_addr)->sin6_addr, sizeof in6);
-                               if (memcmp(&in6, &in6addr_any, sizeof in6) == 0)
-                                       break;
-                               n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq);
-                               if (n < 0)
-                                       break;
-                               if ((lifreq.lifr_flags & IFF_UP) == 0)
-                                       break;
-                               *have_v6 = 1;
-                       }
-                       break;
-               }
-       }
-       if (buf != NULL)
-               memput(buf, bufsiz);
-       close(s);
-       /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */
-       return;
- cleanup:
-       if (buf != NULL)
-               memput(buf, bufsiz);
-       if (s != -1)
-               close(s);
-       /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */
-       return;
-}
-#endif
-
-#if ( defined(__linux__) || defined(__linux) || defined(LINUX) )
-#ifndef IF_NAMESIZE
-# ifdef IFNAMSIZ
-#  define IF_NAMESIZE  IFNAMSIZ
-# else
-#  define IF_NAMESIZE 16
-# endif
-#endif
-static void
-scan_linux6(int *have_v6) {
-       FILE *proc = NULL;
-       char address[33];
-       char name[IF_NAMESIZE+1];
-       int ifindex, prefix, flag3, flag4;
-       
-       proc = fopen("/proc/net/if_inet6", "r");
-       if (proc == NULL)
-               return;
-
-       if (fscanf(proc, "%32[a-f0-9] %x %x %x %x %16s\n",
-                  address, &ifindex, &prefix, &flag3, &flag4, name) == 6)
-               *have_v6 = 1;
-       fclose(proc);
-       return;
-}
-#endif
-
-static int
-scan_interfaces(int *have_v4, int *have_v6) {
-       struct ifconf ifc;
-       union {
-               char _pad[256];         /*%< leave space for IPv6 addresses */
-               struct ifreq ifreq;
-       } u;
-       struct in_addr in4;
-       struct in6_addr in6;
-       char *buf = NULL, *cp, *cplim;
-       static unsigned int bufsiz = 4095;
-       int s, n;
-       size_t cpsize;
-
-       /* Set to zero.  Used as loop terminators below. */
-       *have_v4 = *have_v6 = 0;
-
-#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR) && \
-    !defined(IRIX_EMUL_IOCTL_SIOCGIFCONF) 
-       /*
-        * Try to scan the interfaces using IPv6 ioctls().
-        */
-       scan_interfaces6(have_v4, have_v6);
-       if (*have_v4 != 0 && *have_v6 != 0)
-               return (0);
-#endif
-#ifdef __linux
-       scan_linux6(have_v6);
-#endif
-
-       /* Get interface list from system. */
-       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
-               goto err_ret;
-
-       /*
-        * Grow buffer until large enough to contain all interface
-        * descriptions.
-        */
-       for (;;) {
-               buf = memget(bufsiz);
-               if (buf == NULL)
-                       goto err_ret;
-               ifc.ifc_len = bufsiz;
-               ifc.ifc_buf = buf;
-#ifdef IRIX_EMUL_IOCTL_SIOCGIFCONF
-               /*
-                * This is a fix for IRIX OS in which the call to ioctl with
-                * the flag SIOCGIFCONF may not return an entry for all the
-                * interfaces like most flavors of Unix.
-                */
-               if (emul_ioctl(&ifc) >= 0)
-                       break;
-#else
-               if ((n = ioctl(s, SIOCGIFCONF, (char *)&ifc)) != -1) {
-                       /*
-                        * Some OS's just return what will fit rather
-                        * than set EINVAL if the buffer is too small
-                        * to fit all the interfaces in.  If 
-                        * ifc.ifc_len is too near to the end of the
-                        * buffer we will grow it just in case and
-                        * retry.
-                        */
-                       if (ifc.ifc_len + 2 * sizeof(u.ifreq) < bufsiz)
-                               break;
-               }
-#endif
-               if ((n == -1) && errno != EINVAL)
-                       goto err_ret;
-
-               if (bufsiz > 1000000)
-                       goto err_ret;
-
-               memput(buf, bufsiz);
-               bufsiz += 4096;
-       }
-
-       /* Parse system's interface list. */
-       cplim = buf + ifc.ifc_len;    /*%< skip over if's with big ifr_addr's */
-       for (cp = buf;
-            (*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
-            cp += cpsize) {
-               memcpy(&u.ifreq, cp, sizeof u.ifreq);
-#ifdef HAVE_SA_LEN
-#ifdef FIX_ZERO_SA_LEN
-               if (u.ifreq.ifr_addr.sa_len == 0)
-                       u.ifreq.ifr_addr.sa_len = 16;
-#endif
-#ifdef HAVE_MINIMUM_IFREQ
-               cpsize = sizeof u.ifreq;
-               if (u.ifreq.ifr_addr.sa_len > sizeof (struct sockaddr))
-                       cpsize += (int)u.ifreq.ifr_addr.sa_len -
-                               (int)(sizeof (struct sockaddr));
-#else
-               cpsize = sizeof u.ifreq.ifr_name + u.ifreq.ifr_addr.sa_len;
-#endif /* HAVE_MINIMUM_IFREQ */
-               if (cpsize > sizeof u.ifreq && cpsize <= sizeof u)
-                       memcpy(&u.ifreq, cp, cpsize);
-#elif defined SIOCGIFCONF_ADDR
-               cpsize = sizeof u.ifreq;
-#else
-               cpsize = sizeof u.ifreq.ifr_name;
-               /* XXX maybe this should be a hard error? */
-               if (ioctl(s, SIOCGIFADDR, (char *)&u.ifreq) < 0)
-                       continue;
-#endif
-               switch (u.ifreq.ifr_addr.sa_family) {
-               case AF_INET:
-                       if (*have_v4 == 0) {
-                               memcpy(&in4,
-                                      &((struct sockaddr_in *)
-                                      &u.ifreq.ifr_addr)->sin_addr,
-                                      sizeof in4);
-                               if (in4.s_addr == INADDR_ANY)
-                                       break;
-                               n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq);
-                               if (n < 0)
-                                       break;
-                               if ((u.ifreq.ifr_flags & IFF_UP) == 0)
-                                       break;
-                               *have_v4 = 1;
-                       } 
-                       break;
-               case AF_INET6:
-                       if (*have_v6 == 0) {
-                               memcpy(&in6,
-                                      &((struct sockaddr_in6 *)
-                                      &u.ifreq.ifr_addr)->sin6_addr,
-                                      sizeof in6);
-                               if (memcmp(&in6, &in6addr_any, sizeof in6) == 0)
-                                       break;
-                               n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq);
-                               if (n < 0)
-                                       break;
-                               if ((u.ifreq.ifr_flags & IFF_UP) == 0)
-                                       break;
-                               *have_v6 = 1;
-                       }
-                       break;
-               }
-       }
-       if (buf != NULL)
-               memput(buf, bufsiz);
-       close(s);
-       /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */
-       return (0);
- err_ret:
-       if (buf != NULL)
-               memput(buf, bufsiz);
-       if (s != -1)
-               close(s);
-       /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */
-       return (-1);
-}
-
-static struct hostent *
-copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num) {
-       struct hostent *he = NULL;
-       int addresses = 1;      /*%< NULL terminator */
-       int names = 1;          /*%< NULL terminator */
-       int len = 0;
-       char **cpp, **npp;
-
-       /*
-        * Work out array sizes;
-        */
-       if (he1 != NULL) {
-               cpp = he1->h_addr_list;
-               while (*cpp != NULL) {
-                       addresses++;
-                       cpp++;
-               }
-               cpp = he1->h_aliases;
-               while (*cpp != NULL) {
-                       names++;
-                       cpp++;
-               }
-       }
-
-       if (he2 != NULL) {
-               cpp = he2->h_addr_list;
-               while (*cpp != NULL) {
-                       addresses++;
-                       cpp++;
-               }
-               if (he1 == NULL) {
-                       cpp = he2->h_aliases;
-                       while (*cpp != NULL) {
-                               names++;
-                               cpp++;
-                       }
-               }
-       }
-
-       if (addresses == 1) {
-               *error_num = NO_ADDRESS;
-               return (NULL);
-       }
-
-       he = memget(sizeof *he);
-       if (he == NULL)
-               goto no_recovery;
-
-       he->h_addr_list = memget(sizeof(char *) * (addresses));
-       if (he->h_addr_list == NULL)
-               goto cleanup0;
-       memset(he->h_addr_list, 0, sizeof(char *) * (addresses));
-
-       /* copy addresses */
-       npp = he->h_addr_list;
-       if (he1 != NULL) {
-               cpp = he1->h_addr_list;
-               while (*cpp != NULL) {
-                       *npp = memget((af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
-                       if (*npp == NULL)
-                               goto cleanup1;
-                       /* convert to mapped if required */
-                       if (af == AF_INET6 && he1->h_addrtype == AF_INET) {
-                               memcpy(*npp, in6addr_mapped,
-                                      sizeof in6addr_mapped);
-                               memcpy(*npp + sizeof in6addr_mapped, *cpp,
-                                      INADDRSZ);
-                       } else {
-                               memcpy(*npp, *cpp,
-                                      (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
-                       }
-                       cpp++;
-                       npp++;
-               }
-       }
-
-       if (he2 != NULL) {
-               cpp = he2->h_addr_list;
-               while (*cpp != NULL) {
-                       *npp = memget((af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
-                       if (*npp == NULL)
-                               goto cleanup1;
-                       /* convert to mapped if required */
-                       if (af == AF_INET6 && he2->h_addrtype == AF_INET) {
-                               memcpy(*npp, in6addr_mapped,
-                                      sizeof in6addr_mapped);
-                               memcpy(*npp + sizeof in6addr_mapped, *cpp,
-                                      INADDRSZ);
-                       } else {
-                               memcpy(*npp, *cpp,
-                                      (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
-                       }
-                       cpp++;
-                       npp++;
-               }
-       }
-
-       he->h_aliases = memget(sizeof(char *) * (names));
-       if (he->h_aliases == NULL)
-               goto cleanup1;
-       memset(he->h_aliases, 0, sizeof(char *) * (names));
-
-       /* copy aliases */
-       npp = he->h_aliases;
-       cpp = (he1 != NULL) ? he1->h_aliases : he2->h_aliases;
-       while (*cpp != NULL) {
-               len = strlen (*cpp) + 1;
-               *npp = memget(len);
-               if (*npp == NULL)
-                       goto cleanup2;
-               strcpy(*npp, *cpp);
-               npp++;
-               cpp++;
-       }
-
-       /* copy hostname */
-       he->h_name = memget(strlen((he1 != NULL) ?
-                           he1->h_name : he2->h_name) + 1);
-       if (he->h_name == NULL)
-               goto cleanup2;
-       strcpy(he->h_name, (he1 != NULL) ? he1->h_name : he2->h_name);
-
-       /* set address type and length */
-       he->h_addrtype = af;
-       he->h_length = (af == AF_INET) ? INADDRSZ : IN6ADDRSZ;
-       return(he);
-
- cleanup2:
-       cpp = he->h_aliases;
-       while (*cpp != NULL) {
-               memput(*cpp, strlen(*cpp) + 1);
-               cpp++;
-       }
-       memput(he->h_aliases, sizeof(char *) * (names));
-
- cleanup1:
-       cpp = he->h_addr_list;
-       while (*cpp != NULL) {
-               memput(*cpp, (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
-               *cpp = NULL;
-               cpp++;
-       }
-       memput(he->h_addr_list, sizeof(char *) * (addresses));
-
- cleanup0:
-       memput(he, sizeof *he);
-
- no_recovery:
-       *error_num = NO_RECOVERY;
-       return (NULL);
-}
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->ho) {
-               net_data->ho = (*net_data->irs->ho_map)(net_data->irs);
-               if (!net_data->ho || !net_data->res) {
-  error:
-                       errno = EIO;
-                       if (net_data && net_data->res)
-                               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-                       return (NULL);
-               }
-       
-               (*net_data->ho->res_set)(net_data->ho, net_data->res, NULL);
-       }
-       
-       return (net_data);
-}
-
-static void
-freepvt(struct net_data *net_data) {
-       if (net_data->ho_data) {
-               free(net_data->ho_data);
-               net_data->ho_data = NULL;
-       }
-}
-
-static struct hostent *
-fakeaddr(const char *name, int af, struct net_data *net_data) {
-       struct pvt *pvt;
-
-       freepvt(net_data);
-       net_data->ho_data = malloc(sizeof (struct pvt));
-       if (!net_data->ho_data) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       pvt = net_data->ho_data;
-#ifndef __bsdi__
-       /*
-        * Unlike its forebear(inet_aton), our friendly inet_pton() is strict
-        * in its interpretation of its input, and it will only return "1" if
-        * the input string is a formally valid(and thus unambiguous with
-        * respect to host names) internet address specification for this AF.
-        *
-        * This means "telnet 0xdeadbeef" and "telnet 127.1" are dead now.
-        */
-       if (inet_pton(af, name, pvt->addr) != 1) {
-#else
-       /* BSDI XXX
-        * We put this back to inet_aton -- we really want the old behavior
-        * Long live 127.1...
-        */
-       if ((af != AF_INET ||
-           inet_aton(name, (struct in_addr *)pvt->addr) != 1) &&
-           inet_pton(af, name, pvt->addr) != 1) {
-#endif
-               RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       strncpy(pvt->name, name, NS_MAXDNAME);
-       pvt->name[NS_MAXDNAME] = '\0';
-       if (af == AF_INET && (net_data->res->options & RES_USE_INET6) != 0U) {
-               map_v4v6_address(pvt->addr, pvt->addr);
-               af = AF_INET6;
-       }
-       pvt->host.h_addrtype = af;
-       switch(af) {
-       case AF_INET:
-               pvt->host.h_length = NS_INADDRSZ;
-               break;
-       case AF_INET6:
-               pvt->host.h_length = NS_IN6ADDRSZ;
-               break;
-       default:
-               errno = EAFNOSUPPORT;
-               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       pvt->host.h_name = pvt->name;
-       pvt->host.h_aliases = pvt->aliases;
-       pvt->aliases[0] = NULL;
-       pvt->addrs[0] = (char *)pvt->addr;
-       pvt->addrs[1] = NULL;
-       pvt->host.h_addr_list = pvt->addrs;
-       RES_SET_H_ERRNO(net_data->res, NETDB_SUCCESS);
-       return (&pvt->host);
-}
-
-#ifdef grot    /*%< for future use in gethostbyaddr(), for "SUNSECURITY" */
-       struct hostent *rhp;
-       char **haddr;
-       u_long old_options;
-       char hname2[MAXDNAME+1];
-
-       if (af == AF_INET) {
-           /*
-            * turn off search as the name should be absolute,
-            * 'localhost' should be matched by defnames
-            */
-           strncpy(hname2, hp->h_name, MAXDNAME);
-           hname2[MAXDNAME] = '\0';
-           old_options = net_data->res->options;
-           net_data->res->options &= ~RES_DNSRCH;
-           net_data->res->options |= RES_DEFNAMES;
-           if (!(rhp = gethostbyname(hname2))) {
-               net_data->res->options = old_options;
-               RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
-               return (NULL);
-           }
-           net_data->res->options = old_options;
-           for (haddr = rhp->h_addr_list; *haddr; haddr++)
-               if (!memcmp(*haddr, addr, INADDRSZ))
-                       break;
-           if (!*haddr) {
-               RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
-               return (NULL);
-           }
-       }
-#endif /* grot */
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/gethostent_r.c b/lib/bind/irs/gethostent_r.c
deleted file mode 100644 (file)
index fdb7ee2..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: gethostent_r.c,v 1.9 2005/09/03 12:41:37 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS)
-       static int gethostent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <port_after.h>
-
-#ifdef HOST_R_RETURN
-
-static HOST_R_RETURN 
-copy_hostent(struct hostent *, struct hostent *, HOST_R_COPY_ARGS);
-
-HOST_R_RETURN
-gethostbyname_r(const char *name,  struct hostent *hptr, HOST_R_ARGS) {
-       struct hostent *he = gethostbyname(name);
-#ifdef HOST_R_SETANSWER
-       int n = 0;
-#endif
-
-#ifdef HOST_R_ERRNO
-       HOST_R_ERRNO;
-#endif
-
-#ifdef HOST_R_SETANSWER
-       if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = hptr;
-       
-       return (n);
-#else
-       if (he == NULL)
-               return (HOST_R_BAD);
-
-       return (copy_hostent(he, hptr, HOST_R_COPY));
-#endif
-}
-
-HOST_R_RETURN
-gethostbyaddr_r(const char *addr, int len, int type,
-               struct hostent *hptr, HOST_R_ARGS) {
-       struct hostent *he = gethostbyaddr(addr, len, type);
-#ifdef HOST_R_SETANSWER
-       int n = 0;
-#endif
-
-#ifdef HOST_R_ERRNO
-       HOST_R_ERRNO;
-#endif
-
-#ifdef HOST_R_SETANSWER
-       if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = hptr;
-       
-       return (n);
-#else
-       if (he == NULL)
-               return (HOST_R_BAD);
-
-       return (copy_hostent(he, hptr, HOST_R_COPY));
-#endif
-}
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-HOST_R_RETURN
-gethostent_r(struct hostent *hptr, HOST_R_ARGS) {
-       struct hostent *he = gethostent();
-#ifdef HOST_R_SETANSWER
-       int n = 0;
-#endif
-
-#ifdef HOST_R_ERRNO
-       HOST_R_ERRNO;
-#endif
-
-#ifdef HOST_R_SETANSWER
-       if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = hptr;
-       
-       return (n);
-#else
-       if (he == NULL)
-               return (HOST_R_BAD);
-
-       return (copy_hostent(he, hptr, HOST_R_COPY));
-#endif
-}
-
-HOST_R_SET_RETURN
-#ifdef HOST_R_ENT_ARGS
-sethostent_r(int stay_open, HOST_R_ENT_ARGS)
-#else
-sethostent_r(int stay_open)
-#endif
-{
-#ifdef HOST_R_ENT_ARGS
-       UNUSED(hdptr);
-#endif
-       sethostent(stay_open);
-#ifdef HOST_R_SET_RESULT
-       return (HOST_R_SET_RESULT);
-#endif
-}
-
-HOST_R_END_RETURN
-#ifdef HOST_R_ENT_ARGS
-endhostent_r(HOST_R_ENT_ARGS)
-#else
-endhostent_r(void)
-#endif
-{
-#ifdef HOST_R_ENT_ARGS
-       UNUSED(hdptr);
-#endif
-       endhostent();
-       HOST_R_END_RESULT(HOST_R_OK);
-}
-
-/* Private */
-
-#ifndef HOSTENT_DATA
-static HOST_R_RETURN
-copy_hostent(struct hostent *he, struct hostent *hptr, HOST_R_COPY_ARGS) {
-       char *cp;
-       char **ptr;
-       int i, n;
-       int nptr, len;
-
-       /* Find out the amount of space required to store the answer. */
-       nptr = 2; /*%< NULL ptrs */
-       len = (char *)ALIGN(buf) - buf;
-       for (i = 0; he->h_addr_list[i]; i++, nptr++) {
-               len += he->h_length;
-       }
-       for (i = 0; he->h_aliases[i]; i++, nptr++) {
-               len += strlen(he->h_aliases[i]) + 1;
-       }
-       len += strlen(he->h_name) + 1;
-       len += nptr * sizeof(char*);
-       
-       if (len > buflen) {
-               errno = ERANGE;
-               return (HOST_R_BAD);
-       }
-
-       /* copy address size and type */
-       hptr->h_addrtype = he->h_addrtype;
-       n = hptr->h_length = he->h_length;
-
-       ptr = (char **)ALIGN(buf);
-       cp = (char *)ALIGN(buf) + nptr * sizeof(char *);
-
-       /* copy address list */
-       hptr->h_addr_list = ptr;
-       for (i = 0; he->h_addr_list[i]; i++ , ptr++) {
-               memcpy(cp, he->h_addr_list[i], n);
-               hptr->h_addr_list[i] = cp;
-               cp += n;
-       }
-       hptr->h_addr_list[i] = NULL;
-       ptr++;
-
-       /* copy official name */
-       n = strlen(he->h_name) + 1;
-       strcpy(cp, he->h_name);
-       hptr->h_name = cp;
-       cp += n;
-
-       /* copy aliases */
-       hptr->h_aliases = ptr;
-       for (i = 0 ; he->h_aliases[i]; i++) {
-               n = strlen(he->h_aliases[i]) + 1;
-               strcpy(cp, he->h_aliases[i]);
-               hptr->h_aliases[i] = cp;
-               cp += n;
-       }
-       hptr->h_aliases[i] = NULL;
-
-       return (HOST_R_OK);
-}
-#else /* !HOSTENT_DATA */
-static int
-copy_hostent(struct hostent *he, struct hostent *hptr, HOST_R_COPY_ARGS) {
-       char *cp, *eob;
-       int i, n;
-
-       /* copy address size and type */
-       hptr->h_addrtype = he->h_addrtype;
-       n = hptr->h_length = he->h_length;
-
-       /* copy up to first 35 addresses */
-       i = 0;
-       cp = hdptr->hostbuf;
-       eob = hdptr->hostbuf + sizeof(hdptr->hostbuf);
-       hptr->h_addr_list = hdptr->h_addr_ptrs;
-       while (he->h_addr_list[i] && i < (_MAXADDRS)) {
-               if (n < (eob - cp)) {
-                       memcpy(cp, he->h_addr_list[i], n);
-                       hptr->h_addr_list[i] = cp;
-                       cp += n;
-               } else {
-                       break;
-               }
-               i++;
-       }
-       hptr->h_addr_list[i] = NULL;
-
-       /* copy official name */
-       if ((n = strlen(he->h_name) + 1) < (eob - cp)) {
-               strcpy(cp, he->h_name);
-               hptr->h_name = cp;
-               cp += n;
-       } else {
-               return (-1);
-       }
-
-       /* copy aliases */
-       i = 0;
-       hptr->h_aliases = hdptr->host_aliases;
-       while (he->h_aliases[i] && i < (_MAXALIASES-1)) {
-               if ((n = strlen(he->h_aliases[i]) + 1) < (eob - cp)) {
-                       strcpy(cp, he->h_aliases[i]);
-                       hptr->h_aliases[i] = cp;
-                       cp += n;
-               } else {
-                       break;
-               }
-               i++;
-       }
-       hptr->h_aliases[i] = NULL;
-
-       return (HOST_R_OK);
-}
-#endif /* !HOSTENT_DATA */
-#else /* HOST_R_RETURN */
-       static int gethostent_r_unknown_system = 0;
-#endif /* HOST_R_RETURN */
-#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */
-/*! \file */
diff --git a/lib/bind/irs/getnameinfo.c b/lib/bind/irs/getnameinfo.c
deleted file mode 100644 (file)
index 89c8230..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Issues to be discussed:
- * - Thread safe-ness must be checked
- */
-
-#if ( defined(__linux__) || defined(__linux) || defined(LINUX) )
-#ifndef IF_NAMESIZE
-# ifdef IFNAMSIZ
-#  define IF_NAMESIZE  IFNAMSIZ
-# else
-#  define IF_NAMESIZE 16
-# endif
-#endif
-#endif
-
-/*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by WIDE Project and
- *    its contributors.
- * 4. Neither the name of the project nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <port_before.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-
-#include <netdb.h>
-#include <resolv.h>
-#include <string.h>
-#include <stddef.h>
-
-#include <port_after.h>
-
-/*%
- * Note that a_off will be dynamically adjusted so that to be consistent
- * with the definition of sockaddr_in{,6}.
- * The value presented below is just a guess.
- */
-static struct afd {
-       int a_af;
-       int a_addrlen;
-       size_t a_socklen;
-       int a_off;
-} afdl [] = {
-       /* first entry is linked last... */
-       {PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in),
-        offsetof(struct sockaddr_in, sin_addr)},
-       {PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6),
-        offsetof(struct sockaddr_in6, sin6_addr)},
-       {0, 0, 0, 0},
-};
-
-struct sockinet {
-#ifdef HAVE_SA_LEN
-       u_char  si_len;
-#endif
-       u_char  si_family;
-       u_short si_port;
-};
-
-static int ip6_parsenumeric __P((const struct sockaddr *, const char *, char *,
-                                size_t, int));
-#ifdef HAVE_SIN6_SCOPE_ID
-static int ip6_sa2str __P((const struct sockaddr_in6 *, char *, size_t, int));
-#endif
-
-int
-getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
-       const struct sockaddr *sa;
-       size_t salen;
-       char *host;
-       size_t hostlen;
-       char *serv;
-       size_t servlen;
-       int flags;
-{
-       struct afd *afd;
-       struct servent *sp;
-       struct hostent *hp;
-       u_short port;
-#ifdef HAVE_SA_LEN
-       size_t len;
-#endif
-       int family, i;
-       const char *addr;
-       char *p;
-       char numserv[512];
-       char numaddr[512];
-       const struct sockaddr_in6 *sin6;
-
-       if (sa == NULL)
-               return EAI_FAIL;
-
-#ifdef HAVE_SA_LEN
-       len = sa->sa_len;
-       if (len != salen) return EAI_FAIL;
-#endif
-
-       family = sa->sa_family;
-       for (i = 0; afdl[i].a_af; i++)
-               if (afdl[i].a_af == family) {
-                       afd = &afdl[i];
-                       goto found;
-               }
-       return EAI_FAMILY;
-
- found:
-       if (salen != afd->a_socklen) return EAI_FAIL;
-
-       port = ((const struct sockinet *)sa)->si_port; /*%< network byte order */
-       addr = (const char *)sa + afd->a_off;
-
-       if (serv == NULL || servlen == 0U) {
-               /*
-                * rfc2553bis says that serv == NULL or servlen == 0 means that
-                * the caller does not want the result.
-                */
-       } else if (flags & NI_NUMERICSERV) {
-               sprintf(numserv, "%d", ntohs(port));
-               if (strlen(numserv) > servlen)
-                       return EAI_MEMORY;
-               strcpy(serv, numserv);
-       } else {
-               sp = getservbyport(port, (flags & NI_DGRAM) ? "udp" : "tcp");
-               if (sp) {
-                       if (strlen(sp->s_name) + 1 > servlen)
-                               return EAI_MEMORY;
-                       strcpy(serv, sp->s_name);
-               } else
-                       return EAI_NONAME;
-       }
-
-       switch (sa->sa_family) {
-       case AF_INET:
-               if (ntohl(*(const u_int32_t *)addr) >> IN_CLASSA_NSHIFT == 0)
-                       flags |= NI_NUMERICHOST;                        
-               break;
-       case AF_INET6:
-               sin6 = (const struct sockaddr_in6 *)sa;
-               switch (sin6->sin6_addr.s6_addr[0]) {
-               case 0x00:
-                       if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr))
-                               ;
-                       else if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr))
-                               ;
-                       else
-                               flags |= NI_NUMERICHOST;
-                       break;
-               default:
-                       if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr))
-                               flags |= NI_NUMERICHOST;
-                       else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr))
-                               flags |= NI_NUMERICHOST;
-                       break;
-               }
-               break;
-       }
-       if (host == NULL || hostlen == 0U) {
-               /*
-                * rfc2553bis says that host == NULL or hostlen == 0 means that
-                * the caller does not want the result.
-                */
-       } else if (flags & NI_NUMERICHOST) {
-               goto numeric;
-       } else {
-               hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af);
-
-               if (hp) {
-                       if (flags & NI_NOFQDN) {
-                               p = strchr(hp->h_name, '.');
-                               if (p) *p = '\0';
-                       }
-                       if (strlen(hp->h_name) + 1 > hostlen)
-                               return EAI_MEMORY;
-                       strcpy(host, hp->h_name);
-               } else {
-                       if (flags & NI_NAMEREQD)
-                               return EAI_NONAME;
-                 numeric:
-                       switch(afd->a_af) {
-                       case AF_INET6:
-                       {
-                               int error;
-
-                               if ((error = ip6_parsenumeric(sa, addr, host,
-                                                             hostlen,
-                                                             flags)) != 0)
-                                       return(error);
-                               break;
-                       }
-
-                       default:
-                               if (inet_ntop(afd->a_af, addr, numaddr,
-                                             sizeof(numaddr)) == NULL)
-                                       return EAI_NONAME;
-                               if (strlen(numaddr) + 1 > hostlen)
-                                       return EAI_MEMORY;
-                               strcpy(host, numaddr);
-                       }
-               }
-       }
-       return(0);
-}
-
-static int
-ip6_parsenumeric(const struct sockaddr *sa, const char *addr, char *host,
-                size_t hostlen, int flags)
-{
-       size_t numaddrlen;
-       char numaddr[512];
-
-#ifndef HAVE_SIN6_SCOPE_ID
-       UNUSED(sa);
-       UNUSED(flags);
-#endif
-
-       if (inet_ntop(AF_INET6, addr, numaddr, sizeof(numaddr))
-           == NULL)
-               return EAI_SYSTEM;
-
-       numaddrlen = strlen(numaddr);
-       if (numaddrlen + 1 > hostlen) /*%< don't forget terminator */
-               return EAI_MEMORY;
-       strcpy(host, numaddr);
-
-#ifdef HAVE_SIN6_SCOPE_ID
-       if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) {
-               char scopebuf[MAXHOSTNAMELEN]; /*%< XXX */
-               int scopelen;
-
-               /* ip6_sa2str never fails */
-               scopelen = ip6_sa2str((const struct sockaddr_in6 *)sa,
-                                     scopebuf, sizeof(scopebuf), flags);
-
-               if (scopelen + 1 + numaddrlen + 1 > hostlen)
-                       return EAI_MEMORY;
-
-               /* construct <numeric-addr><delim><scopeid> */
-               memcpy(host + numaddrlen + 1, scopebuf,
-                      scopelen);
-               host[numaddrlen] = SCOPE_DELIMITER;
-               host[numaddrlen + 1 + scopelen] = '\0';
-       }
-#endif
-
-       return 0;
-}
-
-#ifdef HAVE_SIN6_SCOPE_ID
-/* ARGSUSED */
-static int
-ip6_sa2str(const struct sockaddr_in6 *sa6, char *buf,
-          size_t bufsiz, int flags)
-{
-#ifdef USE_IFNAMELINKID
-       unsigned int ifindex = (unsigned int)sa6->sin6_scope_id;
-       const struct in6_addr *a6 = &sa6->sin6_addr;
-#endif
-       char tmp[64];
-
-#ifdef NI_NUMERICSCOPE
-       if (flags & NI_NUMERICSCOPE) {
-               sprintf(tmp, "%u", sa6->sin6_scope_id);
-               if (bufsiz != 0U) {
-                       strncpy(buf, tmp, bufsiz - 1);
-                       buf[bufsiz - 1] = '\0';
-               }
-               return(strlen(tmp));
-       }
-#endif
-
-#ifdef USE_IFNAMELINKID
-       /*
-        * For a link-local address, convert the index to an interface
-        * name, assuming a one-to-one mapping between links and interfaces.
-        * Note, however, that this assumption is stronger than the
-        * specification of the scoped address architecture;  the
-        * specficication says that more than one interfaces can belong to
-        * a single link.
-        */
-
-       /* if_indextoname() does not take buffer size.  not a good api... */
-       if ((IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6)) &&
-           bufsiz >= IF_NAMESIZE) {
-               char *p = if_indextoname(ifindex, buf);
-               if (p) {
-                       return(strlen(p));
-               }
-       }
-#endif
-
-       /* last resort */
-       sprintf(tmp, "%u", sa6->sin6_scope_id);
-       if (bufsiz != 0U) {
-               strncpy(buf, tmp, bufsiz - 1);
-               buf[bufsiz - 1] = '\0';
-       }
-       return(strlen(tmp));
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/getnetent.c b/lib/bind/irs/getnetent.c
deleted file mode 100644 (file)
index a6abe71..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: getnetent.c,v 1.7 2005/04/27 04:56:25 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(__BIND_NOSTATIC)
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "irs_data.h"
-
-/* Definitions */
-
-struct pvt {
-       struct netent   netent;
-       char *          aliases[1];
-       char            name[MAXDNAME + 1];
-};
-
-/* Forward */
-
-static struct net_data *init(void);
-static struct netent   *nw_to_net(struct nwent *, struct net_data *);
-static void            freepvt(struct net_data *);
-static struct netent   *fakeaddr(const char *, int af, struct net_data *);
-
-/* Portability */
-
-#ifndef INADDR_NONE
-# define INADDR_NONE 0xffffffff
-#endif
-
-/* Public */
-
-struct netent *
-getnetent() {
-       struct net_data *net_data = init();
-
-       return (getnetent_p(net_data));
-}
-
-struct netent *
-getnetbyname(const char *name) {
-       struct net_data *net_data = init();
-
-       return (getnetbyname_p(name, net_data));
-}
-
-struct netent *
-getnetbyaddr(unsigned long net, int type) {
-       struct net_data *net_data = init();
-
-       return (getnetbyaddr_p(net, type, net_data));
-}
-
-void
-setnetent(int stayopen) {
-       struct net_data *net_data = init();
-
-       setnetent_p(stayopen, net_data);
-}
-
-
-void
-endnetent() {
-       struct net_data *net_data = init();
-
-       endnetent_p(net_data);
-}
-
-/* Shared private. */
-
-struct netent *
-getnetent_p(struct net_data *net_data) {
-       struct irs_nw *nw;
-
-       if (!net_data || !(nw = net_data->nw))
-               return (NULL);
-       net_data->nww_last = (*nw->next)(nw);
-       net_data->nw_last = nw_to_net(net_data->nww_last, net_data);
-       return (net_data->nw_last);
-}
-
-struct netent *
-getnetbyname_p(const char *name, struct net_data *net_data) {
-       struct irs_nw *nw;
-       struct netent *np;
-       char **nap;
-
-       if (!net_data || !(nw = net_data->nw))
-               return (NULL);
-       if (net_data->nw_stayopen && net_data->nw_last) {
-               if (!strcmp(net_data->nw_last->n_name, name))
-                       return (net_data->nw_last);
-               for (nap = net_data->nw_last->n_aliases; nap && *nap; nap++)
-                       if (!strcmp(name, *nap))
-                               return (net_data->nw_last);
-       }
-       if ((np = fakeaddr(name, AF_INET, net_data)) != NULL)
-               return (np);
-       net_data->nww_last = (*nw->byname)(nw, name, AF_INET);
-       net_data->nw_last = nw_to_net(net_data->nww_last, net_data);
-       if (!net_data->nw_stayopen)
-               endnetent();
-       return (net_data->nw_last);
-}
-
-struct netent *
-getnetbyaddr_p(unsigned long net, int type, struct net_data *net_data) {
-       struct irs_nw *nw;
-       u_char addr[4];
-       int bits;
-
-       if (!net_data || !(nw = net_data->nw))
-               return (NULL);
-       if (net_data->nw_stayopen && net_data->nw_last)
-               if (type == net_data->nw_last->n_addrtype &&
-                   net == net_data->nw_last->n_net)
-                       return (net_data->nw_last);
-
-       /* cannonize net(host order) */
-       if (net < 256UL) {
-               net <<= 24;
-               bits = 8;
-       } else if (net < 65536UL) {
-               net <<= 16;
-               bits = 16;
-       } else if (net < 16777216UL) {
-               net <<= 8;
-               bits = 24;
-       } else
-               bits = 32;
-
-       /* convert to net order */
-       addr[0] = (0xFF000000 & net) >> 24;
-       addr[1] = (0x00FF0000 & net) >> 16;
-       addr[2] = (0x0000FF00 & net) >> 8;
-       addr[3] = (0x000000FF & net);
-
-       /* reduce bits to as close to natural number as possible */
-       if ((bits == 32) && (addr[0] < 224) && (addr[3] == 0)) {
-               if ((addr[0] < 192) && (addr[2] == 0)) {
-                       if ((addr[0] < 128) && (addr[1] == 0))
-                               bits = 8;
-                       else
-                               bits = 16;
-               } else {
-                       bits = 24;
-               }
-       }
-
-       net_data->nww_last = (*nw->byaddr)(nw, addr, bits, AF_INET);
-       net_data->nw_last = nw_to_net(net_data->nww_last, net_data);
-       if (!net_data->nw_stayopen)
-               endnetent();
-       return (net_data->nw_last);
-}
-
-
-
-
-void
-setnetent_p(int stayopen, struct net_data *net_data) {
-       struct irs_nw *nw;
-
-       if (!net_data || !(nw = net_data->nw))
-               return;
-       freepvt(net_data);
-       (*nw->rewind)(nw);
-       net_data->nw_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-}
-
-void
-endnetent_p(struct net_data *net_data) {
-       struct irs_nw *nw;
-
-       if ((net_data != NULL) && ((nw  = net_data->nw) != NULL))
-               (*nw->minimize)(nw);
-}
-
-/* Private */
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->nw) {
-               net_data->nw = (*net_data->irs->nw_map)(net_data->irs);
-
-               if (!net_data->nw || !net_data->res) {
- error:                
-                       errno = EIO;
-                       return (NULL);
-               }
-               (*net_data->nw->res_set)(net_data->nw, net_data->res, NULL);
-       }
-       
-       return (net_data);
-}
-
-static void
-freepvt(struct net_data *net_data) {
-       if (net_data->nw_data) {
-               free(net_data->nw_data);
-               net_data->nw_data = NULL;
-       }
-}
-
-static struct netent *
-fakeaddr(const char *name, int af, struct net_data *net_data) {
-       struct pvt *pvt;
-       const char *cp;
-       u_long tmp;
-
-       if (af != AF_INET) {
-               /* XXX should support IPv6 some day */
-               errno = EAFNOSUPPORT;
-               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       if (!isascii((unsigned char)(name[0])) ||
-           !isdigit((unsigned char)(name[0])))
-               return (NULL);
-       for (cp = name; *cp; ++cp)
-               if (!isascii(*cp) || (!isdigit((unsigned char)*cp) && *cp != '.'))
-                       return (NULL);
-       if (*--cp == '.')
-               return (NULL);
-
-       /* All-numeric, no dot at the end. */
-
-       tmp = inet_network(name);
-       if (tmp == INADDR_NONE) {
-               RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-
-       /* Valid network number specified.
-        * Fake up a netent as if we'd actually
-        * done a lookup.
-        */
-       freepvt(net_data);
-       net_data->nw_data = malloc(sizeof (struct pvt));
-       if (!net_data->nw_data) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       pvt = net_data->nw_data;
-
-       strncpy(pvt->name, name, MAXDNAME);
-       pvt->name[MAXDNAME] = '\0';
-       pvt->netent.n_name = pvt->name;
-       pvt->netent.n_addrtype = AF_INET;
-       pvt->netent.n_aliases = pvt->aliases;
-       pvt->aliases[0] = NULL;
-       pvt->netent.n_net = tmp;
-
-       return (&pvt->netent);
-}
-
-static struct netent *
-nw_to_net(struct nwent *nwent, struct net_data *net_data) {
-       struct pvt *pvt;
-       u_long addr = 0;
-       int i;
-       int msbyte;
-
-       if (!nwent || nwent->n_addrtype != AF_INET)
-               return (NULL);
-       freepvt(net_data);
-       net_data->nw_data = malloc(sizeof (struct pvt));
-       if (!net_data->nw_data) {
-               errno = ENOMEM;
-               RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       pvt = net_data->nw_data;
-       pvt->netent.n_name = nwent->n_name;
-       pvt->netent.n_aliases = nwent->n_aliases;
-       pvt->netent.n_addrtype = nwent->n_addrtype;
-
-/*%
- * What this code does: Converts net addresses from network to host form.
- *
- * msbyte: the index of the most significant byte in the n_addr array.
- *
- * Shift bytes in significant order into addr. When all signicant
- * bytes are in, zero out bits in the LSB that are not part of the network.
- */
-       msbyte = nwent->n_length / 8 +
-               ((nwent->n_length % 8) != 0 ? 1 : 0) - 1;
-       for (i = 0; i <= msbyte; i++)
-               addr = (addr << 8) | ((unsigned char *)nwent->n_addr)[i];
-       i = (32 - nwent->n_length) % 8;
-       if (i != 0)
-               addr &= ~((1 << (i + 1)) - 1);
-       pvt->netent.n_net = addr;
-       return (&pvt->netent);
-}
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/getnetent_r.c b/lib/bind/irs/getnetent_r.c
deleted file mode 100644 (file)
index 9fb52bc..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getnetent_r.c,v 1.6 2005/09/03 12:41:38 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS)
-       static int getnetent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <port_after.h>
-
-#ifdef NET_R_RETURN
-
-static NET_R_RETURN 
-copy_netent(struct netent *, struct netent *, NET_R_COPY_ARGS);
-
-NET_R_RETURN
-getnetbyname_r(const char *name,  struct netent *nptr, NET_R_ARGS) {
-       struct netent *ne = getnetbyname(name);
-#ifdef NET_R_SETANSWER
-       int n = 0;
-
-       if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = ne;
-       if (ne == NULL)
-               *h_errnop = h_errno;
-       return (n);
-#else
-       if (ne == NULL)
-               return (NET_R_BAD);
-
-       return (copy_netent(ne, nptr, NET_R_COPY));
-#endif
-}
-
-#ifndef GETNETBYADDR_ADDR_T
-#define GETNETBYADDR_ADDR_T long
-#endif
-NET_R_RETURN
-getnetbyaddr_r(GETNETBYADDR_ADDR_T addr, int type, struct netent *nptr, NET_R_ARGS) {
-       struct netent *ne = getnetbyaddr(addr, type);
-#ifdef NET_R_SETANSWER
-       int n = 0;
-
-       if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = ne;
-       if (ne == NULL)
-               *h_errnop = h_errno;
-       return (n);
-#else
-
-       if (ne == NULL)
-               return (NET_R_BAD);
-
-       return (copy_netent(ne, nptr, NET_R_COPY));
-#endif
-}
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-NET_R_RETURN
-getnetent_r(struct netent *nptr, NET_R_ARGS) {
-       struct netent *ne = getnetent();
-#ifdef NET_R_SETANSWER
-       int n = 0;
-
-       if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = ne;
-       if (ne == NULL)
-               *h_errnop = h_errno;
-       return (n);
-#else
-
-       if (ne == NULL)
-               return (NET_R_BAD);
-
-       return (copy_netent(ne, nptr, NET_R_COPY));
-#endif
-}
-
-NET_R_SET_RETURN
-#ifdef NET_R_ENT_ARGS
-setnetent_r(int stay_open, NET_R_ENT_ARGS)
-#else
-setnetent_r(int stay_open)
-#endif
-{
-#ifdef NET_R_ENT_ARGS
-       UNUSED(ndptr);
-#endif
-       setnetent(stay_open);
-#ifdef NET_R_SET_RESULT
-       return (NET_R_SET_RESULT);
-#endif
-}
-
-NET_R_END_RETURN
-#ifdef NET_R_ENT_ARGS
-endnetent_r(NET_R_ENT_ARGS)
-#else
-endnetent_r()
-#endif
-{
-#ifdef NET_R_ENT_ARGS
-       UNUSED(ndptr);
-#endif
-       endnetent();
-       NET_R_END_RESULT(NET_R_OK);
-}
-
-/* Private */
-
-#ifndef NETENT_DATA
-static NET_R_RETURN
-copy_netent(struct netent *ne, struct netent *nptr, NET_R_COPY_ARGS) {
-       char *cp;
-       int i, n;
-       int numptr, len;
-
-       /* Find out the amount of space required to store the answer. */
-       numptr = 1; /*%< NULL ptr */
-       len = (char *)ALIGN(buf) - buf;
-       for (i = 0; ne->n_aliases[i]; i++, numptr++) {
-               len += strlen(ne->n_aliases[i]) + 1;
-       }
-       len += strlen(ne->n_name) + 1;
-       len += numptr * sizeof(char*);
-       
-       if (len > (int)buflen) {
-               errno = ERANGE;
-               return (NET_R_BAD);
-       }
-
-       /* copy net value and type */
-       nptr->n_addrtype = ne->n_addrtype;
-       nptr->n_net = ne->n_net;
-
-       cp = (char *)ALIGN(buf) + numptr * sizeof(char *);
-
-       /* copy official name */
-       n = strlen(ne->n_name) + 1;
-       strcpy(cp, ne->n_name);
-       nptr->n_name = cp;
-       cp += n;
-
-       /* copy aliases */
-       nptr->n_aliases = (char **)ALIGN(buf);
-       for (i = 0 ; ne->n_aliases[i]; i++) {
-               n = strlen(ne->n_aliases[i]) + 1;
-               strcpy(cp, ne->n_aliases[i]);
-               nptr->n_aliases[i] = cp;
-               cp += n;
-       }
-       nptr->n_aliases[i] = NULL;
-
-       return (NET_R_OK);
-}
-#else /* !NETENT_DATA */
-static int
-copy_netent(struct netent *ne, struct netent *nptr, NET_R_COPY_ARGS) {
-       char *cp, *eob;
-       int i, n;
-
-       /* copy net value and type */
-       nptr->n_addrtype = ne->n_addrtype;
-       nptr->n_net = ne->n_net;
-
-       /* copy official name */
-       cp = ndptr->line;
-       eob = ndptr->line + sizeof(ndptr->line);
-       if ((n = strlen(ne->n_name) + 1) < (eob - cp)) {
-               strcpy(cp, ne->n_name);
-               nptr->n_name = cp;
-               cp += n;
-       } else {
-               return (-1);
-       }
-
-       /* copy aliases */
-       i = 0;
-       nptr->n_aliases = ndptr->net_aliases;
-       while (ne->n_aliases[i] && i < (_MAXALIASES-1)) {
-               if ((n = strlen(ne->n_aliases[i]) + 1) < (eob - cp)) {
-                       strcpy(cp, ne->n_aliases[i]);
-                       nptr->n_aliases[i] = cp;
-                       cp += n;
-               } else {
-                       break;
-               }
-               i++;
-       }
-       nptr->n_aliases[i] = NULL;
-
-       return (NET_R_OK);
-}
-#endif /* !NETENT_DATA */
-#else /* NET_R_RETURN */
-       static int getnetent_r_unknown_system = 0;
-#endif /* NET_R_RETURN */
-#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */
-/*! \file */
diff --git a/lib/bind/irs/getnetgrent.c b/lib/bind/irs/getnetgrent.c
deleted file mode 100644 (file)
index c675b74..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getnetgrent.c,v 1.5 2008/02/26 23:57:38 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(__BIND_NOSTATIC)
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdio.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-/* Forward */
-
-static struct net_data *init(void);
-
-
-/* Public */
-
-#ifndef SETNETGRENT_ARGS
-#define SETNETGRENT_ARGS const char *netgroup
-#endif
-void
-setnetgrent(SETNETGRENT_ARGS) {
-       struct net_data *net_data = init();
-
-       setnetgrent_p(netgroup, net_data);
-}
-
-void
-endnetgrent(void) {
-       struct net_data *net_data = init();
-
-       endnetgrent_p(net_data);
-}
-
-#ifndef INNETGR_ARGS
-#define INNETGR_ARGS const char *netgroup, const char *host, \
-                    const char *user, const char *domain
-#endif
-int
-innetgr(INNETGR_ARGS) {
-       struct net_data *net_data = init();
-
-       return (innetgr_p(netgroup, host, user, domain, net_data));
-}
-
-int
-getnetgrent(NGR_R_CONST char **host, NGR_R_CONST char **user,
-           NGR_R_CONST char **domain)
-{
-       struct net_data *net_data = init();
-       const char *ch, *cu, *cd;
-       int ret;
-
-       ret = getnetgrent_p(&ch, &cu, &cd, net_data);
-       if (ret != 1)
-               return (ret);
-
-       DE_CONST(ch, *host);
-       DE_CONST(cu, *user);
-       DE_CONST(cd, *domain);
-       return (ret);
-}
-
-/* Shared private. */
-
-void
-setnetgrent_p(const char *netgroup, struct net_data *net_data) {
-       struct irs_ng *ng;
-
-       if ((net_data != NULL) && ((ng = net_data->ng) != NULL))
-               (*ng->rewind)(ng, netgroup);
-}
-
-void
-endnetgrent_p(struct net_data *net_data) {
-       struct irs_ng *ng;
-
-       if (!net_data)
-               return;
-       if ((ng = net_data->ng) != NULL)
-               (*ng->close)(ng);
-       net_data->ng = NULL;
-}
-
-int
-innetgr_p(const char *netgroup, const char *host,
-         const char *user, const char *domain,
-         struct net_data *net_data) {
-       struct irs_ng *ng;
-
-       if (!net_data || !(ng = net_data->ng))
-               return (0);
-       return ((*ng->test)(ng, netgroup, host, user, domain));
-}
-
-int
-getnetgrent_p(const char **host, const char **user, const char **domain,
-             struct net_data *net_data ) {
-       struct irs_ng *ng;
-
-       if (!net_data || !(ng = net_data->ng))
-               return (0);
-       return ((*ng->next)(ng, host, user, domain));
-}
-
-/* Private */
-
-static struct net_data *
-init(void) {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->ng) {
-               net_data->ng = (*net_data->irs->ng_map)(net_data->irs);
-               if (!net_data->ng) {
-  error:
-                       errno = EIO;
-                       return (NULL);
-               }
-       }
-       
-       return (net_data);
-}
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/getnetgrent_r.c b/lib/bind/irs/getnetgrent_r.c
deleted file mode 100644 (file)
index a2c0fb5..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getnetgrent_r.c,v 1.13 2008/02/28 05:34:17 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS)
-       static int getnetgrent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <port_after.h>
-
-#ifdef NGR_R_RETURN
-#ifndef NGR_R_PRIVATE
-#define NGR_R_PRIVATE 0
-#endif
-
-static NGR_R_RETURN 
-copy_protoent(NGR_R_CONST char **, NGR_R_CONST char **, NGR_R_CONST char **,
-             const char *, const char *, const char *, NGR_R_COPY_ARGS);
-
-NGR_R_RETURN
-innetgr_r(const char *netgroup, const char *host, const char *user,
-         const char *domain) {
-       char *ng, *ho, *us, *dom;
-
-       DE_CONST(netgroup, ng);
-       DE_CONST(host, ho);
-       DE_CONST(user, us);
-       DE_CONST(domain, dom);
-
-       return (innetgr(ng, ho, us, dom));
-}
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-NGR_R_RETURN
-getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp,
-             NGR_R_CONST char **domainp, NGR_R_ARGS)
-{
-       NGR_R_CONST char *mp, *up, *dp;
-       int res = getnetgrent(&mp, &up, &dp);
-
-       if (res != 1) 
-               return (res);
-
-       return (copy_protoent(machinep, userp, domainp,
-                               mp, up, dp, NGR_R_COPY));
-}
-
-#if NGR_R_PRIVATE == 2
-struct private {
-       char *buf;
-};
-
-#endif
-NGR_R_SET_RETURN
-#ifdef NGR_R_SET_ARGS
-setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS)
-#else
-setnetgrent_r(NGR_R_SET_CONST char *netgroup)
-#endif
-{
-#if NGR_R_PRIVATE == 2
-       struct private *p;
-#endif
-       char *tmp;
-#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0
-       UNUSED(buf);
-       UNUSED(buflen);
-#endif
-
-       DE_CONST(netgroup, tmp);
-       setnetgrent(tmp);
-
-#if NGR_R_PRIVATE == 1
-       *buf = NULL;
-#elif NGR_R_PRIVATE == 2
-       *buf = p = malloc(sizeof(struct private));
-       if (p == NULL)
-#ifdef NGR_R_SET_RESULT
-               return (NGR_R_BAD);
-#else
-               return;
-#endif
-       p->buf = NULL;
-#endif
-#ifdef NGR_R_SET_RESULT
-       return (NGR_R_SET_RESULT);
-#endif
-}
-
-NGR_R_END_RETURN
-#ifdef NGR_R_END_ARGS
-endnetgrent_r(NGR_R_END_ARGS)
-#else
-endnetgrent_r(void)
-#endif
-{
-#if NGR_R_PRIVATE == 2
-       struct private *p = buf;
-#endif
-#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0
-       UNUSED(buf);
-       UNUSED(buflen);
-#endif
-
-       endnetgrent();
-#if NGR_R_PRIVATE == 1
-       if (*buf != NULL)
-               free(*buf);
-       *buf = NULL;
-#elif NGR_R_PRIVATE == 2
-       if (p->buf != NULL)
-               free(p->buf);
-       free(p);
-#endif
-       NGR_R_END_RESULT(NGR_R_OK);
-}
-
-/* Private */
-
-static int
-copy_protoent(NGR_R_CONST char **machinep, NGR_R_CONST char **userp,
-             NGR_R_CONST char **domainp, const char *mp, const char *up,
-             const char *dp, NGR_R_COPY_ARGS)
-{
-#if NGR_R_PRIVATE == 2
-       struct private *p = buf;
-#endif
-       char *cp;
-       int n;
-       int len;
-
-       /* Find out the amount of space required to store the answer. */
-       len = 0;
-       if (mp != NULL) len += strlen(mp) + 1;
-       if (up != NULL) len += strlen(up) + 1;
-       if (dp != NULL) len += strlen(dp) + 1;
-       
-#if NGR_R_PRIVATE == 1
-       if (*buf != NULL)
-               free(*buf);
-       *buf = malloc(len);
-       if (*buf == NULL)
-               return(NGR_R_BAD);
-       cp = *buf;
-#elif NGR_R_PRIVATE == 2
-       if (p->buf)
-               free(p->buf);
-       p->buf = malloc(len);
-       if (p->buf == NULL)
-               return(NGR_R_BAD);
-       cp = p->buf;
-#else
-       if (len > (int)buflen) {
-               errno = ERANGE;
-               return (NGR_R_BAD);
-       }
-       cp = buf;
-#endif
-
-       if (mp != NULL) {
-               n = strlen(mp) + 1;
-               strcpy(cp, mp);
-               *machinep = cp;
-               cp += n;
-       } else
-               *machinep = NULL;
-
-       if (up != NULL) {
-               n = strlen(up) + 1;
-               strcpy(cp, up);
-               *userp = cp;
-               cp += n;
-       } else
-               *userp = NULL;
-
-       if (dp != NULL) {
-               n = strlen(dp) + 1;
-               strcpy(cp, dp);
-               *domainp = cp;
-               cp += n;
-       } else
-               *domainp = NULL;
-
-       return (NGR_R_OK);
-}
-#else /* NGR_R_RETURN */
-       static int getnetgrent_r_unknown_system = 0;
-#endif /* NGR_R_RETURN */
-#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */
-/*! \file */
diff --git a/lib/bind/irs/getprotoent.c b/lib/bind/irs/getprotoent.c
deleted file mode 100644 (file)
index 1e109f9..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: getprotoent.c,v 1.4 2005/04/27 04:56:26 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(__BIND_NOSTATIC)
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-/* Forward */
-
-static struct net_data *init(void);
-
-/* Public */
-
-struct protoent *
-getprotoent() {
-       struct net_data *net_data = init();
-
-       return (getprotoent_p(net_data));
-}
-
-struct protoent *
-getprotobyname(const char *name) {
-       struct net_data *net_data = init();
-
-       return (getprotobyname_p(name, net_data));
-}
-
-struct protoent *
-getprotobynumber(int proto) {
-       struct net_data *net_data = init();
-
-       return (getprotobynumber_p(proto, net_data));
-}
-
-void
-setprotoent(int stayopen) {
-       struct net_data *net_data = init();
-
-       setprotoent_p(stayopen, net_data);
-}
-
-void
-endprotoent() {
-       struct net_data *net_data = init();
-
-       endprotoent_p(net_data);
-}
-
-/* Shared private. */
-
-struct protoent *
-getprotoent_p(struct net_data *net_data) {
-       struct irs_pr *pr;
-
-       if (!net_data || !(pr = net_data->pr))
-               return (NULL);
-       net_data->pr_last = (*pr->next)(pr);
-       return (net_data->pr_last);
-}
-
-struct protoent *
-getprotobyname_p(const char *name, struct net_data *net_data) {
-       struct irs_pr *pr;
-       char **pap;
-
-       if (!net_data || !(pr = net_data->pr))
-               return (NULL);
-       if (net_data->pr_stayopen && net_data->pr_last) {
-               if (!strcmp(net_data->pr_last->p_name, name))
-                       return (net_data->pr_last);
-               for (pap = net_data->pr_last->p_aliases; pap && *pap; pap++)
-                       if (!strcmp(name, *pap))
-                               return (net_data->pr_last);
-       }
-       net_data->pr_last = (*pr->byname)(pr, name);
-       if (!net_data->pr_stayopen)
-               endprotoent();
-       return (net_data->pr_last);
-}
-
-struct protoent *
-getprotobynumber_p(int proto, struct net_data *net_data) {
-       struct irs_pr *pr;
-
-       if (!net_data || !(pr = net_data->pr))
-               return (NULL);
-       if (net_data->pr_stayopen && net_data->pr_last)
-               if (net_data->pr_last->p_proto == proto)
-                       return (net_data->pr_last);
-       net_data->pr_last = (*pr->bynumber)(pr, proto);
-       if (!net_data->pr_stayopen)
-               endprotoent();
-       return (net_data->pr_last);
-}
-
-void
-setprotoent_p(int stayopen, struct net_data *net_data) {
-       struct irs_pr *pr;
-
-       if (!net_data || !(pr = net_data->pr))
-               return;
-       (*pr->rewind)(pr);
-       net_data->pr_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-}
-
-void
-endprotoent_p(struct net_data *net_data) {
-       struct irs_pr *pr;
-
-       if ((net_data != NULL) && ((pr = net_data->pr) != NULL))
-               (*pr->minimize)(pr);
-}
-
-/* Private */
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->pr) {
-               net_data->pr = (*net_data->irs->pr_map)(net_data->irs);
-
-               if (!net_data->pr || !net_data->res) {
- error:                
-                       errno = EIO;
-                       return (NULL);
-               }
-               (*net_data->pr->res_set)(net_data->pr, net_data->res, NULL);
-       }
-       
-       return (net_data);
-}
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/getprotoent_r.c b/lib/bind/irs/getprotoent_r.c
deleted file mode 100644 (file)
index d5d9ae5..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getprotoent_r.c,v 1.6 2006/08/01 01:14:16 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS)
-       static int getprotoent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <port_after.h>
-
-#ifdef PROTO_R_RETURN
-
-static PROTO_R_RETURN 
-copy_protoent(struct protoent *, struct protoent *, PROTO_R_COPY_ARGS);
-
-PROTO_R_RETURN
-getprotobyname_r(const char *name, struct protoent *pptr, PROTO_R_ARGS) {
-       struct protoent *pe = getprotobyname(name);
-#ifdef PROTO_R_SETANSWER
-       int n = 0;
-
-       if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = pptr;
-       
-       return (n);
-#else
-       if (pe == NULL)
-               return (PROTO_R_BAD);
-
-       return (copy_protoent(pe, pptr, PROTO_R_COPY));
-#endif
-}
-
-PROTO_R_RETURN
-getprotobynumber_r(int proto, struct protoent *pptr, PROTO_R_ARGS) {
-       struct protoent *pe = getprotobynumber(proto);
-#ifdef PROTO_R_SETANSWER
-       int n = 0;
-
-       if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = pptr;
-       
-       return (n);
-#else
-       if (pe == NULL)
-               return (PROTO_R_BAD);
-
-       return (copy_protoent(pe, pptr, PROTO_R_COPY));
-#endif
-}
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-PROTO_R_RETURN
-getprotoent_r(struct protoent *pptr, PROTO_R_ARGS) {
-       struct protoent *pe = getprotoent();
-#ifdef PROTO_R_SETANSWER
-       int n = 0;
-
-       if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = pptr;
-       
-       return (n);
-#else
-       if (pe == NULL)
-               return (PROTO_R_BAD);
-
-       return (copy_protoent(pe, pptr, PROTO_R_COPY));
-#endif
-}
-
-PROTO_R_SET_RETURN
-#ifdef PROTO_R_ENT_ARGS
-setprotoent_r(int stay_open, PROTO_R_ENT_ARGS)
-#else
-setprotoent_r(int stay_open)
-#endif
-{
-#ifdef PROTO_R_ENT_UNUSED
-        PROTO_R_ENT_UNUSED;
-#endif
-       setprotoent(stay_open);
-#ifdef PROTO_R_SET_RESULT
-       return (PROTO_R_SET_RESULT);
-#endif
-}
-
-PROTO_R_END_RETURN
-#ifdef PROTO_R_ENT_ARGS
-endprotoent_r(PROTO_R_ENT_ARGS)
-#else
-endprotoent_r()
-#endif
-{
-#ifdef PROTO_R_ENT_UNUSED
-        PROTO_R_ENT_UNUSED;
-#endif
-       endprotoent();
-       PROTO_R_END_RESULT(PROTO_R_OK);
-}
-
-/* Private */
-
-#ifndef PROTOENT_DATA
-static PROTO_R_RETURN
-copy_protoent(struct protoent *pe, struct protoent *pptr, PROTO_R_COPY_ARGS) {
-       char *cp;
-       int i, n;
-       int numptr, len;
-
-       /* Find out the amount of space required to store the answer. */
-       numptr = 1; /*%< NULL ptr */
-       len = (char *)ALIGN(buf) - buf;
-       for (i = 0; pe->p_aliases[i]; i++, numptr++) {
-               len += strlen(pe->p_aliases[i]) + 1;
-       }
-       len += strlen(pe->p_name) + 1;
-       len += numptr * sizeof(char*);
-       
-       if (len > (int)buflen) {
-               errno = ERANGE;
-               return (PROTO_R_BAD);
-       }
-
-       /* copy protocol value*/
-       pptr->p_proto = pe->p_proto;
-
-       cp = (char *)ALIGN(buf) + numptr * sizeof(char *);
-
-       /* copy official name */
-       n = strlen(pe->p_name) + 1;
-       strcpy(cp, pe->p_name);
-       pptr->p_name = cp;
-       cp += n;
-
-       /* copy aliases */
-       pptr->p_aliases = (char **)ALIGN(buf);
-       for (i = 0 ; pe->p_aliases[i]; i++) {
-               n = strlen(pe->p_aliases[i]) + 1;
-               strcpy(cp, pe->p_aliases[i]);
-               pptr->p_aliases[i] = cp;
-               cp += n;
-       }
-       pptr->p_aliases[i] = NULL;
-
-       return (PROTO_R_OK);
-}
-#else /* !PROTOENT_DATA */
-static int
-copy_protoent(struct protoent *pe, struct protoent *pptr, PROTO_R_COPY_ARGS) {
-       char *cp, *eob;
-       int i, n;
-
-       /* copy protocol value */
-       pptr->p_proto = pe->p_proto;
-
-       /* copy official name */
-       cp = pdptr->line;
-       eob = pdptr->line + sizeof(pdptr->line);
-       if ((n = strlen(pe->p_name) + 1) < (eob - cp)) {
-               strcpy(cp, pe->p_name);
-               pptr->p_name = cp;
-               cp += n;
-       } else {
-               return (-1);
-       }
-
-       /* copy aliases */
-       i = 0;
-       pptr->p_aliases = pdptr->proto_aliases;
-       while (pe->p_aliases[i] && i < (_MAXALIASES-1)) {
-               if ((n = strlen(pe->p_aliases[i]) + 1) < (eob - cp)) {
-                       strcpy(cp, pe->p_aliases[i]);
-                       pptr->p_aliases[i] = cp;
-                       cp += n;
-               } else {
-                       break;
-               }
-               i++;
-       }
-       pptr->p_aliases[i] = NULL;
-
-       return (PROTO_R_OK);
-}
-#endif /* PROTOENT_DATA */
-#else /* PROTO_R_RETURN */
-       static int getprotoent_r_unknown_system = 0;
-#endif /* PROTO_R_RETURN */
-#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */
-/*! \file */
diff --git a/lib/bind/irs/getpwent.c b/lib/bind/irs/getpwent.c
deleted file mode 100644 (file)
index c70f99e..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: getpwent.c,v 1.3 2005/04/27 04:56:26 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(WANT_IRS_PW) || defined(__BIND_NOSTATIC)
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <pwd.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-/* Forward */
-
-static struct net_data * init(void);
-
-/* Public */
-
-struct passwd *
-getpwent(void) {
-       struct net_data *net_data = init();
-
-       return (getpwent_p(net_data));
-}
-
-struct passwd *
-getpwnam(const char *name) {
-       struct net_data *net_data = init();
-
-       return (getpwnam_p(name, net_data));
-}
-
-struct passwd *
-getpwuid(uid_t uid) {
-       struct net_data *net_data = init();
-
-       return (getpwuid_p(uid, net_data));
-}
-
-int
-setpassent(int stayopen) {
-       struct net_data *net_data = init();
-
-       return (setpassent_p(stayopen, net_data));
-}
-
-#ifdef SETPWENT_VOID
-void
-setpwent() {
-       struct net_data *net_data = init();
-
-       setpwent_p(net_data);
-}
-#else
-int
-setpwent() {
-       struct net_data *net_data = init();
-
-       return (setpwent_p(net_data));
-}
-#endif
-
-void
-endpwent() {
-       struct net_data *net_data = init();
-
-       endpwent_p(net_data);
-}
-
-/* Shared private. */
-
-struct passwd *
-getpwent_p(struct net_data *net_data) {
-       struct irs_pw *pw;
-
-       if (!net_data || !(pw = net_data->pw))
-               return (NULL);
-       net_data->pw_last = (*pw->next)(pw);
-       return (net_data->pw_last);
-}
-
-struct passwd *
-getpwnam_p(const char *name, struct net_data *net_data) {
-       struct irs_pw *pw;
-
-       if (!net_data || !(pw = net_data->pw))
-               return (NULL);
-       if (net_data->pw_stayopen && net_data->pw_last &&
-           !strcmp(net_data->pw_last->pw_name, name))
-               return (net_data->pw_last);
-       net_data->pw_last = (*pw->byname)(pw, name);
-       if (!net_data->pw_stayopen)
-               endpwent();
-       return (net_data->pw_last);
-}
-
-struct passwd *
-getpwuid_p(uid_t uid, struct net_data *net_data) {
-       struct irs_pw *pw;
-
-       if (!net_data || !(pw = net_data->pw))
-               return (NULL);
-       if (net_data->pw_stayopen && net_data->pw_last &&
-           net_data->pw_last->pw_uid == uid)
-               return (net_data->pw_last);
-       net_data->pw_last = (*pw->byuid)(pw, uid);
-       if (!net_data->pw_stayopen)
-               endpwent();
-       return (net_data->pw_last);
-}
-
-int
-setpassent_p(int stayopen, struct net_data *net_data) {
-       struct irs_pw *pw;
-
-       if (!net_data || !(pw = net_data->pw))
-               return (0);
-       (*pw->rewind)(pw);
-       net_data->pw_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-       return (1);
-}
-
-#ifdef SETPWENT_VOID
-void
-setpwent_p(struct net_data *net_data) {
-       (void) setpassent_p(0, net_data);
-}
-#else
-int
-setpwent_p(struct net_data *net_data) {
-       return (setpassent_p(0, net_data));
-}
-#endif
-
-void
-endpwent_p(struct net_data *net_data) {
-       struct irs_pw *pw;
-
-       if ((net_data != NULL) && ((pw = net_data->pw) != NULL))
-               (*pw->minimize)(pw);
-}
-
-/* Private */
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->pw) {
-               net_data->pw = (*net_data->irs->pw_map)(net_data->irs);
-
-               if (!net_data->pw || !net_data->res) {
- error: 
-                       errno = EIO;
-                       return (NULL);
-               }
-               (*net_data->pw->res_set)(net_data->pw, net_data->res, NULL);
-       }
-       
-       return (net_data);
-}
-
-#endif /* WANT_IRS_PW */
-/*! \file */
diff --git a/lib/bind/irs/getpwent_r.c b/lib/bind/irs/getpwent_r.c
deleted file mode 100644 (file)
index f754084..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getpwent_r.c,v 1.8 2005/04/27 04:56:26 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS) || !defined(WANT_IRS_PW)
-       static int getpwent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#if (defined(POSIX_GETPWNAM_R) || defined(POSIX_GETPWUID_R))
-#if defined(_POSIX_PTHREAD_SEMANTICS)
-       /* turn off solaris remapping in <grp.h> */
-#undef _POSIX_PTHREAD_SEMANTICS
-#include <pwd.h>
-#define _POSIX_PTHREAD_SEMANTICS 1
-#else
-#define _UNIX95 1
-#include <pwd.h>
-#endif
-#else
-#include <pwd.h>
-#endif
-#include <port_after.h>
-
-#ifdef PASS_R_RETURN
-
-static int 
-copy_passwd(struct passwd *, struct passwd *, char *buf, int buflen);
-
-/* POSIX 1003.1c */
-#ifdef POSIX_GETPWNAM_R
-int
-__posix_getpwnam_r(const char *login,  struct passwd *pwptr,
-               char *buf, size_t buflen, struct passwd **result) {
-#else
-int
-getpwnam_r(const char *login,  struct passwd *pwptr,
-               char *buf, size_t buflen, struct passwd **result) {
-#endif
-       struct passwd *pw = getpwnam(login);
-       int res;
-
-       if (pw == NULL) {
-               *result = NULL;
-               return (0);
-       }
-
-       res = copy_passwd(pw, pwptr, buf, buflen);
-       *result = res ? NULL : pwptr;
-       return (res);
-}
-
-#ifdef POSIX_GETPWNAM_R
-struct passwd *
-getpwnam_r(const char *login,  struct passwd *pwptr, char *buf, int buflen) {
-       struct passwd *pw = getpwnam(login);
-       int res;
-
-       if (pw == NULL)
-               return (NULL);
-
-       res = copy_passwd(pw, pwptr, buf, buflen);
-       return (res ? NULL : pwptr);
-}
-#endif
-
-/* POSIX 1003.1c */
-#ifdef POSIX_GETPWUID_R
-int
-__posix_getpwuid_r(uid_t uid, struct passwd *pwptr,
-               char *buf, int buflen, struct passwd **result) {
-#else
-int
-getpwuid_r(uid_t uid, struct passwd *pwptr,
-               char *buf, size_t buflen, struct passwd **result) {
-#endif
-       struct passwd *pw = getpwuid(uid);
-       int res;
-
-       if (pw == NULL) {
-               *result = NULL;
-               return (0);
-       }
-
-       res = copy_passwd(pw, pwptr, buf, buflen);
-       *result = res ? NULL : pwptr;
-       return (res);
-}
-
-#ifdef POSIX_GETPWUID_R
-struct passwd *
-getpwuid_r(uid_t uid,  struct passwd *pwptr, char *buf, int buflen) {
-       struct passwd *pw = getpwuid(uid);
-       int res;
-
-       if (pw == NULL)
-               return (NULL);
-
-       res = copy_passwd(pw, pwptr, buf, buflen);
-       return (res ? NULL : pwptr);
-}
-#endif
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-PASS_R_RETURN
-getpwent_r(struct passwd *pwptr, PASS_R_ARGS) {
-       struct passwd *pw = getpwent();
-       int res = 0;
-
-       if (pw == NULL)
-               return (PASS_R_BAD);
-
-       res = copy_passwd(pw, pwptr, buf, buflen);
-       return (res ? PASS_R_BAD : PASS_R_OK);
-}
-
-PASS_R_SET_RETURN
-#ifdef PASS_R_ENT_ARGS
-setpassent_r(int stayopen, PASS_R_ENT_ARGS)
-#else
-setpassent_r(int stayopen)
-#endif
-{
-
-       setpassent(stayopen);
-#ifdef PASS_R_SET_RESULT
-       return (PASS_R_SET_RESULT);
-#endif
-}
-
-PASS_R_SET_RETURN
-#ifdef PASS_R_ENT_ARGS
-setpwent_r(PASS_R_ENT_ARGS)
-#else
-setpwent_r(void)
-#endif
-{
-
-       setpwent();
-#ifdef PASS_R_SET_RESULT
-       return (PASS_R_SET_RESULT);
-#endif
-}
-
-PASS_R_END_RETURN
-#ifdef PASS_R_ENT_ARGS
-endpwent_r(PASS_R_ENT_ARGS)
-#else
-endpwent_r(void)
-#endif
-{
-
-       endpwent();
-       PASS_R_END_RESULT(PASS_R_OK);
-}
-
-
-#ifdef HAS_FGETPWENT
-PASS_R_RETURN
-fgetpwent_r(FILE *f, struct passwd *pwptr, PASS_R_COPY_ARGS) {
-       struct passwd *pw = fgetpwent(f);
-       int res = 0;
-
-       if (pw == NULL)
-               return (PASS_R_BAD);
-
-       res = copy_passwd(pw, pwptr, PASS_R_COPY);
-       return (res ? PASS_R_BAD : PASS_R_OK );
-}
-#endif
-
-/* Private */
-
-static int
-copy_passwd(struct passwd *pw, struct passwd *pwptr, char *buf, int buflen) {
-       char *cp;
-       int n;
-       int len;
-
-       /* Find out the amount of space required to store the answer. */
-       len = strlen(pw->pw_name) + 1;
-       len += strlen(pw->pw_passwd) + 1;
-#ifdef HAVE_PW_CLASS
-       len += strlen(pw->pw_class) + 1;
-#endif
-       len += strlen(pw->pw_gecos) + 1;
-       len += strlen(pw->pw_dir) + 1;
-       len += strlen(pw->pw_shell) + 1;
-       
-       if (len > buflen) {
-               errno = ERANGE;
-               return (ERANGE);
-       }
-
-       /* copy fixed atomic values*/
-       pwptr->pw_uid = pw->pw_uid;
-       pwptr->pw_gid = pw->pw_gid;
-#ifdef HAVE_PW_CHANGE
-       pwptr->pw_change = pw->pw_change;
-#endif
-#ifdef HAVE_PW_EXPIRE
-       pwptr->pw_expire = pw->pw_expire;
-#endif
-
-       cp = buf;
-
-       /* copy official name */
-       n = strlen(pw->pw_name) + 1;
-       strcpy(cp, pw->pw_name);
-       pwptr->pw_name = cp;
-       cp += n;
-
-       /* copy password */
-       n = strlen(pw->pw_passwd) + 1;
-       strcpy(cp, pw->pw_passwd);
-       pwptr->pw_passwd = cp;
-       cp += n;
-
-#ifdef HAVE_PW_CLASS
-       /* copy class */
-       n = strlen(pw->pw_class) + 1;
-       strcpy(cp, pw->pw_class);
-       pwptr->pw_class = cp;
-       cp += n;
-#endif
-
-       /* copy gecos */
-       n = strlen(pw->pw_gecos) + 1;
-       strcpy(cp, pw->pw_gecos);
-       pwptr->pw_gecos = cp;
-       cp += n;
-
-       /* copy directory */
-       n = strlen(pw->pw_dir) + 1;
-       strcpy(cp, pw->pw_dir);
-       pwptr->pw_dir = cp;
-       cp += n;
-
-       /* copy login shell */
-       n = strlen(pw->pw_shell) + 1;
-       strcpy(cp, pw->pw_shell);
-       pwptr->pw_shell = cp;
-       cp += n;
-
-       return (0);
-}
-#else /* PASS_R_RETURN */
-       static int getpwent_r_unknown_system = 0;
-#endif /* PASS_R_RETURN */
-#endif /* !def(_REENTRANT) || !def(DO_PTHREADS) || !def(WANT_IRS_PW) */
-/*! \file */
diff --git a/lib/bind/irs/getservent.c b/lib/bind/irs/getservent.c
deleted file mode 100644 (file)
index 8de0db3..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: getservent.c,v 1.4 2005/04/27 04:56:26 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(__BIND_NOSTATIC)
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-
-/* Forward */
-
-static struct net_data *init(void);
-
-/* Public */
-
-struct servent *
-getservent(void) {
-       struct net_data *net_data = init();
-
-       return (getservent_p(net_data));
-}
-
-struct servent *
-getservbyname(const char *name, const char *proto) {
-       struct net_data *net_data = init();
-
-       return (getservbyname_p(name, proto, net_data));
-}
-
-struct servent *
-getservbyport(int port, const char *proto) {
-       struct net_data *net_data = init();
-
-       return (getservbyport_p(port, proto, net_data));
-}
-
-void
-setservent(int stayopen) {
-       struct net_data *net_data = init();
-
-       setservent_p(stayopen, net_data);
-}
-
-void
-endservent() {
-       struct net_data *net_data = init();
-
-       endservent_p(net_data);
-}
-
-/* Shared private. */
-
-struct servent *
-getservent_p(struct net_data *net_data) {
-       struct irs_sv *sv;
-
-       if (!net_data || !(sv = net_data->sv))
-               return (NULL);
-       net_data->sv_last = (*sv->next)(sv);
-       return (net_data->sv_last);
-}
-
-struct servent *
-getservbyname_p(const char *name, const char *proto,
-               struct net_data *net_data) {
-       struct irs_sv *sv;
-       char **sap;
-
-       if (!net_data || !(sv = net_data->sv))
-               return (NULL);
-       if (net_data->sv_stayopen && net_data->sv_last)
-               if (!proto || !strcmp(net_data->sv_last->s_proto, proto)) {
-                       if (!strcmp(net_data->sv_last->s_name, name))
-                               return (net_data->sv_last);
-                       for (sap = net_data->sv_last->s_aliases;
-                            sap && *sap; sap++)
-                               if (!strcmp(name, *sap))
-                                       return (net_data->sv_last);
-               }
-       net_data->sv_last = (*sv->byname)(sv, name, proto);
-       if (!net_data->sv_stayopen)
-               endservent();
-       return (net_data->sv_last);
-}
-
-struct servent *
-getservbyport_p(int port, const char *proto, struct net_data *net_data) {
-       struct irs_sv *sv;
-
-       if (!net_data || !(sv = net_data->sv))
-               return (NULL);
-       if (net_data->sv_stayopen && net_data->sv_last)
-               if (port == net_data->sv_last->s_port &&
-                   ( !proto ||
-                    !strcmp(net_data->sv_last->s_proto, proto)))
-                       return (net_data->sv_last);
-       net_data->sv_last = (*sv->byport)(sv, port, proto);
-       return (net_data->sv_last);
-}
-
-void
-setservent_p(int stayopen, struct net_data *net_data) {
-       struct irs_sv *sv;
-
-       if (!net_data || !(sv = net_data->sv))
-               return;
-       (*sv->rewind)(sv);
-       net_data->sv_stayopen = (stayopen != 0);
-       if (stayopen == 0)
-               net_data_minimize(net_data);
-}
-
-void
-endservent_p(struct net_data *net_data) {
-       struct irs_sv *sv;
-
-       if ((net_data != NULL) && ((sv = net_data->sv) != NULL))
-               (*sv->minimize)(sv);
-}
-
-/* Private */
-
-static struct net_data *
-init() {
-       struct net_data *net_data;
-
-       if (!(net_data = net_data_init(NULL)))
-               goto error;
-       if (!net_data->sv) {
-               net_data->sv = (*net_data->irs->sv_map)(net_data->irs);
-
-               if (!net_data->sv || !net_data->res) {
- error:                
-                       errno = EIO;
-                       return (NULL);
-               }
-               (*net_data->sv->res_set)(net_data->sv, net_data->res, NULL);
-       }
-       
-       return (net_data);
-}
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/getservent_r.c b/lib/bind/irs/getservent_r.c
deleted file mode 100644 (file)
index 42d1e46..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: getservent_r.c,v 1.6 2006/08/01 01:14:16 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <port_before.h>
-#if !defined(_REENTRANT) || !defined(DO_PTHREADS)
-       static int getservent_r_not_required = 0;
-#else
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <port_after.h>
-
-#ifdef SERV_R_RETURN
-
-static SERV_R_RETURN 
-copy_servent(struct servent *, struct servent *, SERV_R_COPY_ARGS);
-
-SERV_R_RETURN
-getservbyname_r(const char *name, const char *proto,
-               struct servent *sptr, SERV_R_ARGS) {
-       struct servent *se = getservbyname(name, proto);
-#ifdef SERV_R_SETANSWER
-       int n = 0;
-       
-       if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = sptr;
-
-       return (n);
-#else
-       if (se == NULL)
-               return (SERV_R_BAD);
-
-       return (copy_servent(se, sptr, SERV_R_COPY));
-#endif
-}
-
-SERV_R_RETURN
-getservbyport_r(int port, const char *proto,
-               struct servent *sptr, SERV_R_ARGS) {
-       struct servent *se = getservbyport(port, proto);
-#ifdef SERV_R_SETANSWER
-       int n = 0;
-       
-       if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = sptr;
-
-       return (n);
-#else
-       if (se == NULL)
-               return (SERV_R_BAD);
-
-       return (copy_servent(se, sptr, SERV_R_COPY));
-#endif
-}
-
-/*%
- *     These assume a single context is in operation per thread.
- *     If this is not the case we will need to call irs directly
- *     rather than through the base functions.
- */
-
-SERV_R_RETURN
-getservent_r(struct servent *sptr, SERV_R_ARGS) {
-       struct servent *se = getservent();
-#ifdef SERV_R_SETANSWER
-       int n = 0;
-       
-       if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0)
-               *answerp = NULL;
-       else
-               *answerp = sptr;
-
-       return (n);
-#else
-       if (se == NULL)
-               return (SERV_R_BAD);
-
-       return (copy_servent(se, sptr, SERV_R_COPY));
-#endif
-}
-
-SERV_R_SET_RETURN
-#ifdef SERV_R_ENT_ARGS
-setservent_r(int stay_open, SERV_R_ENT_ARGS)
-#else
-setservent_r(int stay_open)
-#endif
-{
-#ifdef SERV_R_ENT_UNUSED
-       SERV_R_ENT_UNUSED;
-#endif
-       setservent(stay_open);
-#ifdef SERV_R_SET_RESULT
-       return (SERV_R_SET_RESULT);
-#endif
-}
-
-SERV_R_END_RETURN
-#ifdef SERV_R_ENT_ARGS
-endservent_r(SERV_R_ENT_ARGS)
-#else
-endservent_r()
-#endif
-{
-#ifdef SERV_R_ENT_UNUSED
-       SERV_R_ENT_UNUSED;
-#endif
-       endservent();
-       SERV_R_END_RESULT(SERV_R_OK);
-}
-
-/* Private */
-
-#ifndef SERVENT_DATA
-static SERV_R_RETURN
-copy_servent(struct servent *se, struct servent *sptr, SERV_R_COPY_ARGS) {
-       char *cp;
-       int i, n;
-       int numptr, len;
-
-       /* Find out the amount of space required to store the answer. */
-       numptr = 1; /*%< NULL ptr */
-       len = (char *)ALIGN(buf) - buf;
-       for (i = 0; se->s_aliases[i]; i++, numptr++) {
-               len += strlen(se->s_aliases[i]) + 1;
-       }
-       len += strlen(se->s_name) + 1;
-       len += strlen(se->s_proto) + 1;
-       len += numptr * sizeof(char*);
-       
-       if (len > (int)buflen) {
-               errno = ERANGE;
-               return (SERV_R_BAD);
-       }
-
-       /* copy port value */
-       sptr->s_port = se->s_port;
-
-       cp = (char *)ALIGN(buf) + numptr * sizeof(char *);
-
-       /* copy official name */
-       n = strlen(se->s_name) + 1;
-       strcpy(cp, se->s_name);
-       sptr->s_name = cp;
-       cp += n;
-
-       /* copy aliases */
-       sptr->s_aliases = (char **)ALIGN(buf);
-       for (i = 0 ; se->s_aliases[i]; i++) {
-               n = strlen(se->s_aliases[i]) + 1;
-               strcpy(cp, se->s_aliases[i]);
-               sptr->s_aliases[i] = cp;
-               cp += n;
-       }
-       sptr->s_aliases[i] = NULL;
-
-       /* copy proto */
-       n = strlen(se->s_proto) + 1;
-       strcpy(cp, se->s_proto);
-       sptr->s_proto = cp;
-       cp += n;
-
-       return (SERV_R_OK);
-}
-#else /* !SERVENT_DATA */
-static int
-copy_servent(struct servent *se, struct servent *sptr, SERV_R_COPY_ARGS) {
-       char *cp, *eob;
-       int i, n;
-
-       /* copy port value */
-       sptr->s_port = se->s_port;
-
-       /* copy official name */
-       cp = sdptr->line;
-       eob = sdptr->line + sizeof(sdptr->line);
-       if ((n = strlen(se->s_name) + 1) < (eob - cp)) {
-               strcpy(cp, se->s_name);
-               sptr->s_name = cp;
-               cp += n;
-       } else {
-               return (-1);
-       }
-
-       /* copy aliases */
-       i = 0;
-       sptr->s_aliases = sdptr->serv_aliases;
-       while (se->s_aliases[i] && i < (_MAXALIASES-1)) {
-               if ((n = strlen(se->s_aliases[i]) + 1) < (eob - cp)) {
-                       strcpy(cp, se->s_aliases[i]);
-                       sptr->s_aliases[i] = cp;
-                       cp += n;
-               } else {
-                       break;
-               }
-               i++;
-       }
-       sptr->s_aliases[i] = NULL;
-
-       /* copy proto */
-       if ((n = strlen(se->s_proto) + 1) < (eob - cp)) {
-               strcpy(cp, se->s_proto);
-               sptr->s_proto = cp;
-               cp += n;
-       } else {
-               return (-1);
-       }
-
-       return (SERV_R_OK);
-}
-#endif /* !SERVENT_DATA */
-#else /*SERV_R_RETURN */
-       static int getservent_r_unknown_system = 0;
-#endif /*SERV_R_RETURN */
-#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */
-/*! \file */
diff --git a/lib/bind/irs/hesiod.c b/lib/bind/irs/hesiod.c
deleted file mode 100644 (file)
index 80d669d..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: hesiod.c,v 1.7 2005/07/28 06:51:48 marka Exp $";
-#endif
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-
-/*! \file
- * \brief
- * hesiod.c --- the core portion of the hesiod resolver.
- *
- * This file is derived from the hesiod library from Project Athena;
- * It has been extensively rewritten by Theodore Ts'o to have a more
- * thread-safe interface.
- * \author
- * This file is primarily maintained by &lt;tytso@mit.edu&gt; and &lt;ghudson@mit.edu&gt;.
- */
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#include "pathnames.h"
-#include "hesiod.h"
-#include "hesiod_p.h"
-
-/* Forward */
-
-int            hesiod_init(void **context);
-void           hesiod_end(void *context);
-char *         hesiod_to_bind(void *context, const char *name,
-                              const char *type);
-char **                hesiod_resolve(void *context, const char *name,
-                              const char *type);
-void           hesiod_free_list(void *context, char **list);
-
-static int     parse_config_file(struct hesiod_p *ctx, const char *filename);
-static char ** get_txt_records(struct hesiod_p *ctx, int class,
-                               const char *name);
-static int     init(struct hesiod_p *ctx);
-
-/* Public */
-
-/*%
- * This function is called to initialize a hesiod_p.
- */
-int
-hesiod_init(void **context) {
-       struct hesiod_p *ctx;
-       char *cp;
-
-       ctx = malloc(sizeof(struct hesiod_p));
-       if (ctx == 0) {
-               errno = ENOMEM;
-               return (-1);
-       }
-
-       memset(ctx, 0, sizeof (*ctx));
-
-       if (parse_config_file(ctx, _PATH_HESIOD_CONF) < 0) {
-#ifdef DEF_RHS
-               /*
-                * Use compiled in defaults.
-                */
-               ctx->LHS = malloc(strlen(DEF_LHS) + 1);
-               ctx->RHS = malloc(strlen(DEF_RHS) + 1);
-               if (ctx->LHS == NULL || ctx->RHS == NULL) {
-                       errno = ENOMEM;
-                       goto cleanup;
-               }
-               strcpy(ctx->LHS, DEF_LHS);      /* (checked) */
-               strcpy(ctx->RHS, DEF_RHS);      /* (checked) */
-#else
-               goto cleanup;
-#endif
-       }
-       /*
-        * The default RHS can be overridden by an environment
-        * variable.
-        */
-       if ((cp = getenv("HES_DOMAIN")) != NULL) {
-               size_t RHSlen = strlen(cp) + 2;
-               if (ctx->RHS)
-                       free(ctx->RHS);
-               ctx->RHS = malloc(RHSlen);
-               if (!ctx->RHS) {
-                       errno = ENOMEM;
-                       goto cleanup;
-               }
-               if (cp[0] == '.') {
-                       strcpy(ctx->RHS, cp);   /* (checked) */
-               } else {
-                       strcpy(ctx->RHS, ".");  /* (checked) */
-                       strcat(ctx->RHS, cp);   /* (checked) */
-               }
-       }
-
-       /*
-        * If there is no default hesiod realm set, we return an
-        * error.
-        */
-       if (!ctx->RHS) {
-               errno = ENOEXEC;
-               goto cleanup;
-       }
-       
-#if 0
-       if (res_ninit(ctx->res) < 0)
-               goto cleanup;
-#endif
-
-       *context = ctx;
-       return (0);
-
- cleanup:
-       hesiod_end(ctx);
-       return (-1);
-}
-
-/*%
- * This function deallocates the hesiod_p
- */
-void
-hesiod_end(void *context) {
-       struct hesiod_p *ctx = (struct hesiod_p *) context;
-       int save_errno = errno;
-
-       if (ctx->res)
-               res_nclose(ctx->res);
-       if (ctx->RHS)
-               free(ctx->RHS);
-       if (ctx->LHS)
-               free(ctx->LHS);
-       if (ctx->res && ctx->free_res)
-               (*ctx->free_res)(ctx->res);
-       free(ctx);
-       errno = save_errno;
-}
-
-/*%
- * This function takes a hesiod (name, type) and returns a DNS
- * name which is to be resolved.
- */
-char *
-hesiod_to_bind(void *context, const char *name, const char *type) {
-       struct hesiod_p *ctx = (struct hesiod_p *) context;
-       char *bindname;
-       char **rhs_list = NULL;
-       const char *RHS, *cp;
-
-       /* Decide what our RHS is, and set cp to the end of the actual name. */
-       if ((cp = strchr(name, '@')) != NULL) {
-               if (strchr(cp + 1, '.'))
-                       RHS = cp + 1;
-               else if ((rhs_list = hesiod_resolve(context, cp + 1,
-                   "rhs-extension")) != NULL)
-                       RHS = *rhs_list;
-               else {
-                       errno = ENOENT;
-                       return (NULL);
-               }
-       } else {
-               RHS = ctx->RHS;
-               cp = name + strlen(name);
-       }
-
-       /*
-        * Allocate the space we need, including up to three periods and
-        * the terminating NUL.
-        */
-       if ((bindname = malloc((cp - name) + strlen(type) + strlen(RHS) +
-           (ctx->LHS ? strlen(ctx->LHS) : 0) + 4)) == NULL) {
-               errno = ENOMEM;
-               if (rhs_list)
-                       hesiod_free_list(context, rhs_list);
-               return NULL;
-       }
-
-       /* Now put together the DNS name. */
-       memcpy(bindname, name, cp - name);
-       bindname[cp - name] = '\0';
-       strcat(bindname, ".");
-       strcat(bindname, type);
-       if (ctx->LHS) {
-               if (ctx->LHS[0] != '.')
-                       strcat(bindname, ".");
-               strcat(bindname, ctx->LHS);
-       }
-       if (RHS[0] != '.')
-               strcat(bindname, ".");
-       strcat(bindname, RHS);
-
-       if (rhs_list)
-               hesiod_free_list(context, rhs_list);
-
-       return (bindname);
-}
-
-/*%
- * This is the core function.  Given a hesiod (name, type), it
- * returns an array of strings returned by the resolver.
- */
-char **
-hesiod_resolve(void *context, const char *name, const char *type) {
-       struct hesiod_p *ctx = (struct hesiod_p *) context;
-       char *bindname = hesiod_to_bind(context, name, type);
-       char **retvec;
-
-       if (bindname == NULL)
-               return (NULL);
-       if (init(ctx) == -1) {
-               free(bindname);
-               return (NULL);
-       }
-
-       if ((retvec = get_txt_records(ctx, C_IN, bindname))) {
-               free(bindname);
-               return (retvec);
-       }
-       
-       if (errno != ENOENT)
-               return (NULL);
-
-       retvec = get_txt_records(ctx, C_HS, bindname);
-       free(bindname);
-       return (retvec);
-}
-
-void
-hesiod_free_list(void *context, char **list) {
-       char **p;
-
-       UNUSED(context);
-
-       for (p = list; *p; p++)
-               free(*p);
-       free(list);
-}
-
-/*%
- * This function parses the /etc/hesiod.conf file
- */
-static int
-parse_config_file(struct hesiod_p *ctx, const char *filename) {
-       char *key, *data, *cp, **cpp;
-       char buf[MAXDNAME+7];
-       FILE *fp;
-
-       /*
-        * Clear the existing configuration variable, just in case
-        * they're set.
-        */
-       if (ctx->RHS)
-               free(ctx->RHS);
-       if (ctx->LHS)
-               free(ctx->LHS);
-       ctx->RHS = ctx->LHS = 0;
-
-       /*
-        * Now open and parse the file...
-        */
-       if (!(fp = fopen(filename, "r")))
-               return (-1);
-       
-       while (fgets(buf, sizeof(buf), fp) != NULL) {
-               cp = buf;
-               if (*cp == '#' || *cp == '\n' || *cp == '\r')
-                       continue;
-               while(*cp == ' ' || *cp == '\t')
-                       cp++;
-               key = cp;
-               while(*cp != ' ' && *cp != '\t' && *cp != '=')
-                       cp++;
-               *cp++ = '\0';
-               
-               while(*cp == ' ' || *cp == '\t' || *cp == '=')
-                       cp++;
-               data = cp;
-               while(*cp != ' ' && *cp != '\n' && *cp != '\r')
-                       cp++;
-               *cp++ = '\0';
-
-               if (strcmp(key, "lhs") == 0)
-                       cpp = &ctx->LHS;
-               else if (strcmp(key, "rhs") == 0)
-                       cpp = &ctx->RHS;
-               else
-                       continue;
-
-               *cpp = malloc(strlen(data) + 1);
-               if (!*cpp) {
-                       errno = ENOMEM;
-                       goto cleanup;
-               }
-               strcpy(*cpp, data);
-       }
-       fclose(fp);
-       return (0);
-       
- cleanup:
-       fclose(fp);
-       if (ctx->RHS)
-               free(ctx->RHS);
-       if (ctx->LHS)
-               free(ctx->LHS);
-       ctx->RHS = ctx->LHS = 0;
-       return (-1);
-}
-
-/*%
- * Given a DNS class and a DNS name, do a lookup for TXT records, and
- * return a list of them.
- */
-static char **
-get_txt_records(struct hesiod_p *ctx, int class, const char *name) {
-       struct {
-               int type;               /*%< RR type */
-               int class;              /*%< RR class */
-               int dlen;               /*%< len of data section */
-               u_char *data;           /*%< pointer to data */
-       } rr;
-       HEADER *hp;
-       u_char qbuf[MAX_HESRESP], abuf[MAX_HESRESP];
-       u_char *cp, *erdata, *eom;
-       char *dst, *edst, **list;
-       int ancount, qdcount;
-       int i, j, n, skip;
-
-       /*
-        * Construct the query and send it.
-        */
-       n = res_nmkquery(ctx->res, QUERY, name, class, T_TXT, NULL, 0,
-                        NULL, qbuf, MAX_HESRESP);
-       if (n < 0) {
-               errno = EMSGSIZE;
-               return (NULL);
-       }
-       n = res_nsend(ctx->res, qbuf, n, abuf, MAX_HESRESP);
-       if (n < 0) {
-               errno = ECONNREFUSED;
-               return (NULL);
-       }
-       if (n < HFIXEDSZ) {
-               errno = EMSGSIZE;
-               return (NULL);
-       }
-
-       /*
-        * OK, parse the result.
-        */
-       hp = (HEADER *) abuf;
-       ancount = ntohs(hp->ancount);
-       qdcount = ntohs(hp->qdcount);
-       cp = abuf + sizeof(HEADER);
-       eom = abuf + n;
-
-       /* Skip query, trying to get to the answer section which follows. */
-       for (i = 0; i < qdcount; i++) {
-               skip = dn_skipname(cp, eom);
-               if (skip < 0 || cp + skip + QFIXEDSZ > eom) {
-                       errno = EMSGSIZE;
-                       return (NULL);
-               }
-               cp += skip + QFIXEDSZ;
-       }
-
-       list = malloc((ancount + 1) * sizeof(char *));
-       if (!list) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       j = 0;
-       for (i = 0; i < ancount; i++) {
-               skip = dn_skipname(cp, eom);
-               if (skip < 0) {
-                       errno = EMSGSIZE;
-                       goto cleanup;
-               }
-               cp += skip;
-               if (cp + 3 * INT16SZ + INT32SZ > eom) {
-                       errno = EMSGSIZE;
-                       goto cleanup;
-               }
-               rr.type = ns_get16(cp);
-               cp += INT16SZ;
-               rr.class = ns_get16(cp);
-               cp += INT16SZ + INT32SZ;        /*%< skip the ttl, too */
-               rr.dlen = ns_get16(cp);
-               cp += INT16SZ;
-               if (cp + rr.dlen > eom) {
-                       errno = EMSGSIZE;
-                       goto cleanup;
-               }
-               rr.data = cp;
-               cp += rr.dlen;
-               if (rr.class != class || rr.type != T_TXT)
-                       continue;
-               if (!(list[j] = malloc(rr.dlen)))
-                       goto cleanup;
-               dst = list[j++];
-               edst = dst + rr.dlen;
-               erdata = rr.data + rr.dlen;
-               cp = rr.data;
-               while (cp < erdata) {
-                       n = (unsigned char) *cp++;
-                       if (cp + n > eom || dst + n > edst) {
-                               errno = EMSGSIZE;
-                               goto cleanup;
-                       }
-                       memcpy(dst, cp, n);
-                       cp += n;
-                       dst += n;
-               }
-               if (cp != erdata) {
-                       errno = EMSGSIZE;
-                       goto cleanup;
-               }
-               *dst = '\0';
-       }
-       list[j] = NULL;
-       if (j == 0) {
-               errno = ENOENT;
-               goto cleanup;
-       }
-       return (list);
-
- cleanup:
-       for (i = 0; i < j; i++)
-               free(list[i]);
-       free(list);
-       return (NULL);
-}
-
-struct __res_state *
-__hesiod_res_get(void *context) {
-       struct hesiod_p *ctx = context;
-
-       if (!ctx->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (res == NULL) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               __hesiod_res_set(ctx, res, free);
-       }
-
-       return (ctx->res);
-}
-
-void
-__hesiod_res_set(void *context, struct __res_state *res,
-                void (*free_res)(void *)) {
-       struct hesiod_p *ctx = context;
-
-       if (ctx->res && ctx->free_res) {
-               res_nclose(ctx->res);
-               (*ctx->free_res)(ctx->res);
-       }
-
-       ctx->res = res;
-       ctx->free_res = free_res;
-}
-
-static int
-init(struct hesiod_p *ctx) {
-       
-       if (!ctx->res && !__hesiod_res_get(ctx))
-               return (-1);
-
-       if (((ctx->res->options & RES_INIT) == 0U) &&
-           (res_ninit(ctx->res) == -1))
-               return (-1);
-
-       return (0);
-}
diff --git a/lib/bind/irs/hesiod_p.h b/lib/bind/irs/hesiod_p.h
deleted file mode 100644 (file)
index 99da15d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: hesiod_p.h,v 1.3 2005/04/27 04:56:27 sra Exp $
- */
-
-#ifndef _HESIOD_P_H_INCLUDED
-#define _HESIOD_P_H_INCLUDED
-
-/** \file
- * \brief
- * hesiod_p.h -- private definitions for the hesiod library.
- *
- * \author
- * This file is primarily maintained by tytso@mit.edu and ghudson@mit.edu.
- */
-
-#define DEF_RHS                ".Athena.MIT.EDU"       /*%< Defaults if HESIOD_CONF */
-#define DEF_LHS                ".ns"                   /*%<    file is not */
-                                               /*%<    present. */
-struct hesiod_p {
-       char *          LHS;            /*%< normally ".ns" */
-       char *          RHS;            /*%< AKA the default hesiod domain */
-       struct __res_state * res;       /*%< resolver context */
-       void            (*free_res)(void *);
-       void            (*res_set)(struct hesiod_p *, struct __res_state *,
-                                  void (*)(void *));
-       struct __res_state * (*res_get)(struct hesiod_p *);
-};
-
-#define MAX_HESRESP    1024
-
-#endif /*_HESIOD_P_H_INCLUDED*/
diff --git a/lib/bind/irs/irp.c b/lib/bind/irs/irp.c
deleted file mode 100644 (file)
index bc21278..0000000
+++ /dev/null
@@ -1,583 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996, 1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: irp.c,v 1.11 2008/02/28 05:36:10 marka Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <syslog.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include <ctype.h>
-#include <unistd.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-#include <irp.h>
-
-#include "irs_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-/* Forward. */
-
-static void            irp_close(struct irs_acc *);
-
-#define LINEINCR 128
-
-#if !defined(SUN_LEN)
-#define SUN_LEN(su) \
-       (sizeof (*(su)) - sizeof ((su)->sun_path) + strlen((su)->sun_path))
-#endif
-
-
-/* Public */
-
-
-/* send errors to syslog if true. */
-int irp_log_errors = 1;
-
-/*%
- * This module handles the irp module connection to irpd.
- *
- * The client expects a synchronous interface to functions like
- * getpwnam(3), so we can't use the ctl_* i/o library on this end of
- * the wire (it's used in the server).
- */
-
-/*%
- * irs_acc *irs_irp_acc(const char *options);
- *
- *     Initialize the irp module.
- */
-struct irs_acc *
-irs_irp_acc(const char *options) {
-       struct irs_acc *acc;
-       struct irp_p *irp;
-
-       UNUSED(options);
-
-       if (!(acc = memget(sizeof *acc))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(acc, 0x5e, sizeof *acc);
-       if (!(irp = memget(sizeof *irp))) {
-               errno = ENOMEM;
-               free(acc);
-               return (NULL);
-       }
-       irp->inlast = 0;
-       irp->incurr = 0;
-       irp->fdCxn = -1;
-       acc->private = irp;
-
-#ifdef WANT_IRS_GR
-       acc->gr_map = irs_irp_gr;
-#else
-       acc->gr_map = NULL;
-#endif
-#ifdef WANT_IRS_PW
-       acc->pw_map = irs_irp_pw;
-#else
-       acc->pw_map = NULL;
-#endif
-       acc->sv_map = irs_irp_sv;
-       acc->pr_map = irs_irp_pr;
-       acc->ho_map = irs_irp_ho;
-       acc->nw_map = irs_irp_nw;
-       acc->ng_map = irs_irp_ng;
-       acc->close = irp_close;
-       return (acc);
-}
-
-
-int
-irs_irp_connection_setup(struct irp_p *cxndata, int *warned) {
-       if (irs_irp_is_connected(cxndata)) {
-               return (0);
-       } else if (irs_irp_connect(cxndata) != 0) {
-               if (warned != NULL && !*warned) {
-                       syslog(LOG_ERR, "irpd connection failed: %m\n");
-                       (*warned)++;
-               }
-
-               return (-1);
-       }
-
-       return (0);
-}
-
-/*%
- * int irs_irp_connect(void);
- *
- *     Sets up the connection to the remote irpd server.
- *
- * Returns:
- *
- *     0 on success, -1 on failure.
- *
- */
-int
-irs_irp_connect(struct irp_p *pvt) {
-       int flags;
-       struct sockaddr *addr;
-       struct sockaddr_in iaddr;
-#ifndef NO_SOCKADDR_UN
-       struct sockaddr_un uaddr;
-#endif
-       long ipaddr;
-       const char *irphost;
-       int code;
-       char text[256];
-       int socklen = 0;
-
-       if (pvt->fdCxn != -1) {
-               perror("fd != 1");
-               return (-1);
-       }
-
-#ifndef NO_SOCKADDR_UN
-       memset(&uaddr, 0, sizeof uaddr);
-#endif
-       memset(&iaddr, 0, sizeof iaddr);
-
-       irphost = getenv(IRPD_HOST_ENV);
-       if (irphost == NULL) {
-               irphost = "127.0.0.1";
-       }
-
-#ifndef NO_SOCKADDR_UN
-       if (irphost[0] == '/') {
-               addr = (struct sockaddr *)&uaddr;
-               strncpy(uaddr.sun_path, irphost, sizeof uaddr.sun_path);
-               uaddr.sun_family = AF_UNIX;
-               socklen = SUN_LEN(&uaddr);
-#ifdef HAVE_SA_LEN
-               uaddr.sun_len = socklen;
-#endif
-       } else
-#endif
-       {
-               if (inet_pton(AF_INET, irphost, &ipaddr) != 1) {
-                       errno = EADDRNOTAVAIL;
-                       perror("inet_pton");
-                       return (-1);
-               }
-
-               addr = (struct sockaddr *)&iaddr;
-               socklen = sizeof iaddr;
-#ifdef HAVE_SA_LEN
-               iaddr.sin_len = socklen;
-#endif
-               iaddr.sin_family = AF_INET;
-               iaddr.sin_port = htons(IRPD_PORT);
-               iaddr.sin_addr.s_addr = ipaddr;
-       }
-
-
-       pvt->fdCxn = socket(addr->sa_family, SOCK_STREAM, PF_UNSPEC);
-       if (pvt->fdCxn < 0) {
-               perror("socket");
-               return (-1);
-       }
-
-       if (connect(pvt->fdCxn, addr, socklen) != 0) {
-               perror("connect");
-               return (-1);
-       }
-
-       flags = fcntl(pvt->fdCxn, F_GETFL, 0);
-       if (flags < 0) {
-               close(pvt->fdCxn);
-               perror("close");
-               return (-1);
-       }
-
-#if 0
-       flags |= O_NONBLOCK;
-       if (fcntl(pvt->fdCxn, F_SETFL, flags) < 0) {
-               close(pvt->fdCxn);
-               perror("fcntl");
-               return (-1);
-       }
-#endif
-
-       code = irs_irp_read_response(pvt, text, sizeof text);
-       if (code != IRPD_WELCOME_CODE) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "Connection failed: %s", text);
-               }
-               irs_irp_disconnect(pvt);
-               return (-1);
-       }
-
-       return (0);
-}
-
-/*%
- * int irs_irp_is_connected(struct irp_p *pvt);
- *
- * Returns:
- *
- *     Non-zero if streams are setup to remote.
- *
- */
-
-int
-irs_irp_is_connected(struct irp_p *pvt) {
-       return (pvt->fdCxn >= 0);
-}
-
-/*%
- * void
- * irs_irp_disconnect(struct irp_p *pvt);
- *
- *     Closes streams to remote.
- */
-
-void
-irs_irp_disconnect(struct irp_p *pvt) {
-       if (pvt->fdCxn != -1) {
-               close(pvt->fdCxn);
-               pvt->fdCxn = -1;
-       }
-}
-
-
-
-int
-irs_irp_read_line(struct irp_p *pvt, char *buffer, int len) {
-       char *realstart = &pvt->inbuffer[0];
-       char *p, *start, *end;
-       int spare;
-       int i;
-       int buffpos = 0;
-       int left = len - 1;
-
-       while (left > 0) {
-               start = p = &pvt->inbuffer[pvt->incurr];
-               end = &pvt->inbuffer[pvt->inlast];
-
-               while (p != end && *p != '\n')
-                       p++;
-
-               if (p == end) {
-                       /* Found no newline so shift data down if necessary
-                        * and append new data to buffer
-                        */
-                       if (start > realstart) {
-                               memmove(realstart, start, end - start);
-                               pvt->inlast = end - start;
-                               start = realstart;
-                               pvt->incurr = 0;
-                               end = &pvt->inbuffer[pvt->inlast];
-                       }
-
-                       spare = sizeof (pvt->inbuffer) - pvt->inlast;
-
-                       p = end;
-                       i = read(pvt->fdCxn, end, spare);
-                       if (i < 0) {
-                               close(pvt->fdCxn);
-                               pvt->fdCxn = -1;
-                               return (buffpos > 0 ? buffpos : -1);
-                       } else if (i == 0) {
-                               return (buffpos);
-                       }
-
-                       end += i;
-                       pvt->inlast += i;
-
-                       while (p != end && *p != '\n')
-                               p++;
-               }
-
-               if (p == end) {
-                       /* full buffer and still no newline */
-                       i = sizeof pvt->inbuffer;
-               } else {
-                       /* include newline */
-                       i = p - start + 1;
-               }
-
-               if (i > left)
-                       i = left;
-               memcpy(buffer + buffpos, start, i);
-               pvt->incurr += i;
-               buffpos += i;
-               buffer[buffpos] = '\0';
-
-               if (p != end) {
-                       left = 0;
-               } else {
-                       left -= i;
-               }
-       }
-
-#if 0
-       fprintf(stderr, "read line: %s\n", buffer);
-#endif
-       return (buffpos);
-}
-
-/*%
- * int irp_read_response(struct irp_p *pvt);
- *
- * Returns:
- *
- *     The number found at the beginning of the line read from
- *     FP. 0 on failure(0 is not a legal response code). The
- *     rest of the line is discarded.
- *
- */
-
-int
-irs_irp_read_response(struct irp_p *pvt, char *text, size_t textlen) {
-       char line[1024];
-       int code;
-       char *p;
-
-       if (irs_irp_read_line(pvt, line, sizeof line) <= 0) {
-               return (0);
-       }
-
-       p = strchr(line, '\n');
-       if (p == NULL) {
-               return (0);
-       }
-
-       if (sscanf(line, "%d", &code) != 1) {
-               code = 0;
-       } else if (text != NULL && textlen > 0U) {
-               p = line;
-               while (isspace((unsigned char)*p)) p++;
-               while (isdigit((unsigned char)*p)) p++;
-               while (isspace((unsigned char)*p)) p++;
-               strncpy(text, p, textlen - 1);
-               p[textlen - 1] = '\0';
-       }
-
-       return (code);
-}
-
-/*%
- * char *irp_read_body(struct irp_p *pvt, size_t *size);
- *
- *     Read in the body of a response. Terminated by a line with
- *     just a dot on it. Lines should be terminated with a CR-LF
- *     sequence, but we're nt piccky if the CR is missing.
- *     No leading dot escaping is done as the protcol doesn't
- *     use leading dots anywhere.
- *
- * Returns:
- *
- *     Pointer to null-terminated buffer allocated by memget.
- *     *SIZE is set to the length of the buffer.
- *
- */
-
-char *
-irs_irp_read_body(struct irp_p *pvt, size_t *size) {
-       char line[1024];
-       u_int linelen;
-       size_t len = LINEINCR;
-       char *buffer = memget(len);
-       int idx = 0;
-
-       if (buffer == NULL)
-               return (NULL);
-
-       for (;;) {
-               if (irs_irp_read_line(pvt, line, sizeof line) <= 0 ||
-                   strchr(line, '\n') == NULL)
-                       goto death;
-
-               linelen = strlen(line);
-
-               if (line[linelen - 1] != '\n')
-                       goto death;
-
-               /* We're not strict about missing \r. Should we be??  */
-               if (linelen > 2 && line[linelen - 2] == '\r') {
-                       line[linelen - 2] = '\n';
-                       line[linelen - 1] = '\0';
-                       linelen--;
-               }
-
-               if (linelen == 2 && line[0] == '.') {
-                       *size = len;
-                       buffer[idx] = '\0';
-
-                       return (buffer);
-               }
-
-               if (linelen > (len - (idx + 1))) {
-                       char *p = memget(len + LINEINCR);
-
-                       if (p == NULL)
-                               goto death;
-                       memcpy(p, buffer, len);
-                       memput(buffer, len);
-                       buffer = p;
-                       len += LINEINCR;
-               }
-
-               memcpy(buffer + idx, line, linelen);
-               idx += linelen;
-       }
- death:
-       memput(buffer, len);
-       return (NULL);
-}
-
-/*%
- * int irs_irp_get_full_response(struct irp_p *pvt, int *code,
- *                     char **body, size_t *bodylen);
- *
- *     Gets the response to a command. If the response indicates
- *     there's a body to follow(code % 10 == 1), then the
- *     body buffer is allcoated with memget and stored in
- *     *BODY. The length of the allocated body buffer is stored
- *     in *BODY. The caller must give the body buffer back to
- *     memput when done. The results code is stored in *CODE.
- *
- * Returns:
- *
- *     0 if a result was read. -1 on some sort of failure.
- *
- */
-
-int
-irs_irp_get_full_response(struct irp_p *pvt, int *code, char *text,
-                         size_t textlen, char **body, size_t *bodylen) {
-       int result = irs_irp_read_response(pvt, text, textlen);
-
-       *body = NULL;
-
-       if (result == 0) {
-               return (-1);
-       }
-
-       *code = result;
-
-       /* Code that matches 2xx is a good result code.
-        * Code that matches xx1 means there's a response body coming.
-        */
-       if ((result / 100) == 2 && (result % 10) == 1) {
-               *body = irs_irp_read_body(pvt, bodylen);
-               if (*body == NULL) {
-                       return (-1);
-               }
-       }
-
-       return (0);
-}
-
-/*%
- * int irs_irp_send_command(struct irp_p *pvt, const char *fmt, ...);
- *
- *     Sends command to remote connected via the PVT
- *     structure. FMT and args after it are fprintf-like
- *     arguments for formatting.
- *
- * Returns:
- *
- *     0 on success, -1 on failure.
- */
-
-int
-irs_irp_send_command(struct irp_p *pvt, const char *fmt, ...) {
-       va_list ap;
-       char buffer[1024];
-       int pos = 0;
-       int i, todo;
-
-
-       if (pvt->fdCxn < 0) {
-               return (-1);
-       }
-
-       va_start(ap, fmt);
-       (void) vsprintf(buffer, fmt, ap);
-       todo = strlen(buffer);
-       va_end(ap);
-       if (todo > (int)sizeof(buffer) - 3) {
-               syslog(LOG_CRIT, "memory overrun in irs_irp_send_command()");
-               exit(1);
-       }
-       strcat(buffer, "\r\n");
-       todo = strlen(buffer);
-
-       while (todo > 0) {
-               i = write(pvt->fdCxn, buffer + pos, todo);
-#if 0
-               /* XXX brister */
-               fprintf(stderr, "Wrote: \"");
-               fwrite(buffer + pos, sizeof (char), todo, stderr);
-               fprintf(stderr, "\"\n");
-#endif
-               if (i < 0) {
-                       close(pvt->fdCxn);
-                       pvt->fdCxn = -1;
-                       return (-1);
-               }
-               todo -= i;
-       }
-
-       return (0);
-}
-
-
-/* Methods */
-
-/*%
- * void irp_close(struct irs_acc *this)
- *
- */
-
-static void
-irp_close(struct irs_acc *this) {
-       struct irp_p *irp = (struct irp_p *)this->private;
-
-       if (irp != NULL) {
-               irs_irp_disconnect(irp);
-               memput(irp, sizeof *irp);
-       }
-
-       memput(this, sizeof *this);
-}
-
-
-
-
-/*! \file */
diff --git a/lib/bind/irs/irp_gr.c b/lib/bind/irs/irp_gr.c
deleted file mode 100644 (file)
index 1f40e76..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright(c) 1996, 1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_gr.c,v 1.4 2005/04/27 04:56:27 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <syslog.h>
-#include <sys/param.h>
-#include <sys/types.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <grp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/memcluster.h>
-#include <isc/irpmarshall.h>
-
-#include "irs_p.h"
-#include "lcl_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-
-/* Types. */
-
-/*! \file 
- * \brief
- * Module for the getnetgrent(3) family to use when connected to a
- * remote irp daemon.
- * \brief
- * See irpd.c for justification of caching done here.
- *
- */
-
-struct pvt {
-       struct irp_p   *girpdata;       /*%< global IRP data */
-       int             warned;
-       struct group    group;
-};
-
-/* Forward. */
-
-static void            gr_close(struct irs_gr *);
-static struct group *  gr_next(struct irs_gr *);
-static struct group *  gr_byname(struct irs_gr *, const char *);
-static struct group *  gr_bygid(struct irs_gr *, gid_t);
-static void            gr_rewind(struct irs_gr *);
-static void            gr_minimize(struct irs_gr *);
-
-/* Private */
-static void            free_group(struct group *gr);
-
-
-/* Public. */
-
-/*%
- *     Initialize the group sub-module.
- *
- */
-
-struct irs_gr *
-irs_irp_gr(struct irs_acc *this) {
-       struct irs_gr *gr;
-       struct pvt *pvt;
-
-       if (!(gr = memget(sizeof *gr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(gr, 0x0, sizeof *gr);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(gr, sizeof *gr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0x0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       gr->private = pvt;
-       gr->close = gr_close;
-       gr->next = gr_next;
-       gr->byname = gr_byname;
-       gr->bygid = gr_bygid;
-       gr->rewind = gr_rewind;
-       gr->list = make_group_list;
-       gr->minimize = gr_minimize;
-       return (gr);
-}
-
-/* Methods. */
-
-/*%
- *     Close the sub-module.
- *
- */
-
-static void
-gr_close(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       gr_minimize(this);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-/*%
- *     Gets the next group out of the cached data and returns it.
- *
- */
-
-static struct group *
-gr_next(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct group *gr = &pvt->group;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getgrent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "getgrent failed: %s", text);
-               }
-               return (NULL);
-       }
-
-       if (code == IRPD_GETGROUP_OK) {
-               free_group(gr);
-               if (irp_unmarshall_gr(gr, body) != 0) {
-                       gr = NULL;
-               }
-       } else {
-               gr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (gr);
-}
-
-/*%
- *     Gets a group by name from irpd and returns it.
- *
- */
-
-static struct group *
-gr_byname(struct irs_gr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct group *gr = &pvt->group;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-
-       if (gr->gr_name != NULL && strcmp(name, gr->gr_name) == 0) {
-               return (gr);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getgrnam %s", name) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETGROUP_OK) {
-               free_group(gr);
-               if (irp_unmarshall_gr(gr, body) != 0) {
-                       gr = NULL;
-               }
-       } else {
-               gr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (gr);
-}
-
-/*%
- *     Gets a group by gid from irpd and returns it.
- *
- */
-
-static struct group *
-gr_bygid(struct irs_gr *this, gid_t gid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct group *gr = &pvt->group;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (gr->gr_name != NULL && (gid_t)gr->gr_gid == gid) {
-               return (gr);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getgrgid %d", gid) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETGROUP_OK) {
-               free_group(gr);
-               if (irp_unmarshall_gr(gr, body) != 0) {
-                       gr = NULL;
-               }
-       } else {
-               gr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (gr);
-}
-
-/*%
- * void gr_rewind(struct irs_gr *this)
- *
- */
-
-static void
-gr_rewind(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "setgrent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETGROUP_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setgrent failed: %s", text);
-               }
-       }
-
-       return;
-}
-
-/*%
- *     Frees up cached data and disconnects(if necessary) from the remote.
- *
- */
-
-static void
-gr_minimize(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       free_group(&pvt->group);
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-/* Private. */
-
-/*%
- * static void free_group(struct group *gr);
- *
- *     Deallocate all the memory irp_unmarshall_gr allocated.
- *
- */
-
-static void
-free_group(struct group *gr) {
-       char **p;
-
-       if (gr == NULL)
-               return;
-
-       if (gr->gr_name != NULL)
-               free(gr->gr_name);
-
-       if (gr->gr_passwd != NULL)
-               free(gr->gr_passwd);
-
-       for (p = gr->gr_mem ; p != NULL && *p != NULL ; p++)
-               free(*p);
-
-       if (gr->gr_mem)
-               free(gr->gr_mem);
-
-       if (p != NULL)
-               free(p);
-}
-
-
-#endif /* WANT_IRS_GR */
-/*! \file */
diff --git a/lib/bind/irs/irp_ho.c b/lib/bind/irs/irp_ho.c
deleted file mode 100644 (file)
index d4ce5c3..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996,1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_ho.c,v 1.3 2005/04/27 04:56:28 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports. */
-
-#include "port_before.h"
-
-#include <syslog.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/irpmarshall.h>
-#include <isc/memcluster.h>
-
-#include "irs_p.h"
-#include "dns_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-/* Definitions. */
-
-#define        MAXALIASES      35
-#define        MAXADDRS        35
-#define        Max(a,b)        ((a) > (b) ? (a) : (b))
-
-
-struct pvt {
-       struct irp_p           *girpdata;
-       int                     warned;
-       struct hostent          host;
-};
-
-/* Forward. */
-
-static void            ho_close(struct irs_ho *this);
-static struct hostent *        ho_byname(struct irs_ho *this, const char *name);
-static struct hostent *        ho_byname2(struct irs_ho *this, const char *name,
-                                  int af);
-static struct hostent *        ho_byaddr(struct irs_ho *this, const void *addr,
-                                 int len, int af);
-static struct hostent *        ho_next(struct irs_ho *this);
-static void            ho_rewind(struct irs_ho *this);
-static void            ho_minimize(struct irs_ho *this);
-
-static void            free_host(struct hostent *ho);
-static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name,
-                                    const struct addrinfo *pai);
-
-/* Public. */
-
-/*%
- * struct irs_ho * irs_irp_ho(struct irs_acc *this)
- *
- * Notes:
- *
- *     Initializes the irp_ho module.
- *
- */
-
-struct irs_ho *
-irs_irp_ho(struct irs_acc *this) {
-       struct irs_ho *ho;
-       struct pvt *pvt;
-
-       if (!(ho = memget(sizeof *ho))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ho, 0x0, sizeof *ho);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(ho, sizeof *ho);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       ho->private = pvt;
-       ho->close = ho_close;
-       ho->byname = ho_byname;
-       ho->byname2 = ho_byname2;
-       ho->byaddr = ho_byaddr;
-       ho->next = ho_next;
-       ho->rewind = ho_rewind;
-       ho->minimize = ho_minimize;
-       ho->addrinfo = ho_addrinfo;
-
-       return (ho);
-}
-
-/* Methods. */
-
-/*%
- *     Closes down the module.
- *
- */
-
-static void
-ho_close(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ho_minimize(this);
-
-       free_host(&pvt->host);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-
-
-/*
- * struct hostent * ho_byname(struct irs_ho *this, const char *name)
- *
- */
-
-static struct hostent *
-ho_byname(struct irs_ho *this, const char *name) {
-       return (ho_byname2(this, name, AF_INET));
-}
-
-
-
-
-
-/*
- * struct hostent * ho_byname2(struct irs_ho *this, const char *name, int af)
- *
- */
-
-static struct hostent *
-ho_byname2(struct irs_ho *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *ho = &pvt->host;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (ho->h_name != NULL &&
-           strcmp(name, ho->h_name) == 0 &&
-           af == ho->h_addrtype) {
-               return (ho);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "gethostbyname2 %s %s",
-                                name, ADDR_T_STR(af)) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETHOST_OK) {
-               free_host(ho);
-               if (irp_unmarshall_ho(ho, body) != 0) {
-                       ho = NULL;
-               }
-       } else {
-               ho = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (ho);
-}
-
-
-
-/*
- * struct hostent * ho_byaddr(struct irs_ho *this, const void *addr,
- *                        int len, int af)
- *
- */
-
-static struct hostent *
-ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *ho = &pvt->host;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       char **p;
-       char paddr[MAXPADDRSIZE];
-       char text[256];
-
-       if (ho->h_name != NULL &&
-           af == ho->h_addrtype &&
-           len == ho->h_length) {
-               for (p = ho->h_addr_list ; *p != NULL ; p++) {
-                       if (memcmp(*p, addr, len) == 0)
-                               return (ho);
-               }
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (inet_ntop(af, addr, paddr, sizeof paddr) == NULL) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "gethostbyaddr %s %s",
-                                paddr, ADDR_T_STR(af)) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETHOST_OK) {
-               free_host(ho);
-               if (irp_unmarshall_ho(ho, body) != 0) {
-                       ho = NULL;
-               }
-       } else {
-               ho = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (ho);
-}
-
-/*%
- *     The implementation for gethostent(3). The first time it's
- *     called all the data is pulled from the remote(i.e. what
- *     the maximum number of gethostent(3) calls would return)
- *     and that data is cached.
- *
- */
-
-static struct hostent *
-ho_next(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *ho = &pvt->host;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "gethostent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETHOST_OK) {
-               free_host(ho);
-               if (irp_unmarshall_ho(ho, body) != 0) {
-                       ho = NULL;
-               }
-       } else {
-               ho = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (ho);
-}
-
-/*%
- * void ho_rewind(struct irs_ho *this)
- *
- */
-
-static void
-ho_rewind(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "sethostent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETHOST_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "sethostent failed: %s", text);
-               }
-       }
-
-       return;
-}
-
-/*%
- * void ho_minimize(struct irs_ho *this)
- *
- */
-
-static void
-ho_minimize(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       free_host(&pvt->host);
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-/*%
- * void free_host(struct hostent *ho)
- *
- */
-
-static void
-free_host(struct hostent *ho) {
-       char **p;
-
-       if (ho == NULL) {
-               return;
-       }
-
-       if (ho->h_name != NULL)
-               free(ho->h_name);
-
-       if (ho->h_aliases != NULL) {
-               for (p = ho->h_aliases ; *p != NULL ; p++)
-                       free(*p);
-               free(ho->h_aliases);
-       }
-
-       if (ho->h_addr_list != NULL) {
-               for (p = ho->h_addr_list ; *p != NULL ; p++)
-                       free(*p);
-               free(ho->h_addr_list);
-       }
-}
-
-/* dummy */
-static struct addrinfo *
-ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
-{
-       UNUSED(this);
-       UNUSED(name);
-       UNUSED(pai);
-       return(NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/irp_ng.c b/lib/bind/irs/irp_ng.c
deleted file mode 100644 (file)
index 1af862c..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996, 1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: irp_ng.c,v 1.4 2006/12/07 04:46:27 marka Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/memcluster.h>
-#include <isc/irpmarshall.h>
-
-#include "irs_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-/* Definitions */
-
-struct pvt {
-       struct irp_p           *girpdata;
-       int                     warned;
-};
-
-
-/* Forward */
-
-static void            ng_rewind(struct irs_ng *, const char*);
-static void            ng_close(struct irs_ng *);
-static int             ng_next(struct irs_ng *, const char **, const char **,
-                               const char **);
-static int             ng_test(struct irs_ng *, const char *,
-                               const char *, const char *,
-                               const char *);
-static void            ng_minimize(struct irs_ng *);
-
-
-/* Public */
-
-/*%
- *     Intialize the irp netgroup module.
- *
- */
-
-struct irs_ng *
-irs_irp_ng(struct irs_acc *this) {
-       struct irs_ng *ng;
-       struct pvt *pvt;
-
-       if (!(ng = memget(sizeof *ng))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ng, 0x5e, sizeof *ng);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(ng, sizeof *ng);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       ng->private = pvt;
-       ng->close = ng_close;
-       ng->next = ng_next;
-       ng->test = ng_test;
-       ng->rewind = ng_rewind;
-       ng->minimize = ng_minimize;
-       return (ng);
-}
-
-/* Methods */
-
-
-
-/*
- * void ng_close(struct irs_ng *this)
- *
- */
-
-static void
-ng_close(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ng_minimize(this);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-
-
-
-/*
- * void ng_rewind(struct irs_ng *this, const char *group)
- *
- *
- */
-
-static void
-ng_rewind(struct irs_ng *this, const char *group) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata,
-                                "setnetgrent %s", group) != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETNETGR_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setnetgrent(%s) failed: %s",
-                              group, text);
-               }
-       }
-
-       return;
-}
-
-/*
- *     Get the next netgroup item from the cache.
- *
- */
-
-static int
-ng_next(struct irs_ng *this, const char **host, const char **user,
-        const char **domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       int code;
-       char *body = NULL;
-       size_t bodylen;
-       int rval = 0;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (0);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getnetgrent") != 0)
-               return (0);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (0);
-       }
-
-       if (code == IRPD_GETNETGR_OK) {
-               if (irp_unmarshall_ng(host, user, domain, body) == 0) {
-                       rval = 1;
-               }
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (rval);
-}
-
-/*
- *     Search for a match in a netgroup.
- *
- */
-
-static int
-ng_test(struct irs_ng *this, const char *name,
-       const char *host, const char *user, const char *domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *body = NULL;
-       size_t bodylen = 0;
-       int code;
-       char text[256];
-       int rval = 0;
-
-       UNUSED(name);
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (0);
-       }
-
-       if (irp_marshall_ng(host, user, domain, &body, &bodylen) != 0) {
-               return (0);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "innetgr %s", body) == 0) {
-               code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-               if (code == IRPD_GETNETGR_MATCHES) {
-                       rval = 1;
-               }
-       }
-
-       memput(body, bodylen);
-
-       return (rval);
-}
-
-
-
-
-/*
- * void ng_minimize(struct irs_ng *this)
- *
- */
-
-static void
-ng_minimize(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-
-
-
-/* Private */
-
-
-/*! \file */
diff --git a/lib/bind/irs/irp_nw.c b/lib/bind/irs/irp_nw.c
deleted file mode 100644 (file)
index eb4654f..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996,1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_nw.c,v 1.4 2006/03/09 23:57:56 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#if 0
-
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <syslog.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/irpmarshall.h>
-
-#include <isc/memcluster.h>
-#include <isc/misc.h>
-
-#include "irs_p.h"
-#include "lcl_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-#define MAXALIASES 35
-#define MAXADDRSIZE 4
-
-struct pvt {
-       struct irp_p           *girpdata;
-       int                     warned;
-       struct nwent            net;
-};
-
-/* Forward */
-
-static void            nw_close(struct irs_nw *);
-static struct nwent *  nw_byname(struct irs_nw *, const char *, int);
-static struct nwent *  nw_byaddr(struct irs_nw *, void *, int, int);
-static struct nwent *  nw_next(struct irs_nw *);
-static void            nw_rewind(struct irs_nw *);
-static void            nw_minimize(struct irs_nw *);
-
-static void            free_nw(struct nwent *nw);
-
-
-/* Public */
-
-/*%
- * struct irs_nw * irs_irp_nw(struct irs_acc *this) 
- *
- */
-
-struct irs_nw *
-irs_irp_nw(struct irs_acc *this) {
-       struct irs_nw *nw;
-       struct pvt *pvt;
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-
-       if (!(nw = memget(sizeof *nw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nw, 0x0, sizeof *nw);
-       pvt->girpdata = this->private;
-
-       nw->private = pvt;
-       nw->close = nw_close;
-       nw->byname = nw_byname;
-       nw->byaddr = nw_byaddr;
-       nw->next = nw_next;
-       nw->rewind = nw_rewind;
-       nw->minimize = nw_minimize;
-       return (nw);
-}
-
-/* Methods */
-
-/*%
- * void nw_close(struct irs_nw *this) 
- *
- */
-
-static void
-nw_close(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       nw_minimize(this);
-
-       free_nw(&pvt->net);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-/*%
- * struct nwent * nw_byaddr(struct irs_nw *this, void *net, 
- *                             int length, int type) 
- *
- */
-
-static struct nwent *
-nw_byaddr(struct irs_nw *this, void *net, int length, int type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *nw = &pvt->net;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       char paddr[24];                 /*%< bigenough for ip4 w/ cidr spec. */
-       char text[256];
-
-       if (inet_net_ntop(type, net, length, paddr, sizeof paddr) == NULL) {
-               return (NULL);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getnetbyaddr %s %s",
-                                paddr, ADDR_T_STR(type)) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETNET_OK) {
-               free_nw(nw);
-               if (irp_unmarshall_nw(nw, body) != 0) {
-                       nw = NULL;
-               }
-       } else {
-               nw = NULL;
-       }
-               
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-       
-       return (nw);
-}
-
-/*%
- * struct nwent * nw_byname(struct irs_nw *this, const char *name, int type) 
- *
- */
-
-static struct nwent *
-nw_byname(struct irs_nw *this, const char *name, int type) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *nw = &pvt->net;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (nw->n_name != NULL &&
-           strcmp(name, nw->n_name) == 0 &&
-           nw->n_addrtype == type) {
-               return (nw);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getnetbyname %s", name) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETNET_OK) {
-               free_nw(nw);
-               if (irp_unmarshall_nw(nw, body) != 0) {
-                       nw = NULL;
-               }
-       } else {
-               nw = NULL;
-       }
-       
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-       
-       return (nw);
-}
-
-/*%
- * void nw_rewind(struct irs_nw *this) 
- *
- */
-
-static void
-nw_rewind(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "setnetent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETNET_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setnetent failed: %s", text);
-               }
-       }
-       
-       return;
-}
-
-/*%
- *     Prepares the cache if necessary and returns the first, or 
- *     next item from it.
- */
-
-static struct nwent *
-nw_next(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *nw = &pvt->net;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getnetent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETNET_OK) {
-               free_nw(nw);
-               if (irp_unmarshall_nw(nw, body) != 0) {
-                       nw = NULL;
-               }
-       } else {
-               nw = NULL;
-       }
-
-       if (body != NULL)
-               memput(body, bodylen);
-       return (nw);
-}
-
-/*%
- * void nw_minimize(struct irs_nw *this) 
- *
- */
-
-static void
-nw_minimize(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-
-
-
-/* private. */
-
-/*%
- *     deallocate all the memory irp_unmarshall_pw allocated.
- *
- */
-
-static void
-free_nw(struct nwent *nw) {
-       char **p;
-
-       if (nw == NULL)
-               return;
-
-       if (nw->n_name != NULL)
-               free(nw->n_name);
-
-       if (nw->n_aliases != NULL) {
-               for (p = nw->n_aliases ; *p != NULL ; p++) {
-                       free(*p);
-               }
-               free(nw->n_aliases);
-       }
-
-       if (nw->n_addr != NULL)
-               free(nw->n_addr);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/irp_p.h b/lib/bind/irs/irp_p.h
deleted file mode 100644 (file)
index 4f943f8..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irp_p.h,v 1.5 2005/04/27 04:56:28 sra Exp $
- */
-
-#ifndef _IRP_P_H_INCLUDED
-#define _IRP_P_H_INCLUDED
-
-#include <stdio.h>
-
-struct irp_p {
-       char inbuffer[1024];
-       int inlast; /*%< index of one past the last char in buffer */
-       int incurr; /*%< index of the next char to be read from buffer */
-       int fdCxn;
-};
-
-/*
- * Externs.
- */
-
-extern struct irs_acc *        irs_irp_acc __P((const char *));
-extern struct irs_gr * irs_irp_gr __P((struct irs_acc *));
-extern struct irs_pw * irs_irp_pw __P((struct irs_acc *));
-extern struct irs_sv * irs_irp_sv __P((struct irs_acc *));
-extern struct irs_pr * irs_irp_pr __P((struct irs_acc *));
-extern struct irs_ho * irs_irp_ho __P((struct irs_acc *));
-extern struct irs_nw * irs_irp_nw __P((struct irs_acc *));
-extern struct irs_ng * irs_irp_ng __P((struct irs_acc *));
-
-int irs_irp_connect(struct irp_p *pvt);
-int irs_irp_is_connected(struct irp_p *pvt);
-void irs_irp_disconnect(struct irp_p *pvt);
-int irs_irp_read_response(struct irp_p *pvt, char *text, size_t textlen);
-char *irs_irp_read_body(struct irp_p *pvt, size_t *size);
-int irs_irp_get_full_response(struct irp_p *pvt, int *code,
-                             char *text, size_t textlen,
-                             char **body, size_t *bodylen);
-
-extern int irp_log_errors;
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/irp_pr.c b/lib/bind/irs/irp_pr.c
deleted file mode 100644 (file)
index ea876e8..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_pr.c,v 1.3 2005/04/27 04:56:29 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#include <syslog.h>
-#include <sys/types.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/memcluster.h>
-#include <isc/irpmarshall.h>
-
-#include "irs_p.h"
-#include "lcl_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-
-#define MAXALIASES     35
-
-/* Types */
-
-struct pvt {
-       struct irp_p           *girpdata;
-       int                     warned;
-       struct protoent         proto;
-};
-
-/* Forward */
-
-static void                    pr_close(struct irs_pr *);
-static struct protoent *       pr_next(struct irs_pr *);
-static struct protoent *       pr_byname(struct irs_pr *, const char *);
-static struct protoent *       pr_bynumber(struct irs_pr *, int);
-static void                    pr_rewind(struct irs_pr *);
-static void                    pr_minimize(struct irs_pr *);
-
-static void                    free_proto(struct protoent *pr);
-
-/* Public */
-
-/*%
- * struct irs_pr * irs_irp_pr(struct irs_acc *this)
- *
- */
-
-struct irs_pr *
-irs_irp_pr(struct irs_acc *this) {
-       struct irs_pr *pr;
-       struct pvt *pvt;
-
-       if (!(pr = memget(sizeof *pr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pr, 0x0, sizeof *pr);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pr, sizeof *pr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       pr->private = pvt;
-       pr->close = pr_close;
-       pr->byname = pr_byname;
-       pr->bynumber = pr_bynumber;
-       pr->next = pr_next;
-       pr->rewind = pr_rewind;
-       pr->minimize = pr_minimize;
-       return (pr);
-}
-
-/* Methods */
-
-/*%
- * void pr_close(struct irs_pr *this)
- *
- */
-
-static void
-pr_close(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pr_minimize(this);
-
-       free_proto(&pvt->proto);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-/*%
- * struct protoent * pr_byname(struct irs_pr *this, const char *name)
- *
- */
-
-static struct protoent *
-pr_byname(struct irs_pr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct protoent *pr = &pvt->proto;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       int i;
-       char text[256];
-
-       if (pr->p_name != NULL && strcmp(name, pr->p_name) == 0) {
-               return (pr);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       i = irs_irp_send_command(pvt->girpdata, "getprotobyname %s", name);
-       if (i != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETPROTO_OK) {
-               free_proto(pr);
-               if (irp_unmarshall_pr(pr, body) != 0) {
-                       pr = NULL;
-               }
-       } else {
-               pr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pr);
-}
-
-/*%
- * struct protoent * pr_bynumber(struct irs_pr *this, int proto)
- *
- */
-
-static struct protoent *
-pr_bynumber(struct irs_pr *this, int proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct protoent *pr = &pvt->proto;
-       char *body = NULL;
-       size_t bodylen;
-       int code;
-       int i;
-       char text[256];
-
-       if (pr->p_name != NULL && proto == pr->p_proto) {
-               return (pr);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       i = irs_irp_send_command(pvt->girpdata, "getprotobynumber %d", proto);
-       if (i != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETPROTO_OK) {
-               free_proto(pr);
-               if (irp_unmarshall_pr(pr, body) != 0) {
-                       pr = NULL;
-               }
-       } else {
-               pr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pr);
-}
-
-/*%
- * void pr_rewind(struct irs_pr *this)
- *
- */
-
-static void
-pr_rewind(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "setprotoent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETPROTO_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setprotoent failed: %s", text);
-               }
-       }
-
-       return;
-}
-
-/*%
- *     Prepares the cache if necessary and returns the next item in it.
- *
- */
-
-static struct protoent *
-pr_next(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct protoent *pr = &pvt->proto;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getprotoent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETPROTO_OK) {
-               free_proto(pr);
-               if (irp_unmarshall_pr(pr, body) != 0) {
-                       pr = NULL;
-               }
-       } else {
-               pr = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pr);
-}
-
-/*%
- * void pr_minimize(struct irs_pr *this)
- *
- */
-
-static void
-pr_minimize(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-/*%
- *     Deallocate all the memory irp_unmarshall_pr allocated.
- *
- */
-
-static void
-free_proto(struct protoent *pr) {
-       char **p;
-
-       if (pr == NULL)
-               return;
-
-       if (pr->p_name != NULL)
-               free(pr->p_name);
-
-       for (p = pr->p_aliases ; p != NULL && *p != NULL ; p++)
-               free(*p);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/irp_pw.c b/lib/bind/irs/irp_pw.c
deleted file mode 100644 (file)
index 3722e59..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_pw.c,v 1.4 2005/04/27 04:56:29 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Extern */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <syslog.h>
-#include <sys/param.h>
-
-#include <db.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <pwd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <utmp.h>
-#include <unistd.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/memcluster.h>
-#include <isc/irpmarshall.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "irp_p.h"
-
-
-/* Types */
-
-struct pvt {
-       struct irp_p   *girpdata; /*%< global IRP data */
-       int             warned;
-       struct passwd   passwd;         /*%< password structure */
-};
-
-/* Forward */
-
-static void                    pw_close(struct irs_pw *);
-static struct passwd *         pw_next(struct irs_pw *);
-static struct passwd *         pw_byname(struct irs_pw *, const char *);
-static struct passwd *         pw_byuid(struct irs_pw *, uid_t);
-static void                    pw_rewind(struct irs_pw *);
-static void                    pw_minimize(struct irs_pw *);
-
-static void                    free_passwd(struct passwd *pw);
-
-/* Public */
-struct irs_pw *
-irs_irp_pw(struct irs_acc *this) {
-       struct irs_pw *pw;
-       struct pvt *pvt;
-
-       if (!(pw = memget(sizeof *pw))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pw, 0, sizeof *pw);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pw, sizeof *pw);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       pw->private = pvt;
-       pw->close = pw_close;
-       pw->next = pw_next;
-       pw->byname = pw_byname;
-       pw->byuid = pw_byuid;
-       pw->rewind = pw_rewind;
-       pw->minimize = pw_minimize;
-
-       return (pw);
-}
-
-/* Methods */
-
-/*%
- * void pw_close(struct irs_pw *this)
- *
- */
-
-static void
-pw_close(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pw_minimize(this);
-
-       free_passwd(&pvt->passwd);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-/*%
- * struct passwd * pw_next(struct irs_pw *this)
- *
- */
-
-static struct passwd *
-pw_next(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct passwd *pw = &pvt->passwd;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getpwent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETUSER_OK) {
-               free_passwd(pw);
-               if (irp_unmarshall_pw(pw, body) != 0) {
-                       pw = NULL;
-               }
-       } else {
-               pw = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pw);
-}
-
-/*%
- * struct passwd * pw_byname(struct irs_pw *this, const char *name)
- *
- */
-
-static struct passwd *
-pw_byname(struct irs_pw *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct passwd *pw = &pvt->passwd;
-       char *body = NULL;
-       char text[256];
-       size_t bodylen;
-       int code;
-
-       if (pw->pw_name != NULL && strcmp(name, pw->pw_name) == 0) {
-               return (pw);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getpwnam %s", name) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETUSER_OK) {
-               free_passwd(pw);
-               if (irp_unmarshall_pw(pw, body) != 0) {
-                       pw = NULL;
-               }
-       } else {
-               pw = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pw);
-}
-
-/*%
- * struct passwd * pw_byuid(struct irs_pw *this, uid_t uid)
- *
- */
-
-static struct passwd *
-pw_byuid(struct irs_pw *this, uid_t uid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *body;
-       char text[256];
-       size_t bodylen;
-       int code;
-       struct passwd *pw = &pvt->passwd;
-
-       if (pw->pw_name != NULL && pw->pw_uid == uid) {
-               return (pw);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getpwuid %d", uid) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETUSER_OK) {
-               free_passwd(pw);
-               if (irp_unmarshall_pw(pw, body) != 0) {
-                       pw = NULL;
-               }
-       } else {
-               pw = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (pw);
-}
-
-/*%
- * void pw_rewind(struct irs_pw *this)
- *
- */
-
-static void
-pw_rewind(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "setpwent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETUSER_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setpwent failed: %s", text);
-               }
-       }
-
-       return;
-}
-
-/*%
- * void pw_minimize(struct irs_pw *this)
- *
- */
-
-static void
-pw_minimize(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-
-/* Private. */
-
-/*%
- *     Deallocate all the memory irp_unmarshall_pw allocated.
- *
- */
-
-static void
-free_passwd(struct passwd *pw) {
-       if (pw == NULL)
-               return;
-
-       if (pw->pw_name != NULL)
-               free(pw->pw_name);
-
-       if (pw->pw_passwd != NULL)
-               free(pw->pw_passwd);
-
-#ifdef HAVE_PW_CLASS
-       if (pw->pw_class != NULL)
-               free(pw->pw_class);
-#endif
-
-       if (pw->pw_gecos != NULL)
-               free(pw->pw_gecos);
-
-       if (pw->pw_dir != NULL)
-               free(pw->pw_dir);
-
-       if (pw->pw_shell != NULL)
-               free(pw->pw_shell);
-}
-
-#endif /* WANT_IRS_PW */
-/*! \file */
diff --git a/lib/bind/irs/irp_sv.c b/lib/bind/irs/irp_sv.c
deleted file mode 100644 (file)
index 577e697..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996,1998 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_sv.c,v 1.3 2005/04/27 04:56:29 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#include <syslog.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#ifdef IRS_LCL_SV_DB
-#include <db.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <syslog.h>
-
-#include <irs.h>
-#include <irp.h>
-#include <isc/irpmarshall.h>
-#include <isc/memcluster.h>
-
-#include "irs_p.h"
-#include "lcl_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-/* Types */
-
-struct pvt {
-       struct irp_p           *girpdata;
-       int                     warned;
-       struct servent          service;
-};
-
-/* Forward */
-
-static void                    sv_close(struct irs_sv*);
-static struct servent *                sv_next(struct irs_sv *);
-static struct servent *                sv_byname(struct irs_sv *, const char *,
-                                         const char *);
-static struct servent *                sv_byport(struct irs_sv *, int, const char *);
-static void                    sv_rewind(struct irs_sv *);
-static void                    sv_minimize(struct irs_sv *);
-
-static void                    free_service(struct servent *sv);
-
-
-
-/* Public */
-
-/*%
- * struct irs_sv * irs_irp_sv(struct irs_acc *this)
- *
- */
-
-struct irs_sv *
-irs_irp_sv(struct irs_acc *this) {
-       struct irs_sv *sv;
-       struct pvt *pvt;
-
-       if ((sv = memget(sizeof *sv)) == NULL) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(sv, 0x0, sizeof *sv);
-
-       if ((pvt = memget(sizeof *pvt)) == NULL) {
-               memput(sv, sizeof *sv);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->girpdata = this->private;
-
-       sv->private = pvt;
-       sv->close = sv_close;
-       sv->next = sv_next;
-       sv->byname = sv_byname;
-       sv->byport = sv_byport;
-       sv->rewind = sv_rewind;
-       sv->minimize = sv_minimize;
-
-       return (sv);
-}
-
-/* Methods */
-
-/*%
- * void sv_close(struct irs_sv *this)
- *
- */
-
-static void
-sv_close(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       sv_minimize(this);
-
-       free_service(&pvt->service);
-
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-/*%
- *     Fills the cache if necessary and returns the next item from it.
- *
- */
-
-static struct servent *
-sv_next(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct servent *sv = &pvt->service;
-       char *body;
-       size_t bodylen;
-       int code;
-       char text[256];
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getservent") != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETSERVICE_OK) {
-               free_service(sv);
-               if (irp_unmarshall_sv(sv, body) != 0) {
-                       sv = NULL;
-               }
-       } else {
-               sv = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (sv);
-}
-
-/*%
- * struct servent * sv_byname(struct irs_sv *this, const char *name,
- *                             const char *proto)
- *
- */
-
-static struct servent *
-sv_byname(struct irs_sv *this, const char *name, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct servent *sv = &pvt->service;
-       char *body;
-       char text[256];
-       size_t bodylen;
-       int code;
-
-       if (sv->s_name != NULL &&
-           strcmp(name, sv->s_name) == 0 &&
-           strcasecmp(proto, sv->s_proto) == 0) {
-               return (sv);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getservbyname %s %s",
-                                name, proto) != 0)
-               return (NULL);
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETSERVICE_OK) {
-               free_service(sv);
-               if (irp_unmarshall_sv(sv, body) != 0) {
-                       sv = NULL;
-               }
-       } else {
-               sv = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (sv);
-}
-
-/*%
- * struct servent * sv_byport(struct irs_sv *this, int port,
- *                             const char *proto)
- *
- */
-
-static struct servent *
-sv_byport(struct irs_sv *this, int port, const char *proto) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct servent *sv = &pvt->service;
-       char *body;
-       size_t bodylen;
-       char text[256];
-       int code;
-
-       if (sv->s_name != NULL &&
-           port == sv->s_port &&
-           strcasecmp(proto, sv->s_proto) == 0) {
-               return (sv);
-       }
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "getservbyport %d %s",
-                                ntohs((short)port), proto) != 0) {
-               return (NULL);
-       }
-
-       if (irs_irp_get_full_response(pvt->girpdata, &code,
-                                     text, sizeof text,
-                                     &body, &bodylen) != 0) {
-               return (NULL);
-       }
-
-       if (code == IRPD_GETSERVICE_OK) {
-               free_service(sv);
-               if (irp_unmarshall_sv(sv, body) != 0) {
-                       sv = NULL;
-               }
-       } else {
-               sv = NULL;
-       }
-
-       if (body != NULL) {
-               memput(body, bodylen);
-       }
-
-       return (sv);
-}
-
-/*%
- * void sv_rewind(struct irs_sv *this)
- *
- */
-
-static void
-sv_rewind(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char text[256];
-       int code;
-
-       if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) {
-               return;
-       }
-
-       if (irs_irp_send_command(pvt->girpdata, "setservent") != 0) {
-               return;
-       }
-
-       code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
-       if (code != IRPD_GETSERVICE_SETOK) {
-               if (irp_log_errors) {
-                       syslog(LOG_WARNING, "setservent failed: %s", text);
-               }
-       }
-
-       return;
-}
-
-/*%
- * void sv_minimize(struct irs_sv *this)
- *
- */
-
-static void
-sv_minimize(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       irs_irp_disconnect(pvt->girpdata);
-}
-
-
-
-
-
-
-static void
-free_service(struct servent *sv) {
-       char **p;
-
-       if (sv == NULL) {
-               return;
-       }
-
-       if (sv->s_name != NULL) {
-               free(sv->s_name);
-       }
-
-       for (p = sv->s_aliases ; p != NULL && *p != NULL ; p++) {
-               free(*p);
-       }
-
-       if (sv->s_proto != NULL) {
-               free(sv->s_proto);
-       }
-}
-
-
-
-/*! \file */
diff --git a/lib/bind/irs/irpmarshall.c b/lib/bind/irs/irpmarshall.c
deleted file mode 100644 (file)
index 85ffff1..0000000
+++ /dev/null
@@ -1,2301 +0,0 @@
-/*
- * Copyright(c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irpmarshall.c,v 1.7 2006/03/09 23:57:56 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#if 0
-
-Check values are in approrpriate endian order.
-
-Double check memory allocations on unmarhsalling
-
-#endif
-
-
-/* Extern */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <stdio.h>
-#include <ctype.h>
-#include <pwd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <utmp.h>
-#include <unistd.h>
-#include <assert.h>
-#include <errno.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-#include <isc/irpmarshall.h>
-
-#include "port_after.h"
-
-
-#ifndef HAVE_STRNDUP
-static char    *strndup(const char *str, size_t len);
-#endif
-
-static char   **splitarray(const char *buffer, const char *buffend, char delim);
-static int     joinarray(char * const * argv, char *buffer, char delim);
-static char    *getfield(char **res, size_t reslen, char **buffer, char delim);
-static size_t  joinlength(char * const *argv);
-static void    free_array(char **argv, size_t entries);
-
-#define ADDR_T_STR(x) (x == AF_INET ? "AF_INET" :\
-                      (x == AF_INET6 ? "AF_INET6" : "UNKNOWN"))
-
-#define MAXPADDRSIZE (sizeof "255.255.255.255" + 1)
-
-static char COMMA = ',';
-
-static const char *COMMASTR = ",";
-static const char *COLONSTR = ":";
-
-
-
-/* See big comment at bottom of irpmarshall.h for description. */
-
-
-#ifdef WANT_IRS_PW
-/* +++++++++++++++++++++++++ struct passwd +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_pw(const struct passwd *pw, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on sucess, -1 on failure.
- *
- */
-
-int
-irp_marshall_pw(const struct passwd *pw, char **buffer, size_t *len) {
-       size_t need = 1 ;               /*%< for null byte */
-       char pwUid[24];
-       char pwGid[24];
-       char pwChange[24];
-       char pwExpire[24];
-       const char *pwClass;
-       const char *fieldsep = COLONSTR;
-
-       if (pw == NULL || len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       sprintf(pwUid, "%ld", (long)pw->pw_uid);
-       sprintf(pwGid, "%ld", (long)pw->pw_gid);
-
-#ifdef HAVE_PW_CHANGE
-       sprintf(pwChange, "%ld", (long)pw->pw_change);
-#else
-       pwChange[0] = '0';
-       pwChange[1] = '\0';
-#endif
-
-#ifdef HAVE_PW_EXPIRE
-       sprintf(pwExpire, "%ld", (long)pw->pw_expire);
-#else
-       pwExpire[0] = '0';
-       pwExpire[1] = '\0';
-#endif
-
-#ifdef HAVE_PW_CLASS
-       pwClass = pw->pw_class;
-#else
-       pwClass = "";
-#endif
-
-       need += strlen(pw->pw_name)     + 1; /*%< one for fieldsep */
-       need += strlen(pw->pw_passwd)   + 1;
-       need += strlen(pwUid)           + 1;
-       need += strlen(pwGid)           + 1;
-       need += strlen(pwClass)         + 1;
-       need += strlen(pwChange)        + 1;
-       need += strlen(pwExpire)        + 1;
-       need += strlen(pw->pw_gecos)    + 1;
-       need += strlen(pw->pw_dir)      + 1;
-       need += strlen(pw->pw_shell)    + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, pw->pw_name);           strcat(*buffer, fieldsep);
-       strcat(*buffer, pw->pw_passwd);         strcat(*buffer, fieldsep);
-       strcat(*buffer, pwUid);                 strcat(*buffer, fieldsep);
-       strcat(*buffer, pwGid);                 strcat(*buffer, fieldsep);
-       strcat(*buffer, pwClass);               strcat(*buffer, fieldsep);
-       strcat(*buffer, pwChange);              strcat(*buffer, fieldsep);
-       strcat(*buffer, pwExpire);              strcat(*buffer, fieldsep);
-       strcat(*buffer, pw->pw_gecos);          strcat(*buffer, fieldsep);
-       strcat(*buffer, pw->pw_dir);            strcat(*buffer, fieldsep);
-       strcat(*buffer, pw->pw_shell);          strcat(*buffer, fieldsep);
-
-       return (0);
-}
-
-/*%
- * int irp_unmarshall_pw(struct passwd *pw, char *buffer)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success, -1 on failure
- *
- */
-
-int
-irp_unmarshall_pw(struct passwd *pw, char *buffer) {
-       char *name, *pass, *class, *gecos, *dir, *shell;
-       uid_t pwuid;
-       gid_t pwgid;
-       time_t pwchange;
-       time_t pwexpire;
-       char *p;
-       long t;
-       char tmpbuf[24];
-       char *tb = &tmpbuf[0];
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       name = pass = class = gecos = dir = shell = NULL;
-       p = buffer;
-
-       /* pw_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0) {
-               goto error;
-       }
-
-       /* pw_passwd field */
-       pass = NULL;
-       if (getfield(&pass, 0, &p, fieldsep) == NULL) { /*%< field can be empty */
-               goto error;
-       }
-
-
-       /* pw_uid field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       pwuid = (uid_t)t;
-       if ((long) pwuid != t) {        /*%< value must have been too big. */
-               goto error;
-       }
-
-
-
-       /* pw_gid field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       pwgid = (gid_t)t;
-       if ((long)pwgid != t) { /*%< value must have been too big. */
-               goto error;
-       }
-
-
-
-       /* pw_class field */
-       class = NULL;
-       if (getfield(&class, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-
-
-       /* pw_change field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       pwchange = (time_t)t;
-       if ((long)pwchange != t) {      /*%< value must have been too big. */
-               goto error;
-       }
-
-
-
-       /* pw_expire field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       pwexpire = (time_t)t;
-       if ((long) pwexpire != t) {     /*%< value must have been too big. */
-               goto error;
-       }
-
-
-
-       /* pw_gecos field */
-       gecos = NULL;
-       if (getfield(&gecos, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-
-
-       /* pw_dir field */
-       dir = NULL;
-       if (getfield(&dir, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-
-
-       /* pw_shell field */
-       shell = NULL;
-       if (getfield(&shell, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-
-
-       pw->pw_name = name;
-       pw->pw_passwd = pass;
-       pw->pw_uid = pwuid;
-       pw->pw_gid = pwgid;
-       pw->pw_gecos = gecos;
-       pw->pw_dir = dir;
-       pw->pw_shell = shell;
-
-#ifdef HAVE_PW_CHANGE
-       pw->pw_change = pwchange;
-#endif
-#ifdef HAVE_PW_CLASS
-       pw->pw_class = class;
-#endif
-#ifdef HAVE_PW_EXPIRE
-       pw->pw_expire = pwexpire;
-#endif
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       if (pass != NULL) free(pass);
-       if (gecos != NULL) free(gecos);
-       if (dir != NULL) free(dir);
-       if (shell != NULL) free(shell);
-
-       return (-1);
-}
-
-/* ------------------------- struct passwd ------------------------- */
-#endif /* WANT_IRS_PW */
-/* +++++++++++++++++++++++++ struct group +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_gr(const struct group *gr, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See irpmarshall.h.
- *
- * return: \li
- *
- *     0 on success, -1 on failure
- */
-
-int
-irp_marshall_gr(const struct group *gr, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char grGid[24];
-       const char *fieldsep = COLONSTR;
-
-       if (gr == NULL || len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       sprintf(grGid, "%ld", (long)gr->gr_gid);
-
-       need += strlen(gr->gr_name) + 1;
-#ifndef MISSING_GR_PASSWD
-       need += strlen(gr->gr_passwd) + 1;
-#else
-       need++;
-#endif
-       need += strlen(grGid) + 1;
-       need += joinlength(gr->gr_mem) + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, gr->gr_name);           strcat(*buffer, fieldsep);
-#ifndef MISSING_GR_PASSWD
-       strcat(*buffer, gr->gr_passwd);
-#endif
-       strcat(*buffer, fieldsep);
-       strcat(*buffer, grGid);                 strcat(*buffer, fieldsep);
-       joinarray(gr->gr_mem, *buffer, COMMA) ; strcat(*buffer, fieldsep);
-
-       return (0);
-}
-
-/*%
- * int irp_unmarshall_gr(struct group *gr, char *buffer)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_unmarshall_gr(struct group *gr, char *buffer) {
-       char *p, *q;
-       gid_t grgid;
-       long t;
-       char *name = NULL;
-       char *pass = NULL;
-       char **members = NULL;
-       char tmpbuf[24];
-       char *tb;
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       if (gr == NULL || buffer == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       p = buffer;
-
-       /* gr_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* gr_passwd field */
-       pass = NULL;
-       if (getfield(&pass, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-
-       /* gr_gid field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       grgid = (gid_t)t;
-       if ((long) grgid != t) {        /*%< value must have been too big. */
-               goto error;
-       }
-
-
-       /* gr_mem field. Member names are separated by commas */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       members = splitarray(p, q, COMMA);
-       if (members == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       gr->gr_name = name;
-#ifndef MISSING_GR_PASSWD
-       gr->gr_passwd = pass;
-#endif
-       gr->gr_gid = grgid;
-       gr->gr_mem = members;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       if (pass != NULL) free(pass);
-
-       return (-1);
-}
-
-
-/* ------------------------- struct group ------------------------- */
-
-
-
-
-/* +++++++++++++++++++++++++ struct servent +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_sv(const struct servent *sv, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success, -1 on failure.
- *
- */
-
-int
-irp_marshall_sv(const struct servent *sv, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char svPort[24];
-       const char *fieldsep = COLONSTR;
-       short realport;
-
-       if (sv == NULL || len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       /* the int s_port field is actually a short in network order. We
-          want host order to make the marshalled data look correct */
-       realport = ntohs((short)sv->s_port);
-       sprintf(svPort, "%d", realport);
-
-       need += strlen(sv->s_name) + 1;
-       need += joinlength(sv->s_aliases) + 1;
-       need += strlen(svPort) + 1;
-       need += strlen(sv->s_proto) + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, sv->s_name);            strcat(*buffer, fieldsep);
-       joinarray(sv->s_aliases, *buffer, COMMA); strcat(*buffer, fieldsep);
-       strcat(*buffer, svPort);                strcat(*buffer, fieldsep);
-       strcat(*buffer, sv->s_proto);           strcat(*buffer, fieldsep);
-
-       return (0);
-}
-
-/*%
- * int irp_unmarshall_sv(struct servent *sv, char *buffer)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success, -1 on failure.
- *
- */
-
-int
-irp_unmarshall_sv(struct servent *sv, char *buffer) {
-       char *p, *q;
-       short svport;
-       long t;
-       char *name = NULL;
-       char *proto = NULL;
-       char **aliases = NULL;
-       char tmpbuf[24];
-       char *tb;
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       if (sv == NULL || buffer == NULL)
-               return (-1);
-
-       p = buffer;
-
-
-       /* s_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* s_aliases field */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       aliases = splitarray(p, q, COMMA);
-       if (aliases == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       /* s_port field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       svport = (short)t;
-       if ((long) svport != t) {       /*%< value must have been too big. */
-               goto error;
-       }
-       svport = htons(svport);
-
-       /* s_proto field */
-       proto = NULL;
-       if (getfield(&proto, 0, &p, fieldsep) == NULL) {
-               goto error;
-       }
-
-       sv->s_name = name;
-       sv->s_aliases = aliases;
-       sv->s_port = svport;
-       sv->s_proto = proto;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       if (proto != NULL) free(proto);
-       free_array(aliases, 0);
-
-       return (-1);
-}
-
-
-/* ------------------------- struct servent ------------------------- */
-
-/* +++++++++++++++++++++++++ struct protoent +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_pr(struct protoent *pr, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_marshall_pr(struct protoent *pr, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char prProto[24];
-       const char *fieldsep = COLONSTR;
-
-       if (pr == NULL || len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       sprintf(prProto, "%d", (int)pr->p_proto);
-
-       need += strlen(pr->p_name) + 1;
-       need += joinlength(pr->p_aliases) + 1;
-       need += strlen(prProto) + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, pr->p_name);            strcat(*buffer, fieldsep);
-       joinarray(pr->p_aliases, *buffer, COMMA); strcat(*buffer, fieldsep);
-       strcat(*buffer, prProto);               strcat(*buffer, fieldsep);
-
-       return (0);
-
-}
-
-/*%
- * int irp_unmarshall_pr(struct protoent *pr, char *buffer)
- *
- * notes: \li
- *
- *     See irpmarshall.h
- *
- * return: \li
- *
- *     0 on success, -1 on failure
- *
- */
-
-int irp_unmarshall_pr(struct protoent *pr, char *buffer) {
-       char *p, *q;
-       int prproto;
-       long t;
-       char *name = NULL;
-       char **aliases = NULL;
-       char tmpbuf[24];
-       char *tb;
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       if (pr == NULL || buffer == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       p = buffer;
-
-       /* p_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* p_aliases field */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       aliases = splitarray(p, q, COMMA);
-       if (aliases == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       /* p_proto field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       prproto = (int)t;
-       if ((long) prproto != t) {      /*%< value must have been too big. */
-               goto error;
-       }
-
-       pr->p_name = name;
-       pr->p_aliases = aliases;
-       pr->p_proto = prproto;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       free_array(aliases, 0);
-
-       return (-1);
-}
-
-/* ------------------------- struct protoent ------------------------- */
-
-
-
-/* +++++++++++++++++++++++++ struct hostent +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_ho(struct hostent *ho, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See irpmarshall.h.
- *
- * return: \li
- *
- *     0 on success, -1 on failure.
- *
- */
-
-int
-irp_marshall_ho(struct hostent *ho, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char hoaddrtype[24];
-       char holength[24];
-       char **av;
-       char *p;
-       int addrlen;
-       int malloced = 0;
-       size_t remlen;
-       const char *fieldsep = "@";
-
-       if (ho == NULL || len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       switch(ho->h_addrtype) {
-       case AF_INET:
-               strcpy(hoaddrtype, "AF_INET");
-               break;
-
-       case AF_INET6:
-               strcpy(hoaddrtype, "AF_INET6");
-               break;
-
-       default:
-               errno = EINVAL;
-               return (-1);
-       }
-
-       sprintf(holength, "%d", ho->h_length);
-
-       need += strlen(ho->h_name) + 1;
-       need += joinlength(ho->h_aliases) + 1;
-       need += strlen(hoaddrtype) + 1;
-       need += strlen(holength) + 1;
-
-       /* we determine an upper bound on the string length needed, not an
-          exact length. */
-       addrlen = (ho->h_addrtype == AF_INET ? 16 : 46) ; /*%< XX other AF's?? */
-       for (av = ho->h_addr_list; av != NULL && *av != NULL ; av++)
-               need += addrlen;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-               malloced = 1;
-       }
-
-       strcpy(*buffer, ho->h_name);            strcat(*buffer, fieldsep);
-       joinarray(ho->h_aliases, *buffer, COMMA); strcat(*buffer, fieldsep);
-       strcat(*buffer, hoaddrtype);            strcat(*buffer, fieldsep);
-       strcat(*buffer, holength);              strcat(*buffer, fieldsep);
-
-       p = *buffer + strlen(*buffer);
-       remlen = need - strlen(*buffer);
-       for (av = ho->h_addr_list ; av != NULL && *av != NULL ; av++) {
-               if (inet_ntop(ho->h_addrtype, *av, p, remlen) == NULL) {
-                       goto error;
-               }
-               if (*(av + 1) != NULL)
-                       strcat(p, COMMASTR);
-               remlen -= strlen(p);
-               p += strlen(p);
-       }
-       strcat(*buffer, fieldsep);
-
-       return (0);
-
- error:
-       if (malloced) {
-               memput(*buffer, need);
-       }
-
-       return (-1);
-}
-
-/*%
- * int irp_unmarshall_ho(struct hostent *ho, char *buffer)
- *
- * notes: \li
- *
- *     See irpmarshall.h.
- *
- * return: \li
- *
- *     0 on success, -1 on failure.
- *
- */
-
-int
-irp_unmarshall_ho(struct hostent *ho, char *buffer) {
-       char *p, *q, *r;
-       int hoaddrtype;
-       int holength;
-       long t;
-       char *name;
-       char **aliases = NULL;
-       char **hohaddrlist = NULL;
-       size_t hoaddrsize;
-       char tmpbuf[24];
-       char *tb;
-       char **alist;
-       int addrcount;
-       char fieldsep = '@';
-       int myerrno = EINVAL;
-
-       if (ho == NULL || buffer == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       p = buffer;
-
-       /* h_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* h_aliases field */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       aliases = splitarray(p, q, COMMA);
-       if (aliases == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       /* h_addrtype field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       if (strcmp(tmpbuf, "AF_INET") == 0)
-               hoaddrtype = AF_INET;
-       else if (strcmp(tmpbuf, "AF_INET6") == 0)
-               hoaddrtype = AF_INET6;
-       else
-               goto error;
-
-
-       /* h_length field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       t = strtol(tmpbuf, &tb, 10);
-       if (*tb) {
-               goto error;     /*%< junk in value */
-       }
-       holength = (int)t;
-       if ((long) holength != t) {     /*%< value must have been too big. */
-               goto error;
-       }
-
-
-       /* h_addr_list field */
-       q = strchr(p, fieldsep);
-       if (q == NULL)
-               goto error;
-
-       /* count how many addresss are in there */
-       if (q > p + 1) {
-               for (addrcount = 1, r = p ; r != q ; r++) {
-                       if (*r == COMMA)
-                               addrcount++;
-               }
-       } else {
-               addrcount = 0;
-       }
-
-       hoaddrsize = (addrcount + 1) * sizeof (char *);
-       hohaddrlist = malloc(hoaddrsize);
-       if (hohaddrlist == NULL) {
-               myerrno = ENOMEM;
-               goto error;
-       }
-
-       memset(hohaddrlist, 0x0, hoaddrsize);
-
-       alist = hohaddrlist;
-       for (t = 0, r = p ; r != q ; p = r + 1, t++) {
-               char saved;
-               while (r != q && *r != COMMA) r++;
-               saved = *r;
-               *r = 0x0;
-
-               alist[t] = malloc(hoaddrtype == AF_INET ? 4 : 16);
-               if (alist[t] == NULL) {
-                       myerrno = ENOMEM;
-                       goto error;
-               }
-
-               if (inet_pton(hoaddrtype, p, alist[t]) == -1)
-                       goto error;
-               *r = saved;
-       }
-       alist[t] = NULL;
-
-       ho->h_name = name;
-       ho->h_aliases = aliases;
-       ho->h_addrtype = hoaddrtype;
-       ho->h_length = holength;
-       ho->h_addr_list = hohaddrlist;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       free_array(hohaddrlist, 0);
-       free_array(aliases, 0);
-
-       return (-1);
-}
-
-/* ------------------------- struct hostent------------------------- */
-
-
-
-/* +++++++++++++++++++++++++ struct netgrp +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_ng(const char *host, const char *user,
- *                    const char *domain, char *buffer, size_t *len)
- *
- * notes: \li
- *
- *     See note for irp_marshall_ng_start
- *
- * return: \li
- *
- *     0 on success, 0 on failure.
- *
- */
-
-int
-irp_marshall_ng(const char *host, const char *user, const char *domain,
-               char **buffer, size_t *len) {
-       size_t need = 1; /*%< for nul byte */
-       const char *fieldsep = ",";
-
-       if (len == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       need += 4;                     /*%< two parens and two commas */
-       need += (host == NULL ? 0 : strlen(host));
-       need += (user == NULL ? 0 : strlen(user));
-       need += (domain == NULL ? 0 : strlen(domain));
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       } else if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       (*buffer)[0] = '(';
-       (*buffer)[1] = '\0';
-
-       if (host != NULL)
-               strcat(*buffer, host);
-       strcat(*buffer, fieldsep);
-
-       if (user != NULL)
-               strcat(*buffer, user);
-       strcat(*buffer, fieldsep);
-
-       if (domain != NULL)
-               strcat(*buffer, domain);
-       strcat(*buffer, ")");
-
-       return (0);
-}
-
-
-
-/* ---------- */
-
-/*%
- * int irp_unmarshall_ng(const char **host, const char **user,
- *                      const char **domain, char *buffer)
- *
- * notes: \li
- *
- *     Unpacks the BUFFER into 3 character arrays it allocates and assigns
- *     to *HOST, *USER and *DOMAIN. If any field of the value is empty,
- *     then the corresponding paramater value will be set to NULL.
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- */
-
-int
-irp_unmarshall_ng(const char **hostp, const char **userp, const char **domainp,
-                 char *buffer)
-{
-       char *p, *q;
-       char fieldsep = ',';
-       int myerrno = EINVAL;
-       char *host, *user, *domain;
-
-       if (userp == NULL || hostp == NULL ||
-           domainp == NULL || buffer == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       host = user = domain = NULL;
-
-       p = buffer;
-       while (isspace((unsigned char)*p)) {
-               p++;
-       }
-       if (*p != '(') {
-               goto error;
-       }
-
-       q = p + 1;
-       while (*q && *q != fieldsep)
-               q++;
-       if (!*q) {
-               goto error;
-       } else if (q > p + 1) {
-               host = strndup(p, q - p);
-       }
-
-       p = q + 1;
-       if (!*p) {
-               goto error;
-       } else if (*p != fieldsep) {
-               q = p + 1;
-               while (*q && *q != fieldsep)
-                       q++;
-               if (!*q) {
-                       goto error;
-               }
-               user = strndup(p, q - p);
-       } else {
-               p++;
-       }
-
-       if (!*p) {
-               goto error;
-       } else if (*p != ')') {
-               q = p + 1;
-               while (*q && *q != ')')
-                       q++;
-               if (!*q) {
-                       goto error;
-               }
-               domain = strndup(p, q - p);
-       }
-       *hostp = host;
-       *userp = user;
-       *domainp = domain;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (host != NULL) free(host);
-       if (user != NULL) free(user);
-
-       return (-1);
-}
-
-/* ------------------------- struct netgrp ------------------------- */
-
-
-
-
-/* +++++++++++++++++++++++++ struct nwent +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_nw(struct nwent *ne, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See at top.
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_marshall_nw(struct nwent *ne, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char nAddrType[24];
-       char nNet[MAXPADDRSIZE];
-       const char *fieldsep = COLONSTR;
-
-       if (ne == NULL || len == NULL) {
-               return (-1);
-       }
-
-       strcpy(nAddrType, ADDR_T_STR(ne->n_addrtype));
-
-       if (inet_net_ntop(ne->n_addrtype, ne->n_addr, ne->n_length,
-                         nNet, sizeof nNet) == NULL) {
-               return (-1);
-       }
-
-
-       need += strlen(ne->n_name) + 1;
-       need += joinlength(ne->n_aliases) + 1;
-       need += strlen(nAddrType) + 1;
-       need += strlen(nNet) + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, ne->n_name);            strcat(*buffer, fieldsep);
-       joinarray(ne->n_aliases, *buffer, COMMA) ; strcat(*buffer, fieldsep);
-       strcat(*buffer, nAddrType);             strcat(*buffer, fieldsep);
-       strcat(*buffer, nNet);                  strcat(*buffer, fieldsep);
-
-       return (0);
-}
-
-/*%
- * int irp_unmarshall_nw(struct nwent *ne, char *buffer)
- *
- * notes: \li
- *
- *     See note up top.
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_unmarshall_nw(struct nwent *ne, char *buffer) {
-       char *p, *q;
-       int naddrtype;
-       long nnet;
-       int bits;
-       char *name = NULL;
-       char **aliases = NULL;
-       char tmpbuf[24];
-       char *tb;
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       if (ne == NULL || buffer == NULL) {
-               goto error;
-       }
-
-       p = buffer;
-
-       /* n_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* n_aliases field. Aliases are separated by commas */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       aliases = splitarray(p, q, COMMA);
-       if (aliases == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       /* h_addrtype field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       if (strcmp(tmpbuf, "AF_INET") == 0)
-               naddrtype = AF_INET;
-       else if (strcmp(tmpbuf, "AF_INET6") == 0)
-               naddrtype = AF_INET6;
-       else
-               goto error;
-
-
-       /* n_net field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       nnet = 0;
-       bits = inet_net_pton(naddrtype, tmpbuf, &nnet, sizeof nnet);
-       if (bits < 0) {
-               goto error;
-       }
-
-       /* nnet = ntohl(nnet); */ /* keep in network order for nwent */
-
-       ne->n_name = name;
-       ne->n_aliases = aliases;
-       ne->n_addrtype = naddrtype;
-       ne->n_length = bits;
-       ne->n_addr = malloc(sizeof nnet);
-       if (ne->n_addr == NULL) {
-               goto error;
-       }
-
-       memcpy(ne->n_addr, &nnet, sizeof nnet);
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       free_array(aliases, 0);
-
-       return (-1);
-}
-
-
-/* ------------------------- struct nwent ------------------------- */
-
-
-/* +++++++++++++++++++++++++ struct netent +++++++++++++++++++++++++ */
-
-/*%
- * int irp_marshall_ne(struct netent *ne, char **buffer, size_t *len)
- *
- * notes: \li
- *
- *     See at top.
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_marshall_ne(struct netent *ne, char **buffer, size_t *len) {
-       size_t need = 1;        /*%< for null byte */
-       char nAddrType[24];
-       char nNet[MAXPADDRSIZE];
-       const char *fieldsep = COLONSTR;
-       long nval;
-
-       if (ne == NULL || len == NULL) {
-               return (-1);
-       }
-
-       strcpy(nAddrType, ADDR_T_STR(ne->n_addrtype));
-
-       nval = htonl(ne->n_net);
-       if (inet_ntop(ne->n_addrtype, &nval, nNet, sizeof nNet) == NULL) {
-               return (-1);
-       }
-
-       need += strlen(ne->n_name) + 1;
-       need += joinlength(ne->n_aliases) + 1;
-       need += strlen(nAddrType) + 1;
-       need += strlen(nNet) + 1;
-
-       if (buffer == NULL) {
-               *len = need;
-               return (0);
-       }
-
-       if (*buffer != NULL && need > *len) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (*buffer == NULL) {
-               need += 2;              /*%< for CRLF */
-               *buffer = memget(need);
-               if (*buffer == NULL) {
-                       errno = ENOMEM;
-                       return (-1);
-               }
-
-               *len = need;
-       }
-
-       strcpy(*buffer, ne->n_name);            strcat(*buffer, fieldsep);
-       joinarray(ne->n_aliases, *buffer, COMMA) ; strcat(*buffer, fieldsep);
-       strcat(*buffer, nAddrType);             strcat(*buffer, fieldsep);
-       strcat(*buffer, nNet);                  strcat(*buffer, fieldsep);
-
-       return (0);
-}
-
-/*%
- * int irp_unmarshall_ne(struct netent *ne, char *buffer)
- *
- * notes: \li
- *
- *     See note up top.
- *
- * return: \li
- *
- *     0 on success and -1 on failure.
- *
- */
-
-int
-irp_unmarshall_ne(struct netent *ne, char *buffer) {
-       char *p, *q;
-       int naddrtype;
-       long nnet;
-       int bits;
-       char *name = NULL;
-       char **aliases = NULL;
-       char tmpbuf[24];
-       char *tb;
-       char fieldsep = ':';
-       int myerrno = EINVAL;
-
-       if (ne == NULL || buffer == NULL) {
-               goto error;
-       }
-
-       p = buffer;
-
-       /* n_name field */
-       name = NULL;
-       if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) {
-               goto error;
-       }
-
-
-       /* n_aliases field. Aliases are separated by commas */
-       q = strchr(p, fieldsep);
-       if (q == NULL) {
-               goto error;
-       }
-       aliases = splitarray(p, q, COMMA);
-       if (aliases == NULL) {
-               myerrno = errno;
-               goto error;
-       }
-       p = q + 1;
-
-
-       /* h_addrtype field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       if (strcmp(tmpbuf, "AF_INET") == 0)
-               naddrtype = AF_INET;
-       else if (strcmp(tmpbuf, "AF_INET6") == 0)
-               naddrtype = AF_INET6;
-       else
-               goto error;
-
-
-       /* n_net field */
-       tb = tmpbuf;
-       if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL ||
-           strlen(tb) == 0U) {
-               goto error;
-       }
-       bits = inet_net_pton(naddrtype, tmpbuf, &nnet, sizeof nnet);
-       if (bits < 0) {
-               goto error;
-       }
-       nnet = ntohl(nnet);
-
-       ne->n_name = name;
-       ne->n_aliases = aliases;
-       ne->n_addrtype = naddrtype;
-       ne->n_net = nnet;
-
-       return (0);
-
- error:
-       errno = myerrno;
-
-       if (name != NULL) free(name);
-       free_array(aliases, 0);
-
-       return (-1);
-}
-
-
-/* ------------------------- struct netent ------------------------- */
-
-
-/* =========================================================================== */
-
-/*%
- * static char ** splitarray(const char *buffer, const char *buffend, char delim)
- *
- * notes: \li
- *
- *     Split a delim separated astring. Not allowed
- *     to have two delims next to each other. BUFFER points to begining of
- *     string, BUFFEND points to one past the end of the string
- *     (i.e. points at where the null byte would be if null
- *     terminated).
- *
- * return: \li
- *
- *     Returns a malloced array of pointers, each pointer pointing to a
- *     malloced string. If BUFEER is an empty string, then return values is
- *     array of 1 pointer that is NULL. Returns NULL on failure.
- *
- */
-
-static char **
-splitarray(const char *buffer, const char *buffend, char delim) {
-       const char *p, *q;
-       int count = 0;
-       char **arr = NULL;
-       char **aptr;
-
-       if (buffend < buffer)
-               return (NULL);
-       else if (buffend > buffer && *buffer == delim)
-               return (NULL);
-       else if (buffend > buffer && *(buffend - 1) == delim)
-               return (NULL);
-
-       /* count the number of field and make sure none are empty */
-       if (buffend > buffer + 1) {
-               for (count = 1, q = buffer ; q != buffend ; q++) {
-                       if (*q == delim) {
-                               if (q > buffer && (*(q - 1) == delim)) {
-                                       errno = EINVAL;
-                                       return (NULL);
-                               }
-                               count++;
-                       }
-               }
-       }
-
-       if (count > 0) {
-               count++ ;               /*%< for NULL at end */
-               aptr = arr = malloc(count * sizeof (char *));
-               if (aptr == NULL) {
-                        errno = ENOMEM;
-                        return (NULL);
-                }
-
-               memset(arr, 0x0, count * sizeof (char *));
-               for (p = buffer ; p < buffend ; p++) {
-                       for (q = p ; *q != delim && q != buffend ; q++)
-                               /* nothing */;
-                       *aptr = strndup(p, q - p);
-
-                       p = q;
-                       aptr++;
-               }
-               *aptr = NULL;
-       } else {
-               arr = malloc(sizeof (char *));
-               if (arr == NULL) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-
-               *arr = NULL;
-       }
-
-       return (arr);
-}
-
-/*%
- * static size_t joinlength(char * const *argv)
- *
- * return: \li
- *
- *     the number of bytes in all the arrays pointed at
- *     by argv, including their null bytes(which will usually be turned
- *     into commas).
- *
- *
- */
-
-static size_t
-joinlength(char * const *argv) {
-       int len = 0;
-
-       while (argv && *argv) {
-               len += (strlen(*argv) + 1);
-               argv++;
-       }
-
-       return (len);
-}
-
-/*%
- * int joinarray(char * const *argv, char *buffer, char delim)
- *
- * notes: \li
- *
- *     Copy all the ARGV strings into the end of BUFFER
- *     separating them with DELIM.  BUFFER is assumed to have
- *     enough space to hold everything and to be already null-terminated.
- *
- * return: \li
- *
- *     0 unless argv or buffer is NULL.
- *
- *
- */
-
-static int
-joinarray(char * const *argv, char *buffer, char delim) {
-       char * const *p;
-       char sep[2];
-
-       if (argv == NULL || buffer == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       sep[0] = delim;
-       sep[1] = 0x0;
-
-       for (p = argv ; *p != NULL ; p++) {
-               strcat(buffer, *p);
-               if (*(p + 1) != NULL) {
-                       strcat(buffer, sep);
-               }
-       }
-
-       return (0);
-}
-
-/*%
- * static char * getfield(char **res, size_t reslen, char **ptr, char delim)
- *
- * notes: \li
- *
- *     Stores in *RES, which is a buffer of length RESLEN, a
- *     copy of the bytes from *PTR up to and including the first
- *     instance of DELIM. If *RES is NULL, then it will be
- *     assigned a malloced buffer to hold the copy. *PTR is
- *     modified to point at the found delimiter.
- *
- * return: \li
- *
- *     If there was no delimiter, then NULL is returned,
- *     otherewise *RES is returned.
- *
- */
-
-static char *
-getfield(char **res, size_t reslen, char **ptr, char delim) {
-       char *q;
-
-       if (res == NULL || ptr == NULL || *ptr == NULL) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       q = strchr(*ptr, delim);
-
-       if (q == NULL) {
-               errno = EINVAL;
-               return (NULL);
-       } else {
-               if (*res == NULL) {
-                       *res = strndup(*ptr, q - *ptr);
-               } else {
-                       if ((size_t)(q - *ptr + 1) > reslen) { /*%< to big for res */
-                               errno = EINVAL;
-                               return (NULL);
-                       } else {
-                               strncpy(*res, *ptr, q - *ptr);
-                               (*res)[q - *ptr] = 0x0;
-                       }
-               }
-               *ptr = q + 1;
-       }
-
-       return (*res);
-}
-
-
-
-
-
-#ifndef HAVE_STRNDUP
-/*
- * static char * strndup(const char *str, size_t len)
- *
- * notes: \li
- *
- *     like strdup, except do len bytes instead of the whole string. Always
- *     null-terminates.
- *
- * return: \li
- *
- *     The newly malloced string.
- *
- */
-
-static char *
-strndup(const char *str, size_t len) {
-       char *p = malloc(len + 1);
-
-       if (p == NULL)
-               return (NULL);
-       strncpy(p, str, len);
-       p[len] = 0x0;
-       return (p);
-}
-#endif
-
-#if WANT_MAIN
-
-/*%
- * static int strcmp_nws(const char *a, const char *b)
- *
- * notes: \li
- *
- *     do a strcmp, except uneven lengths of whitespace compare the same
- *
- * return: \li
- *
- */
-
-static int
-strcmp_nws(const char *a, const char *b) {
-       while (*a && *b) {
-               if (isspace(*a) && isspace(*b)) {
-                       do {
-                               a++;
-                       } while (isspace(*a));
-                       do {
-                               b++;
-                       } while (isspace(*b));
-               }
-               if (*a < *b)
-                       return (-1);
-               else if (*a > *b)
-                       return (1);
-
-               a++;
-               b++;;
-       }
-
-       if (*a == *b)
-               return (0);
-       else if (*a > *b)
-               return (1);
-       else
-               return (-1);
-}
-
-#endif
-
-/*%
- * static void free_array(char **argv, size_t entries)
- *
- * notes: \li
- *
- *     Free argv and each of the pointers inside it. The end of
- *     the array is when a NULL pointer is found inside. If
- *     entries is > 0, then NULL pointers inside the array do
- *     not indicate the end of the array.
- *
- */
-
-static void
-free_array(char **argv, size_t entries) {
-       char **p = argv;
-       int useEntries = (entries > 0U);
-
-       if (argv == NULL)
-               return;
-
-       while ((useEntries && entries > 0U) || *p) {
-               if (*p)
-                       free(*p);
-               p++;
-               if (useEntries)
-                       entries--;
-       }
-       free(argv);
-}
-
-
-
-
-
-/* ************************************************** */
-
-#if WANT_MAIN
-
-/*% takes an option to indicate what sort of marshalling(read the code) and
-   an argument. If the argument looks like a marshalled buffer(has a ':'
-   embedded) then it's unmarshalled and the remarshalled and the new string
-   is compared to the old one.
-*/
-
-int
-main(int argc, char **argv) {
-       char buffer[1024];
-       char *b = &buffer[0];
-       size_t len = sizeof buffer;
-       char option;
-
-       if (argc < 2 || argv[1][0] != '-')
-               exit(1);
-
-       option = argv[1][1];
-       argv++;
-       argc--;
-
-
-#if 0
-       {
-               char buff[10];
-               char *p = argv[1], *q = &buff[0];
-
-               while (getfield(&q, sizeof buff, &p, ':') != NULL) {
-                       printf("field: \"%s\"\n", q);
-                       p++;
-               }
-               printf("p is now \"%s\"\n", p);
-       }
-#endif
-
-#if 0
-       {
-               char **x = splitarray(argv[1], argv[1] + strlen(argv[1]),
-                                     argv[2][0]);
-               char **p;
-
-               if (x == NULL)
-                       printf("split failed\n");
-
-               for (p = x ; p != NULL && *p != NULL ; p++) {
-                       printf("\"%s\"\n", *p);
-               }
-       }
-#endif
-
-#if 1
-       switch(option) {
-       case 'n': {
-               struct nwent ne;
-               int i;
-
-               if (strchr(argv[1], ':') != NULL) {
-                       if (irp_unmarshall_nw(&ne, argv[1]) != 0) {
-                               printf("Unmarhsalling failed\n");
-                               exit(1);
-                       }
-
-                       printf("Name: \"%s\"\n", ne.n_name);
-                       printf("Aliases:");
-                       for (i = 0 ; ne.n_aliases[i] != NULL ; i++)
-                               printf("\n\t\"%s\"", ne.n_aliases[i]);
-                       printf("\nAddrtype: %s\n", ADDR_T_STR(ne.n_addrtype));
-                       inet_net_ntop(ne.n_addrtype, ne.n_addr, ne.n_length,
-                                     buffer, sizeof buffer);
-                       printf("Net: \"%s\"\n", buffer);
-                       *((long*)ne.n_addr) = htonl(*((long*)ne.n_addr));
-                       inet_net_ntop(ne.n_addrtype, ne.n_addr, ne.n_length,
-                                     buffer, sizeof buffer);
-                       printf("Corrected Net: \"%s\"\n", buffer);
-               } else {
-                       struct netent *np1 = getnetbyname(argv[1]);
-                       ne.n_name = np1->n_name;
-                       ne.n_aliases = np1->n_aliases;
-                       ne.n_addrtype = np1->n_addrtype;
-                       ne.n_addr = &np1->n_net;
-                       ne.n_length = (IN_CLASSA(np1->n_net) ?
-                                      8 :
-                                      (IN_CLASSB(np1->n_net) ?
-                                       16 :
-                                       (IN_CLASSC(np1->n_net) ?
-                                        24 : -1)));
-                       np1->n_net = htonl(np1->n_net);
-                       if (irp_marshall_nw(&ne, &b, &len) != 0) {
-                               printf("Marshalling failed\n");
-                       }
-                       printf("%s\n", b);
-               }
-               break;
-       }
-
-
-       case 'r': {
-               char **hosts, **users, **domains;
-               size_t entries;
-               int i;
-               char *buff;
-               size_t size;
-               char *ngname;
-
-               if (strchr(argv[1], '(') != NULL) {
-                       if (irp_unmarshall_ng(&ngname, &entries,
-                                             &hosts, &users, &domains,
-                                             argv[1]) != 0) {
-                               printf("unmarshall failed\n");
-                               exit(1);
-                       }
-
-#define STRVAL(x) (x == NULL ? "*" : x)
-
-                       printf("%s {\n", ngname);
-                       for (i = 0 ; i < entries ; i++)
-                               printf("\t\"%s\" : \"%s\" : \"%s\"\n",
-                                      STRVAL(hosts[i]),
-                                      STRVAL(users[i]),
-                                      STRVAL(domains[i]));
-                       printf("}\n\n\n");
-
-
-                       irp_marshall_ng_start(ngname, NULL, &size);
-                       for (i = 0 ; i < entries ; i++)
-                               irp_marshall_ng_next(hosts[i], users[i],
-                                                    domains[i], NULL, &size);
-                       irp_marshall_ng_end(NULL, &size);
-
-                       buff = malloc(size);
-
-                       irp_marshall_ng_start(ngname, buff, &size);
-                       for (i = 0 ; i < entries ; i++) {
-                               if (irp_marshall_ng_next(hosts[i], users[i],
-                                                        domains[i], buff,
-                                                        &size) != 0)
-                                       printf("next marshalling failed.\n");
-                       }
-                       irp_marshall_ng_end(buff, &size);
-
-                       if (strcmp_nws(argv[1], buff) != 0) {
-                               printf("compare failed:\n\t%s\n\t%s\n",
-                                      buffer, argv[1]);
-                       } else {
-                               printf("compare ok\n");
-                       }
-               } else {
-                       char *h, *u, *d, *buff;
-                       size_t size;
-
-                       /* run through two times. First to figure out how
-                          much of a buffer we need. Second to do the
-                          actual marshalling */
-
-                       setnetgrent(argv[1]);
-                       irp_marshall_ng_start(argv[1], NULL, &size);
-                       while (getnetgrent(&h, &u, &d) == 1)
-                               irp_marshall_ng_next(h, u, d, NULL, &size);
-                       irp_marshall_ng_end(NULL, &size);
-                       endnetgrent(argv[1]);
-
-                       buff = malloc(size);
-
-                       setnetgrent(argv[1]);
-                       if (irp_marshall_ng_start(argv[1], buff, &size) != 0)
-                               printf("Marshalling start failed\n");
-
-                       while (getnetgrent(&h, &u, &d) == 1) {
-                               if (irp_marshall_ng_next(h, u, d, buff, &size)
-                                   != 0) {
-                                       printf("Marshalling failed\n");
-                               }
-                       }
-
-                       irp_marshall_ng_end(buff, &size);
-                       endnetgrent();
-
-                       printf("success: %s\n", buff);
-               }
-               break;
-       }
-
-
-
-       case 'h': {
-               struct hostent he, *hp;
-               int i;
-
-
-               if (strchr(argv[1], '@') != NULL) {
-                       if (irp_unmarshall_ho(&he, argv[1]) != 0) {
-                               printf("unmarshall failed\n");
-                               exit(1);
-                       }
-
-                       printf("Host: \"%s\"\nAliases:", he.h_name);
-                       for (i = 0 ; he.h_aliases[i] != NULL ; i++)
-                               printf("\n\t\t\"%s\"", he.h_aliases[i]);
-                       printf("\nAddr Type: \"%s\"\n",
-                              ADDR_T_STR(he.h_addrtype));
-                       printf("Length: %d\nAddresses:", he.h_length);
-                       for (i = 0 ; he.h_addr_list[i] != 0 ; i++) {
-                               inet_ntop(he.h_addrtype, he.h_addr_list[i],
-                                         buffer, sizeof buffer);
-                               printf("\n\t\"%s\"\n", buffer);
-                       }
-                       printf("\n\n");
-
-                       irp_marshall_ho(&he, &b, &len);
-                       if (strcmp(argv[1], buffer) != 0) {
-                               printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n",
-                                      buffer, argv[1]);
-                       } else {
-                               printf("compare ok\n");
-                       }
-               } else {
-                       if ((hp = gethostbyname(argv[1])) == NULL) {
-                               perror("gethostbyname");
-                               printf("\"%s\"\n", argv[1]);
-                               exit(1);
-                       }
-
-                       if (irp_marshall_ho(hp, &b, &len) != 0) {
-                               printf("irp_marshall_ho failed\n");
-                               exit(1);
-                       }
-
-                       printf("success: \"%s\"\n", buffer);
-               }
-               break;
-       }
-
-
-       case 's': {
-               struct servent *sv;
-               struct servent sv1;
-
-               if (strchr(argv[1], ':') != NULL) {
-                       sv = &sv1;
-                       memset(sv, 0xef, sizeof (struct servent));
-                       if (irp_unmarshall_sv(sv, argv[1]) != 0) {
-                               printf("unmarshall failed\n");
-
-                       }
-
-                       irp_marshall_sv(sv, &b, &len);
-                       if (strcmp(argv[1], buffer) != 0) {
-                               printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n",
-                                      buffer, argv[1]);
-                       } else {
-                               printf("compare ok\n");
-                       }
-               } else {
-                       if ((sv = getservbyname(argv[1], argv[2])) == NULL) {
-                               perror("getservent");
-                               exit(1);
-                       }
-
-                       if (irp_marshall_sv(sv, &b, &len) != 0) {
-                               printf("irp_marshall_sv failed\n");
-                               exit(1);
-                       }
-
-                       printf("success: \"%s\"\n", buffer);
-               }
-               break;
-       }
-
-       case 'g': {
-               struct group *gr;
-               struct group gr1;
-
-               if (strchr(argv[1], ':') != NULL) {
-                       gr = &gr1;
-                       memset(gr, 0xef, sizeof (struct group));
-                       if (irp_unmarshall_gr(gr, argv[1]) != 0) {
-                               printf("unmarshall failed\n");
-
-                       }
-
-                       irp_marshall_gr(gr, &b, &len);
-                       if (strcmp(argv[1], buffer) != 0) {
-                               printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n",
-                                      buffer, argv[1]);
-                       } else {
-                               printf("compare ok\n");
-                       }
-               } else {
-                       if ((gr = getgrnam(argv[1])) == NULL) {
-                               perror("getgrnam");
-                               exit(1);
-                       }
-
-                       if (irp_marshall_gr(gr, &b, &len) != 0) {
-                               printf("irp_marshall_gr failed\n");
-                               exit(1);
-                       }
-
-                       printf("success: \"%s\"\n", buffer);
-               }
-               break;
-       }
-
-
-       case 'p': {
-               struct passwd *pw;
-               struct passwd pw1;
-
-               if (strchr(argv[1], ':') != NULL) {
-                       pw = &pw1;
-                       memset(pw, 0xef, sizeof (*pw));
-                       if (irp_unmarshall_pw(pw, argv[1]) != 0) {
-                               printf("unmarshall failed\n");
-                               exit(1);
-                       }
-
-                       printf("User: \"%s\"\nPasswd: \"%s\"\nUid: %ld\nGid: %ld\n",
-                              pw->pw_name, pw->pw_passwd, (long)pw->pw_uid,
-                              (long)pw->pw_gid);
-                       printf("Class: \"%s\"\nChange: %ld\nGecos: \"%s\"\n",
-                              pw->pw_class, (long)pw->pw_change, pw->pw_gecos);
-                       printf("Shell: \"%s\"\nDirectory: \"%s\"\n",
-                              pw->pw_shell, pw->pw_dir);
-
-                       pw = getpwnam(pw->pw_name);
-                       irp_marshall_pw(pw, &b, &len);
-                       if (strcmp(argv[1], buffer) != 0) {
-                               printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n",
-                                      buffer, argv[1]);
-                       } else {
-                               printf("compare ok\n");
-                       }
-               } else {
-                       if ((pw = getpwnam(argv[1])) == NULL) {
-                               perror("getpwnam");
-                               exit(1);
-                       }
-
-                       if (irp_marshall_pw(pw, &b, &len) != 0) {
-                               printf("irp_marshall_pw failed\n");
-                               exit(1);
-                       }
-
-                       printf("success: \"%s\"\n", buffer);
-               }
-               break;
-       }
-
-       default:
-               printf("Wrong option: %c\n", option);
-               break;
-       }
-
-#endif
-
-       return (0);
-}
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/irs_data.c b/lib/bind/irs/irs_data.c
deleted file mode 100644 (file)
index cd8ba00..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: irs_data.c,v 1.12 2007/08/27 03:32:26 marka Exp $";
-#endif
-
-#include "port_before.h"
-
-#ifndef __BIND_NOSTATIC
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <isc/memcluster.h>
-
-#ifdef DO_PTHREADS
-#include <pthread.h>
-#endif
-
-#include <irs.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#include "irs_data.h"
-#undef _res
-#if !(__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-#undef h_errno
-extern int h_errno;
-#endif
-
-extern struct __res_state _res;
-
-#ifdef DO_PTHREADS
-static pthread_key_t   key;
-static int             once = 0;
-#else
-static struct net_data *net_data;
-#endif
-
-void
-irs_destroy(void) {
-#ifndef DO_PTHREADS
-       if (net_data != NULL)
-               net_data_destroy(net_data);
-       net_data = NULL;
-#endif
-}
-
-void
-net_data_destroy(void *p) {
-       struct net_data *net_data = p;
-
-       res_ndestroy(net_data->res);
-       if (net_data->gr != NULL) {
-               (*net_data->gr->close)(net_data->gr);
-               net_data->gr = NULL;
-       }
-       if (net_data->pw != NULL) {
-               (*net_data->pw->close)(net_data->pw);
-               net_data->pw = NULL;
-       }
-       if (net_data->sv != NULL) {
-               (*net_data->sv->close)(net_data->sv);
-               net_data->sv = NULL;
-       }
-       if (net_data->pr != NULL) {
-               (*net_data->pr->close)(net_data->pr);
-               net_data->pr = NULL;
-       }
-       if (net_data->ho != NULL) {
-               (*net_data->ho->close)(net_data->ho);
-               net_data->ho = NULL;
-       }
-       if (net_data->nw != NULL) {
-               (*net_data->nw->close)(net_data->nw);
-               net_data->nw = NULL;
-       }
-       if (net_data->ng != NULL) {
-               (*net_data->ng->close)(net_data->ng);
-               net_data->ng = NULL;
-       }
-       if (net_data->ho_data != NULL) {
-               free(net_data->ho_data);
-               net_data->ho_data = NULL;
-       }
-       if (net_data->nw_data != NULL) {
-               free(net_data->nw_data);
-               net_data->nw_data = NULL;
-       }
-
-       (*net_data->irs->close)(net_data->irs);
-       memput(net_data, sizeof *net_data);
-}
-
-/*%
- *  applications that need a specific config file other than
- * _PATH_IRS_CONF should call net_data_init directly rather than letting
- *   the various wrapper functions make the first call. - brister
- */
-
-struct net_data *
-net_data_init(const char *conf_file) {
-#ifdef DO_PTHREADS
-#ifndef LIBBIND_MUTEX_INITIALIZER
-#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#endif
-       static pthread_mutex_t keylock = LIBBIND_MUTEX_INITIALIZER;
-       struct net_data *net_data;
-
-       if (!once) {
-               if (pthread_mutex_lock(&keylock) != 0)
-                       return (NULL);
-               if (!once) {
-                       if (pthread_key_create(&key, net_data_destroy) != 0) {
-                               (void)pthread_mutex_unlock(&keylock);
-                               return (NULL);
-                       }
-                       once = 1;
-               }
-               if (pthread_mutex_unlock(&keylock) != 0)
-                       return (NULL);
-       }
-       net_data = pthread_getspecific(key);
-#endif
-
-       if (net_data == NULL) {
-               net_data = net_data_create(conf_file);
-               if (net_data == NULL)
-                       return (NULL);
-#ifdef DO_PTHREADS
-               if (pthread_setspecific(key, net_data) != 0) {
-                       net_data_destroy(net_data);
-                       return (NULL);
-               }
-#endif
-       }
-
-       return (net_data);
-}
-
-struct net_data *
-net_data_create(const char *conf_file) {
-       struct net_data *net_data;
-
-       net_data = memget(sizeof (struct net_data));
-       if (net_data == NULL)
-               return (NULL);
-       memset(net_data, 0, sizeof (struct net_data));
-
-       if ((net_data->irs = irs_gen_acc("", conf_file)) == NULL) {
-               memput(net_data, sizeof (struct net_data));
-               return (NULL);
-       }
-#ifndef DO_PTHREADS
-       (*net_data->irs->res_set)(net_data->irs, &_res, NULL);
-#endif
-
-       net_data->res = (*net_data->irs->res_get)(net_data->irs);
-       if (net_data->res == NULL) {
-               (*net_data->irs->close)(net_data->irs);
-               memput(net_data, sizeof (struct net_data));
-               return (NULL);
-       }
-
-       if ((net_data->res->options & RES_INIT) == 0U &&
-           res_ninit(net_data->res) == -1) {
-               (*net_data->irs->close)(net_data->irs);
-               memput(net_data, sizeof (struct net_data));
-               return (NULL);
-       }
-
-       return (net_data);
-}
-
-void
-net_data_minimize(struct net_data *net_data) {
-       res_nclose(net_data->res);
-}
-
-#ifdef _REENTRANT
-struct __res_state *
-__res_state(void) {
-       /* NULL param here means use the default config file. */
-       struct net_data *net_data = net_data_init(NULL);
-       if (net_data && net_data->res)
-               return (net_data->res);
-
-       return (&_res);
-}
-#else
-#ifdef __linux
-struct __res_state *
-__res_state(void) {
-       return (&_res);
-}
-#endif
-#endif
-
-int *
-__h_errno(void) {
-       /* NULL param here means use the default config file. */
-       struct net_data *net_data = net_data_init(NULL);
-       if (net_data && net_data->res)
-               return (&net_data->res->res_h_errno);
-#if !(__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-       return(&_res.res_h_errno);
-#else
-       return (&h_errno);
-#endif
-}
-
-void
-__h_errno_set(struct __res_state *res, int err) {
-
-
-#if (__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-       res->res_h_errno = err;
-#else
-       h_errno = res->res_h_errno = err;
-#endif
-}
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/irs_data.h b/lib/bind/irs/irs_data.h
deleted file mode 100644 (file)
index cb814fd..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irs_data.h,v 1.3 2005/04/27 04:56:30 sra Exp $
- */
-
-#ifndef __BIND_NOSTATIC
-
-#define        net_data_init           __net_data_init
-
-struct net_data {
-       struct irs_acc *        irs;
-
-       struct irs_gr *         gr;
-       struct irs_pw *         pw;
-       struct irs_sv *         sv;
-       struct irs_pr *         pr;
-       struct irs_ho *         ho;
-       struct irs_nw *         nw;
-       struct irs_ng *         ng;
-
-       struct group *          gr_last;
-       struct passwd *         pw_last;
-       struct servent *        sv_last;
-       struct protoent *       pr_last;
-       struct netent *         nw_last; /*%< should have been ne_last */
-       struct nwent *          nww_last;
-       struct hostent *        ho_last;
-
-       unsigned int            gr_stayopen :1;
-       unsigned int            pw_stayopen :1;
-       unsigned int            sv_stayopen :1;
-       unsigned int            pr_stayopen :1;
-       unsigned int            ho_stayopen :1;
-       unsigned int            nw_stayopen :1;
-
-       void *                  nw_data;
-       void *                  ho_data;
-
-       struct __res_state *    res;    /*%< for gethostent.c */
-};
-
-extern struct net_data *       net_data_init(const char *conf_file);
-extern void                    net_data_minimize(struct net_data *);
-
-#endif /*__BIND_NOSTATIC*/
-
-/*! \file */
diff --git a/lib/bind/irs/irs_p.h b/lib/bind/irs/irs_p.h
deleted file mode 100644 (file)
index 2a0a933..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: irs_p.h,v 1.3 2005/04/27 04:56:30 sra Exp $
- */
-
-#ifndef _IRS_P_H_INCLUDED
-#define _IRS_P_H_INCLUDED
-
-#include <stdio.h>
-
-#include "pathnames.h"
-
-#define IRS_SV_MAXALIASES      35
-
-struct lcl_sv {
-       FILE *          fp;
-       char            line[BUFSIZ+1];
-       struct servent  serv;
-       char *          serv_aliases[IRS_SV_MAXALIASES];
-};
-
-#define        irs_nul_ng      __irs_nul_ng
-#define        map_v4v6_address __map_v4v6_address
-#define        make_group_list __make_group_list
-#define        irs_lclsv_fnxt  __irs_lclsv_fnxt
-
-extern void            map_v4v6_address(const char *src, char *dst);
-extern int             make_group_list(struct irs_gr *, const char *,
-                                       gid_t, gid_t *, int *);
-extern struct irs_ng * irs_nul_ng(struct irs_acc *);
-extern struct servent * irs_lclsv_fnxt(struct lcl_sv *);
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/lcl.c b/lib/bind/irs/lcl.c
deleted file mode 100644 (file)
index ea78a25..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: lcl.c,v 1.4 2005/04/27 04:56:30 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <sys/types.h>
-#include <netinet/in.h> 
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "lcl_p.h"
-
-/* Forward. */
-
-static void            lcl_close(struct irs_acc *);
-static struct __res_state *    lcl_res_get(struct irs_acc *);
-static void            lcl_res_set(struct irs_acc *, struct __res_state *,
-                               void (*)(void *));
-
-/* Public */
-
-struct irs_acc *
-irs_lcl_acc(const char *options) {
-       struct irs_acc *acc;
-       struct lcl_p *lcl;
-
-       UNUSED(options);
-
-       if (!(acc = memget(sizeof *acc))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(acc, 0x5e, sizeof *acc);
-       if (!(lcl = memget(sizeof *lcl))) {
-               errno = ENOMEM;
-               free(acc);
-               return (NULL);
-       }
-       memset(lcl, 0x5e, sizeof *lcl);
-       lcl->res = NULL;
-       lcl->free_res = NULL;
-       acc->private = lcl;
-#ifdef WANT_IRS_GR
-       acc->gr_map = irs_lcl_gr;
-#else
-       acc->gr_map = NULL;
-#endif
-#ifdef WANT_IRS_PW
-       acc->pw_map = irs_lcl_pw;
-#else
-       acc->pw_map = NULL;
-#endif
-       acc->sv_map = irs_lcl_sv;
-       acc->pr_map = irs_lcl_pr;
-       acc->ho_map = irs_lcl_ho;
-       acc->nw_map = irs_lcl_nw;
-       acc->ng_map = irs_lcl_ng;
-       acc->res_get = lcl_res_get;
-       acc->res_set = lcl_res_set;
-       acc->close = lcl_close;
-       return (acc);
-}
-
-/* Methods */
-static struct __res_state *
-lcl_res_get(struct irs_acc *this) {
-       struct lcl_p *lcl = (struct lcl_p *)this->private;
-
-       if (lcl->res == NULL) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (res == NULL)
-                       return (NULL);
-               memset(res, 0, sizeof *res);
-               lcl_res_set(this, res, free);
-       }
-
-       if ((lcl->res->options & RES_INIT) == 0U &&
-           res_ninit(lcl->res) < 0)
-               return (NULL);
-
-       return (lcl->res);
-}
-
-static void
-lcl_res_set(struct irs_acc *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct lcl_p *lcl = (struct lcl_p *)this->private;
-
-       if (lcl->res && lcl->free_res) {
-               res_nclose(lcl->res);
-               (*lcl->free_res)(lcl->res);
-       }
-
-       lcl->res = res;
-       lcl->free_res = free_res;
-}
-
-static void
-lcl_close(struct irs_acc *this) {
-       struct lcl_p *lcl = (struct lcl_p *)this->private;
-
-       if (lcl) {
-               if (lcl->free_res)
-                       (*lcl->free_res)(lcl->res);
-               memput(lcl, sizeof *lcl);
-       }
-       memput(this, sizeof *this);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/lcl_gr.c b/lib/bind/irs/lcl_gr.c
deleted file mode 100644 (file)
index ce7e347..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_gr.c,v 1.3 2005/04/27 04:56:30 sra Exp $";
-/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */
-/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $     */
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <grp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "irs_p.h"
-#include "lcl_p.h"
-#include "irp_p.h"
-
-#include "port_after.h"
-
-
-/* Types. */
-
-struct pvt {
-       FILE *          fp;
-       /*%<
-        * Need space to store the entries read from the group file.
-        * The members list also needs space per member, and the
-        * strings making up the user names must be allocated
-        * somewhere.  Rather than doing lots of small allocations,
-        * we keep one buffer and resize it as needed.
-        */
-       struct group    group;
-       size_t          nmemb;          /*%< Malloc'd max index of gr_mem[]. */
-       char *          membuf;
-       size_t          membufsize;
-};
-
-/* Forward. */
-
-static void            gr_close(struct irs_gr *);
-static struct group *  gr_next(struct irs_gr *);
-static struct group *  gr_byname(struct irs_gr *, const char *);
-static struct group *  gr_bygid(struct irs_gr *, gid_t);
-static void            gr_rewind(struct irs_gr *);
-static void            gr_minimize(struct irs_gr *);
-
-static int             grstart(struct pvt *);
-static char *          grnext(struct pvt *);
-static struct group *  grscan(struct irs_gr *, int, gid_t, const char *);
-
-/* Portability. */
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-/* Public. */
-
-struct irs_gr *
-irs_lcl_gr(struct irs_acc *this) {
-       struct irs_gr *gr;
-       struct pvt *pvt;
-
-       UNUSED(this);
-
-       if (!(gr = memget(sizeof *gr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(gr, 0x5e, sizeof *gr);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(gr, sizeof *gr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       gr->private = pvt;
-       gr->close = gr_close;
-       gr->next = gr_next;
-       gr->byname = gr_byname;
-       gr->bygid = gr_bygid;
-       gr->rewind = gr_rewind;
-       gr->list = make_group_list;
-       gr->minimize = gr_minimize;
-       gr->res_get = NULL;
-       gr->res_set = NULL;
-       return (gr);
-}
-
-/* Methods. */
-
-static void
-gr_close(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp)
-               (void)fclose(pvt->fp);
-       if (pvt->group.gr_mem)
-               free(pvt->group.gr_mem);
-       if (pvt->membuf)
-               free(pvt->membuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct group *
-gr_next(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->fp && !grstart(pvt))
-               return (NULL);
-       return (grscan(this, 0, 0, NULL));
-}
-
-static struct group *
-gr_byname(struct irs_gr *this, const char *name) {
-       if (!grstart((struct pvt *)this->private))
-               return (NULL);
-       return (grscan(this, 1, 0, name));
-}
-
-static struct group *
-gr_bygid(struct irs_gr *this, gid_t gid) {
-       if (!grstart((struct pvt *)this->private))
-               return (NULL);
-       return (grscan(this, 1, gid, NULL));
-}
-
-static void
-gr_rewind(struct irs_gr *this) {
-       (void) grstart((struct pvt *)this->private);
-}
-
-static void
-gr_minimize(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp != NULL) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-/* Private. */
-
-static int
-grstart(struct pvt *pvt) {
-       if (pvt->fp) {
-               if (fseek(pvt->fp, 0L, SEEK_SET) == 0)
-                       return (1);
-               (void)fclose(pvt->fp);
-       }
-       if (!(pvt->fp = fopen(_PATH_GROUP, "r")))
-               return (0);
-       if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) {
-               fclose(pvt->fp);
-               return (0);
-       }
-       return (1);
-}
-
-#define        INITIAL_NMEMB   30                      /*%< about 120 bytes */
-#define        INITIAL_BUFSIZ  (INITIAL_NMEMB * 8)     /*%< about 240 bytes */
-static char *
-grnext(struct pvt *pvt) {
-       char *w, *e;
-       int ch;
-
-       /* Make sure we have a buffer. */
-       if (pvt->membuf == NULL) {
-               pvt->membuf = malloc(INITIAL_BUFSIZ);
-               if (pvt->membuf == NULL) {
- enomem:
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               pvt->membufsize = INITIAL_BUFSIZ;
-       }
-
-       /* Read until EOF or EOL. */
-       w = pvt->membuf;
-       e = pvt->membuf + pvt->membufsize;
-       while ((ch = fgetc(pvt->fp)) != EOF && ch != '\n') {
-               /* Make sure we have room for this character and a \0. */
-               if (w + 1 == e) {
-                       size_t o = w - pvt->membuf;
-                       size_t n = pvt->membufsize * 2;
-                       char *t = realloc(pvt->membuf, n);
-
-                       if (t == NULL)
-                               goto enomem;
-                       pvt->membuf = t;
-                       pvt->membufsize = n;
-                       w = pvt->membuf + o;
-                       e = pvt->membuf + pvt->membufsize;
-               }
-               /* Store it. */
-               *w++ = (char)ch;
-       }
-
-       /* Hitting EOF on the first character really does mean EOF. */
-       if (w == pvt->membuf && ch == EOF) {
-               errno = ENOENT;
-               return (NULL);
-       }
-
-       /* Last line of /etc/group need not end with \n; we don't care. */
-       *w = '\0';
-       return (pvt->membuf);
-}
-
-static struct group *
-grscan(struct irs_gr *this, int search, gid_t gid, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       size_t n;
-       char *bp, **m, *p;
-
-       /* Read lines until we find one that matches our search criteria. */
-       for (;;) {
-               if ((bp = grnext(pvt)) == NULL)
-                       return (NULL);
-
-               /* Optimize the usual case of searching for a name. */
-               pvt->group.gr_name = strsep(&bp, ":");
-               if (search && name != NULL &&
-                   strcmp(pvt->group.gr_name, name) != 0)
-                       continue;
-               if (bp == NULL || *bp == '\0')
-                       goto corrupt;
-
-               /* Skip past the password field. */
-               pvt->group.gr_passwd = strsep(&bp, ":");
-               if (bp == NULL || *bp == '\0')
-                       goto corrupt;
-
-               /* Checking for a gid. */
-               if ((p = strsep(&bp, ":")) == NULL)
-                       continue;
-               /*
-                * Unlike the tests above, the test below is supposed to be
-                * testing 'p' and not 'bp', in case you think it's a typo.
-                */
-               if (p == NULL || *p == '\0') {
- corrupt:
-                       /* warning: corrupted %s file!", _PATH_GROUP */
-                       continue;
-               }
-               pvt->group.gr_gid = atoi(p);
-               if (search && name == NULL && (gid_t)pvt->group.gr_gid != gid)
-                       continue;
-
-               /* We want this record. */
-               break;
-       }
-
-       /*
-        * Count commas to find out how many members there might be.
-        * Note that commas separate, so if there is one comma there
-        * can be two members (group:*:id:user1,user2).  Add another
-        * to account for the NULL terminator.  As above, allocate
-        * largest of INITIAL_NMEMB, or 2*n.
-        */
-       n = 1;
-       if (bp != NULL)
-               for (n = 2, p = bp; (p = strpbrk(p, ", ")) != NULL; ++n)
-                       p += strspn(p, ", ");
-       if (n > pvt->nmemb || pvt->group.gr_mem == NULL) {
-               if ((n *= 2) < INITIAL_NMEMB)
-                       n = INITIAL_NMEMB;
-               if ((m = realloc(pvt->group.gr_mem, n * sizeof *m)) == NULL)
-                       return (NULL);
-               pvt->group.gr_mem = m;
-               pvt->nmemb = n;
-       }
-
-       /* Set the name pointers. */
-       for (m = pvt->group.gr_mem; (p = strsep(&bp, ", ")) != NULL;)
-               if (p[0] != '\0')
-                       *m++ = p;
-       *m = NULL;
-
-       return (&pvt->group);
-}
-
-#endif /* WANT_IRS_GR */
-/*! \file */
diff --git a/lib/bind/irs/lcl_ho.c b/lib/bind/irs/lcl_ho.c
deleted file mode 100644 (file)
index 6c5246a..0000000
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (c) 1985, 1988, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* from gethostnamadr.c        8.1 (Berkeley) 6/4/93 */
-/* BIND Id: gethnamaddr.c,v 8.15 1996/05/22 04:56:30 vixie Exp $ */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_ho.c,v 1.5 2006/03/09 23:57:56 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports. */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "dns_p.h"
-#include "lcl_p.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
-/* Definitions. */
-
-#define        MAXALIASES      35
-#define        MAXADDRS        35
-#define        Max(a,b)        ((a) > (b) ? (a) : (b))
-
-#if PACKETSZ > 1024
-#define        MAXPACKET       PACKETSZ
-#else
-#define        MAXPACKET       1024
-#endif
-
-struct pvt {
-       FILE *          fp;
-       struct hostent  host;
-       char *          h_addr_ptrs[MAXADDRS + 1];
-       char *          host_aliases[MAXALIASES];
-       char            hostbuf[8*1024];
-       u_char          host_addr[16];  /*%< IPv4 or IPv6 */
-       struct __res_state  *res;
-       void            (*free_res)(void *);
-};
-
-typedef union {
-       int32_t al;
-       char ac;
-} align;
-
-static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
-static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
-
-/* Forward. */
-
-static void            ho_close(struct irs_ho *this);
-static struct hostent *        ho_byname(struct irs_ho *this, const char *name);
-static struct hostent *        ho_byname2(struct irs_ho *this, const char *name,
-                                  int af);
-static struct hostent *        ho_byaddr(struct irs_ho *this, const void *addr,
-                                 int len, int af);
-static struct hostent *        ho_next(struct irs_ho *this);
-static void            ho_rewind(struct irs_ho *this);
-static void            ho_minimize(struct irs_ho *this);
-static struct __res_state * ho_res_get(struct irs_ho *this);
-static void            ho_res_set(struct irs_ho *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name,
-                                    const struct addrinfo *pai);
-
-static size_t          ns_namelen(const char *);
-static int             init(struct irs_ho *this);
-
-/* Portability. */
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-/* Public. */
-
-struct irs_ho *
-irs_lcl_ho(struct irs_acc *this) {
-       struct irs_ho *ho;
-       struct pvt *pvt;
-
-       UNUSED(this);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(ho = memget(sizeof *ho))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ho, 0x5e, sizeof *ho);
-       ho->private = pvt;
-       ho->close = ho_close;
-       ho->byname = ho_byname;
-       ho->byname2 = ho_byname2;
-       ho->byaddr = ho_byaddr;
-       ho->next = ho_next;
-       ho->rewind = ho_rewind;
-       ho->minimize = ho_minimize;
-       ho->res_get = ho_res_get;
-       ho->res_set = ho_res_set;
-       ho->addrinfo = ho_addrinfo;
-       return (ho);
-}
-
-/* Methods. */
-
-static void
-ho_close(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ho_minimize(this);
-       if (pvt->fp)
-               (void) fclose(pvt->fp);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct hostent *
-ho_byname(struct irs_ho *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       if (pvt->res->options & RES_USE_INET6) {
-               hp = ho_byname2(this, name, AF_INET6);
-               if (hp)
-                       return (hp);
-       }
-       return (ho_byname2(this, name, AF_INET));
-}
-
-static struct hostent *
-ho_byname2(struct irs_ho *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-       char **hap;
-       size_t n;
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       ho_rewind(this);
-       n = ns_namelen(name);
-       while ((hp = ho_next(this)) != NULL) {
-               size_t nn;
-
-               if (hp->h_addrtype != af)
-                       continue;
-               nn = ns_namelen(hp->h_name);
-               if (strncasecmp(hp->h_name, name, Max(n, nn)) == 0)
-                       goto found;
-               for (hap = hp->h_aliases; *hap; hap++) {
-                       nn = ns_namelen(*hap);
-                       if (strncasecmp(*hap, name, Max(n, nn)) == 0)
-                               goto found;
-               }
-       }
- found:
-       if (!hp) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-       return (hp);
-}
-
-static struct hostent *
-ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       const u_char *uaddr = addr;
-       struct hostent *hp;
-       int size;
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       if (af == AF_INET6 && len == IN6ADDRSZ &&
-           (!memcmp(uaddr, mapped, sizeof mapped) ||
-            !memcmp(uaddr, tunnelled, sizeof tunnelled))) {
-               /* Unmap. */
-               addr = (const u_char *)addr + sizeof mapped;
-               uaddr += sizeof mapped;
-               af = AF_INET;
-               len = INADDRSZ;
-       }
-       switch (af) {
-       case AF_INET:
-               size = INADDRSZ;
-               break;
-       case AF_INET6:
-               size = IN6ADDRSZ;
-               break;
-       default:
-               errno = EAFNOSUPPORT;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       if (size > len) {
-               errno = EINVAL;
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-
-       /*
-        * Do the search.
-        */
-       ho_rewind(this);
-       while ((hp = ho_next(this)) != NULL) {
-               char **hap;
-
-               for (hap = hp->h_addr_list; *hap; hap++) {
-                       const u_char *taddr = (const u_char *)*hap;
-                       int taf = hp->h_addrtype;
-                       int tlen = hp->h_length;
-
-                       if (taf == AF_INET6 && tlen == IN6ADDRSZ &&
-                           (!memcmp(taddr, mapped, sizeof mapped) ||
-                            !memcmp(taddr, tunnelled, sizeof tunnelled))) {
-                               /* Unmap. */
-                               taddr += sizeof mapped;
-                               taf = AF_INET;
-                               tlen = INADDRSZ;
-                       }
-                       if (taf == af && tlen == len &&
-                           !memcmp(taddr, uaddr, tlen))
-                               goto found;
-               }
-       }
- found:
-       if (!hp) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-       return (hp);
-}
-
-static struct hostent *
-ho_next(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *cp, **q, *p;
-       char *bufp, *ndbuf, *dbuf = NULL;
-       int c, af, len, bufsiz, offset;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       if (!pvt->fp)
-               ho_rewind(this);
-       if (!pvt->fp) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       bufp = pvt->hostbuf;
-       bufsiz = sizeof pvt->hostbuf;
-       offset = 0;
- again:
-       if (!(p = fgets(bufp + offset, bufsiz - offset, pvt->fp))) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               if (dbuf)
-                       free(dbuf);
-               return (NULL);
-       }
-       if (!strchr(p, '\n') && !feof(pvt->fp)) {
-#define GROWBUF 1024
-               /* allocate space for longer line */
-               if (dbuf == NULL) {
-                       if ((ndbuf = malloc(bufsiz + GROWBUF)) != NULL)
-                               strcpy(ndbuf, bufp);
-               } else
-                       ndbuf = realloc(dbuf, bufsiz + GROWBUF);
-               if (ndbuf) {
-                       dbuf = ndbuf;
-                       bufp = dbuf;
-                       bufsiz += GROWBUF;
-                       offset = strlen(dbuf);
-               } else {
-                       /* allocation failed; skip this long line */
-                       while ((c = getc(pvt->fp)) != EOF)
-                               if (c == '\n')
-                                       break;
-                       if (c != EOF)
-                               ungetc(c, pvt->fp);
-               }
-               goto again;
-       }
-
-       p -= offset;
-       offset = 0;
-
-       if (*p == '#')
-               goto again;
-       if ((cp = strpbrk(p, "#\n")) != NULL)
-               *cp = '\0';
-       if (!(cp = strpbrk(p, " \t")))
-               goto again;
-       *cp++ = '\0';
-       if (inet_pton(AF_INET6, p, pvt->host_addr) > 0) {
-               af = AF_INET6;
-               len = IN6ADDRSZ;
-       } else if (inet_aton(p, (struct in_addr *)pvt->host_addr) > 0) {
-               if (pvt->res->options & RES_USE_INET6) {
-                       map_v4v6_address((char*)pvt->host_addr,
-                                        (char*)pvt->host_addr);
-                       af = AF_INET6;
-                       len = IN6ADDRSZ;
-               } else {
-                       af = AF_INET;
-                       len = INADDRSZ;
-               }
-       } else {
-               goto again;
-       }
-       pvt->h_addr_ptrs[0] = (char *)pvt->host_addr;
-       pvt->h_addr_ptrs[1] = NULL;
-       pvt->host.h_addr_list = pvt->h_addr_ptrs;
-       pvt->host.h_length = len;
-       pvt->host.h_addrtype = af;
-       while (*cp == ' ' || *cp == '\t')
-               cp++;
-       pvt->host.h_name = cp;
-       q = pvt->host.h_aliases = pvt->host_aliases;
-       if ((cp = strpbrk(cp, " \t")) != NULL)
-               *cp++ = '\0';
-       while (cp && *cp) {
-               if (*cp == ' ' || *cp == '\t') {
-                       cp++;
-                       continue;
-               }
-               if (q < &pvt->host_aliases[MAXALIASES - 1])
-                       *q++ = cp;
-               if ((cp = strpbrk(cp, " \t")) != NULL)
-                       *cp++ = '\0';
-       }
-       *q = NULL;
-       if (dbuf)
-               free(dbuf);
-       RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-       return (&pvt->host);
-}
-
-static void
-ho_rewind(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp) {
-               if (fseek(pvt->fp, 0L, SEEK_SET) == 0)
-                       return;
-               (void)fclose(pvt->fp);
-       }
-       if (!(pvt->fp = fopen(_PATH_HOSTS, "r")))
-               return;
-       if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-static void
-ho_minimize(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp != NULL) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-       if (pvt->res)
-               res_nclose(pvt->res);
-} 
-
-static struct __res_state *
-ho_res_get(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               ho_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-ho_res_set(struct irs_ho *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-struct lcl_res_target {
-       struct lcl_res_target *next;
-       int family;
-};
-
-/* XXX */
-extern struct addrinfo *hostent2addrinfo __P((struct hostent *,
-                                             const struct addrinfo *pai));
-
-static struct addrinfo *
-ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-       struct lcl_res_target q, q2, *p;
-       struct addrinfo sentinel, *cur;
-
-       memset(&q, 0, sizeof(q2));
-       memset(&q2, 0, sizeof(q2));
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-
-       switch(pai->ai_family) {
-       case AF_UNSPEC:         /*%< INET6 then INET4 */
-               q.family = AF_INET6;
-               q.next = &q2;
-               q2.family = AF_INET;
-               break;
-       case AF_INET6:
-               q.family = AF_INET6;
-               break;
-       case AF_INET:
-               q.family = AF_INET;
-               break;
-       default:
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /*%< ??? */
-               return(NULL);
-       }
-
-       for (p = &q; p; p = p->next) {
-               struct addrinfo *ai;
-
-               hp = (*this->byname2)(this, name, p->family);
-               if (hp == NULL) {
-                       /* byname2 should've set an appropriate error */
-                       continue;
-               }
-               if ((hp->h_name == NULL) || (hp->h_name[0] == 0) ||
-                   (hp->h_addr_list[0] == NULL)) {
-                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                       continue;
-               }
-
-               ai = hostent2addrinfo(hp, pai);
-               if (ai) {
-                       cur->ai_next = ai;
-                       while (cur->ai_next)
-                               cur = cur->ai_next;
-               }
-       }
-
-       if (sentinel.ai_next == NULL)
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-
-       return(sentinel.ai_next);
-}
-
-/* Private. */
-
-static size_t
-ns_namelen(const char *s) {
-       int i;
-
-       for (i = strlen(s); i > 0 && s[i-1] == '.'; i--)
-               (void)NULL;
-       return ((size_t) i);
-}
-
-static int
-init(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !ho_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0U) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/lcl_ng.c b/lib/bind/irs/lcl_ng.c
deleted file mode 100644 (file)
index 70e0b45..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: lcl_ng.c,v 1.3 2005/04/27 04:56:31 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "lcl_p.h"
-
-/* Definitions */
-
-#define NG_HOST         0       /*%< Host name */
-#define NG_USER         1       /*%< User name */
-#define NG_DOM          2       /*%< and Domain name */
-#define LINSIZ         1024    /*%< Length of netgroup file line */
-/*
- * XXX Warning XXX
- * This code is a hack-and-slash special.  It realy needs to be
- * rewritten with things like strdup, and realloc in mind.
- * More reasonable data structures would not be a bad thing.
- */
-
-/*%
- * Static Variables and functions used by setnetgrent(), getnetgrent() and
- * endnetgrent().
- *
- * There are two linked lists:
- * \li linelist is just used by setnetgrent() to parse the net group file via.
- *   parse_netgrp()
- * \li netgrp is the list of entries for the current netgroup
- */
-struct linelist {
-       struct linelist *l_next;        /*%< Chain ptr. */
-       int             l_parsed;       /*%< Flag for cycles */
-       char *          l_groupname;    /*%< Name of netgroup */
-       char *          l_line;         /*%< Netgroup entrie(s) to be parsed */
-};
-
-struct ng_old_struct {
-       struct ng_old_struct *ng_next;  /*%< Chain ptr */
-       char *          ng_str[3];      /*%< Field pointers, see below */
-};
-
-struct pvt {
-       FILE                    *fp;
-       struct linelist         *linehead;
-       struct ng_old_struct    *nextgrp;
-       struct {
-               struct ng_old_struct    *gr;
-               char                    *grname;
-       } grouphead;
-};
-
-/* Forward */
-
-static void            ng_rewind(struct irs_ng *, const char*);
-static void            ng_close(struct irs_ng *);
-static int             ng_next(struct irs_ng *, const char **,
-                               const char **, const char **);
-static int             ng_test(struct irs_ng *, const char *,
-                               const char *, const char *,
-                               const char *);
-static void            ng_minimize(struct irs_ng *);
-
-static int             parse_netgrp(struct irs_ng *, const char*);
-static struct linelist *read_for_group(struct irs_ng *, const char *);
-static void            freelists(struct irs_ng *);
-
-/* Public */
-
-struct irs_ng *
-irs_lcl_ng(struct irs_acc *this) {
-       struct irs_ng *ng;
-       struct pvt *pvt;
-
-       UNUSED(this);
-       
-       if (!(ng = memget(sizeof *ng))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ng, 0x5e, sizeof *ng);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(ng, sizeof *ng);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       ng->private = pvt;
-       ng->close = ng_close;
-       ng->next = ng_next;
-       ng->test = ng_test;
-       ng->rewind = ng_rewind;
-       ng->minimize = ng_minimize;
-       return (ng);
-}
-
-/* Methods */
-
-static void
-ng_close(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->fp != NULL)
-               fclose(pvt->fp);
-       freelists(this);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-       
-/*%
- * Parse the netgroup file looking for the netgroup and build the list
- * of netgrp structures. Let parse_netgrp() and read_for_group() do
- * most of the work.
- */
-static void
-ng_rewind(struct irs_ng *this, const char *group) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->fp != NULL && fseek(pvt->fp, SEEK_CUR, 0L) == -1) {
-               fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-
-       if (pvt->fp == NULL || pvt->grouphead.gr == NULL || 
-           strcmp(group, pvt->grouphead.grname)) {
-               freelists(this);
-               if (pvt->fp != NULL)
-                       fclose(pvt->fp);
-               pvt->fp = fopen(_PATH_NETGROUP, "r");
-               if (pvt->fp != NULL) {
-                       if (parse_netgrp(this, group))
-                               freelists(this);
-                       if (!(pvt->grouphead.grname = strdup(group)))
-                               freelists(this);
-                       fclose(pvt->fp);
-                       pvt->fp = NULL;
-               }
-       }
-       pvt->nextgrp = pvt->grouphead.gr;
-}
-
-/*%
- * Get the next netgroup off the list.
- */
-static int
-ng_next(struct irs_ng *this, const char **host, const char **user,
-       const char **domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->nextgrp) {
-               *host = pvt->nextgrp->ng_str[NG_HOST];
-               *user = pvt->nextgrp->ng_str[NG_USER];
-               *domain = pvt->nextgrp->ng_str[NG_DOM];
-               pvt->nextgrp = pvt->nextgrp->ng_next;
-               return (1);
-       }
-       return (0);
-}
-
-/*%
- * Search for a match in a netgroup.
- */
-static int
-ng_test(struct irs_ng *this, const char *name,
-       const char *host, const char *user, const char *domain)
-{
-       const char *ng_host, *ng_user, *ng_domain;
-
-       ng_rewind(this, name);
-       while (ng_next(this, &ng_host, &ng_user, &ng_domain))
-               if ((host == NULL || ng_host == NULL || 
-                    !strcmp(host, ng_host)) &&
-                   (user ==  NULL || ng_user == NULL || 
-                    !strcmp(user, ng_user)) &&
-                   (domain == NULL || ng_domain == NULL ||
-                    !strcmp(domain, ng_domain))) {
-                       freelists(this);
-                       return (1);
-               }
-       freelists(this);
-       return (0);
-}
-
-static void
-ng_minimize(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp != NULL) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-/* Private */
-
-/*%
- * endnetgrent() - cleanup
- */
-static void
-freelists(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct linelist *lp, *olp;
-       struct ng_old_struct *gp, *ogp;
-
-       lp = pvt->linehead;
-       while (lp) {
-               olp = lp;
-               lp = lp->l_next;
-               free(olp->l_groupname);
-               free(olp->l_line);
-               free((char *)olp);
-       }
-       pvt->linehead = NULL;
-       if (pvt->grouphead.grname) {
-               free(pvt->grouphead.grname);
-               pvt->grouphead.grname = NULL;
-       }
-       gp = pvt->grouphead.gr;
-       while (gp) {
-               ogp = gp;
-               gp = gp->ng_next;
-               if (ogp->ng_str[NG_HOST])
-                       free(ogp->ng_str[NG_HOST]);
-               if (ogp->ng_str[NG_USER])
-                       free(ogp->ng_str[NG_USER]);
-               if (ogp->ng_str[NG_DOM])
-                       free(ogp->ng_str[NG_DOM]);
-               free((char *)ogp);
-       }
-       pvt->grouphead.gr = NULL;
-}
-
-/*%
- * Parse the netgroup file setting up the linked lists.
- */
-static int
-parse_netgrp(struct irs_ng *this, const char *group) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *spos, *epos;
-       int len, strpos;
-       char *pos, *gpos;
-       struct ng_old_struct *grp;
-       struct linelist *lp = pvt->linehead;
-
-        /*
-         * First, see if the line has already been read in.
-         */
-       while (lp) {
-               if (!strcmp(group, lp->l_groupname))
-                       break;
-               lp = lp->l_next;
-       }
-       if (lp == NULL &&
-           (lp = read_for_group(this, group)) == NULL)
-               return (1);
-       if (lp->l_parsed) {
-               /*fprintf(stderr, "Cycle in netgroup %s\n", lp->l_groupname);*/
-               return (1);
-       } else
-               lp->l_parsed = 1;
-       pos = lp->l_line;
-       while (*pos != '\0') {
-               if (*pos == '(') {
-                       if (!(grp = malloc(sizeof (struct ng_old_struct)))) {
-                               freelists(this);
-                               errno = ENOMEM;
-                               return (1);
-                       }
-                       memset(grp, 0, sizeof (struct ng_old_struct));
-                       grp->ng_next = pvt->grouphead.gr;
-                       pvt->grouphead.gr = grp;
-                       pos++;
-                       gpos = strsep(&pos, ")");
-                       for (strpos = 0; strpos < 3; strpos++) {
-                               if ((spos = strsep(&gpos, ","))) {
-                                       while (*spos == ' ' || *spos == '\t')
-                                               spos++;
-                                       if ((epos = strpbrk(spos, " \t"))) {
-                                               *epos = '\0';
-                                               len = epos - spos;
-                                       } else
-                                               len = strlen(spos);
-                                       if (len > 0) {
-                                               if(!(grp->ng_str[strpos] 
-                                                  =  (char *)
-                                                  malloc(len + 1))) {
-                                                       freelists(this);
-                                                       return (1);
-                                               }
-                                               memcpy(grp->ng_str[strpos],
-                                                      spos,
-                                                      len + 1);
-                                       }
-                               } else
-                                       goto errout;
-                       }
-               } else {
-                       spos = strsep(&pos, ", \t");
-                       if (spos != NULL && parse_netgrp(this, spos)) {
-                               freelists(this);
-                               return (1);
-                       }
-               }
-               if (pos == NULL)
-                       break;
-               while (*pos == ' ' || *pos == ',' || *pos == '\t')
-                       pos++;
-       }
-       return (0);
- errout:
-       /*fprintf(stderr, "Bad netgroup %s at ..%s\n", lp->l_groupname,
-                 spos);*/
-       return (1);
-}
-
-/*%
- * Read the netgroup file and save lines until the line for the netgroup
- * is found. Return 1 if eof is encountered.
- */
-static struct linelist *
-read_for_group(struct irs_ng *this, const char *group) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *pos, *spos, *linep = NULL, *olinep;
-       int len, olen, cont;
-       struct linelist *lp;
-       char line[LINSIZ + 1];
-       
-       while (fgets(line, LINSIZ, pvt->fp) != NULL) {
-               pos = line;
-               if (*pos == '#')
-                       continue;
-               while (*pos == ' ' || *pos == '\t')
-                       pos++;
-               spos = pos;
-               while (*pos != ' ' && *pos != '\t' && *pos != '\n' &&
-                       *pos != '\0')
-                       pos++;
-               len = pos - spos;
-               while (*pos == ' ' || *pos == '\t')
-                       pos++;
-               if (*pos != '\n' && *pos != '\0') {
-                       if (!(lp = malloc(sizeof (*lp)))) {
-                               freelists(this);
-                               return (NULL);
-                       }
-                       lp->l_parsed = 0;
-                       if (!(lp->l_groupname = malloc(len + 1))) {
-                               free(lp);
-                               freelists(this);
-                               return (NULL);
-                       }
-                       memcpy(lp->l_groupname, spos,  len);
-                       *(lp->l_groupname + len) = '\0';
-                       len = strlen(pos);
-                       olen = 0;
-                       olinep = NULL;
-
-                       /*
-                        * Loop around handling line continuations.
-                        */
-                       do {
-                               if (*(pos + len - 1) == '\n')
-                                       len--;
-                               if (*(pos + len - 1) == '\\') {
-                                       len--;
-                                       cont = 1;
-                               } else
-                                       cont = 0;
-                               if (len > 0) {
-                                       if (!(linep = malloc(olen + len + 1))){
-                                               if (olen > 0)
-                                                       free(olinep);
-                                               free(lp->l_groupname);
-                                               free(lp);
-                                               freelists(this);
-                                               errno = ENOMEM;
-                                               return (NULL);
-                                       }
-                                       if (olen > 0) {
-                                               memcpy(linep, olinep, olen);
-                                               free(olinep);
-                                       }
-                                       memcpy(linep + olen, pos, len);
-                                       olen += len;
-                                       *(linep + olen) = '\0';
-                                       olinep = linep;
-                               }
-                               if (cont) {
-                                       if (fgets(line, LINSIZ, pvt->fp)) {
-                                               pos = line;
-                                               len = strlen(pos);
-                                       } else
-                                               cont = 0;
-                               }
-                       } while (cont);
-                       lp->l_line = linep;
-                       lp->l_next = pvt->linehead;
-                       pvt->linehead = lp;
-                       
-                       /*
-                        * If this is the one we wanted, we are done.
-                        */
-                       if (!strcmp(lp->l_groupname, group))
-                               return (lp);
-               }
-       }
-       return (NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/lcl_nw.c b/lib/bind/irs/lcl_nw.c
deleted file mode 100644 (file)
index 79b55a0..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_nw.c,v 1.4 2005/04/27 04:56:31 sra Exp $";
-/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */
-/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $     */
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include <isc/misc.h>
-#include "irs_p.h"
-#include "lcl_p.h"
-
-#define MAXALIASES 35
-#define MAXADDRSIZE 4
-
-struct pvt {
-       FILE *          fp;
-       char            line[BUFSIZ+1];
-       struct nwent    net;
-       char *          aliases[MAXALIASES];
-       char            addr[MAXADDRSIZE];
-       struct __res_state *  res;
-       void            (*free_res)(void *);
-};
-
-/* Forward */
-
-static void            nw_close(struct irs_nw *);
-static struct nwent *  nw_byname(struct irs_nw *, const char *, int);
-static struct nwent *  nw_byaddr(struct irs_nw *, void *, int, int);
-static struct nwent *  nw_next(struct irs_nw *);
-static void            nw_rewind(struct irs_nw *);
-static void            nw_minimize(struct irs_nw *);
-static struct __res_state * nw_res_get(struct irs_nw *this);
-static void            nw_res_set(struct irs_nw *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-
-static int             init(struct irs_nw *this);
-
-/* Portability. */
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-/* Public */
-
-struct irs_nw *
-irs_lcl_nw(struct irs_acc *this) {
-       struct irs_nw *nw;
-       struct pvt *pvt;
-
-       UNUSED(this);
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(nw = memget(sizeof *nw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nw, 0x5e, sizeof *nw);
-       nw->private = pvt;
-       nw->close = nw_close;
-       nw->byname = nw_byname;
-       nw->byaddr = nw_byaddr;
-       nw->next = nw_next;
-       nw->rewind = nw_rewind;
-       nw->minimize = nw_minimize;
-       nw->res_get = nw_res_get;
-       nw->res_set = nw_res_set;
-       return (nw);
-}
-
-/* Methods */
-
-static void
-nw_close(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       nw_minimize(this);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       if (pvt->fp)
-               (void)fclose(pvt->fp);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct nwent *
-nw_byaddr(struct irs_nw *this, void *net, int length, int type) {
-       struct nwent *p;
-       
-       if (init(this) == -1)
-               return(NULL);
-
-       nw_rewind(this);
-       while ((p = nw_next(this)) != NULL)
-               if (p->n_addrtype == type && p->n_length == length)
-                       if (bitncmp(p->n_addr, net, length) == 0)
-                               break;
-       return (p);
-}
-
-static struct nwent *
-nw_byname(struct irs_nw *this, const char *name, int type) {
-       struct nwent *p;
-       char **ap;
-       
-       if (init(this) == -1)
-               return(NULL);
-
-       nw_rewind(this);
-       while ((p = nw_next(this)) != NULL) {
-               if (ns_samename(p->n_name, name) == 1 &&
-                   p->n_addrtype == type)
-                       break;
-               for (ap = p->n_aliases; *ap; ap++)
-                       if ((ns_samename(*ap, name) == 1) &&
-                           (p->n_addrtype == type))
-                               goto found;
-       }
- found:
-       return (p);
-}
-
-static void
-nw_rewind(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->fp) {
-               if (fseek(pvt->fp, 0L, SEEK_SET) == 0)
-                       return;
-               (void)fclose(pvt->fp);
-       }
-       if (!(pvt->fp = fopen(_PATH_NETWORKS, "r")))
-               return;
-       if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-static struct nwent *
-nw_next(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *ret = NULL;
-       char *p, *cp, **q;
-       char *bufp, *ndbuf, *dbuf = NULL;
-       int c, bufsiz, offset = 0;
-
-       if (init(this) == -1)
-               return(NULL);
-
-       if (pvt->fp == NULL)
-               nw_rewind(this);
-       if (pvt->fp == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       bufp = pvt->line;
-       bufsiz = sizeof(pvt->line);
-
- again:
-       p = fgets(bufp + offset, bufsiz - offset, pvt->fp);
-       if (p == NULL)
-               goto cleanup;
-       if (!strchr(p, '\n') && !feof(pvt->fp)) {
-#define GROWBUF 1024
-               /* allocate space for longer line */
-               if (dbuf == NULL) {
-                       if ((ndbuf = malloc(bufsiz + GROWBUF)) != NULL)
-                               strcpy(ndbuf, bufp);
-               } else
-                       ndbuf = realloc(dbuf, bufsiz + GROWBUF);
-               if (ndbuf) {
-                       dbuf = ndbuf;
-                       bufp = dbuf;
-                       bufsiz += GROWBUF;
-                       offset = strlen(dbuf);
-               } else {
-                       /* allocation failed; skip this long line */
-                       while ((c = getc(pvt->fp)) != EOF)
-                               if (c == '\n')
-                                       break;
-                       if (c != EOF)
-                               ungetc(c, pvt->fp);
-               }
-               goto again;
-       }
-
-       p -= offset;
-       offset = 0;
-
-       if (*p == '#')
-               goto again;
-
-       cp = strpbrk(p, "#\n");
-       if (cp != NULL)
-               *cp = '\0';
-       pvt->net.n_name = p;
-       cp = strpbrk(p, " \t");
-       if (cp == NULL)
-               goto again;
-       *cp++ = '\0';
-       while (*cp == ' ' || *cp == '\t')
-               cp++;
-       p = strpbrk(cp, " \t");
-       if (p != NULL)
-               *p++ = '\0';
-       pvt->net.n_length = inet_net_pton(AF_INET, cp, pvt->addr,
-                                         sizeof pvt->addr);
-       if (pvt->net.n_length < 0)
-               goto again;
-       pvt->net.n_addrtype = AF_INET;
-       pvt->net.n_addr = pvt->addr;
-       q = pvt->net.n_aliases = pvt->aliases;
-       if (p != NULL) {
-               cp = p;
-               while (cp && *cp) {
-                       if (*cp == ' ' || *cp == '\t') {
-                               cp++;
-                               continue;
-                       }
-                       if (q < &pvt->aliases[MAXALIASES - 1])
-                               *q++ = cp;
-                       cp = strpbrk(cp, " \t");
-                       if (cp != NULL)
-                               *cp++ = '\0';
-               }
-       }
-       *q = NULL;
-       ret = &pvt->net;
-
- cleanup:
-       if (dbuf)
-               free(dbuf);
-
-       return (ret);
-}
-
-static void
-nw_minimize(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-       if (pvt->fp != NULL) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-static struct __res_state *
-nw_res_get(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               nw_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-nw_res_set(struct irs_nw *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-static int
-init(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !nw_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0U) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/irs/lcl_p.h b/lib/bind/irs/lcl_p.h
deleted file mode 100644 (file)
index e3f4f00..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: lcl_p.h,v 1.3 2005/04/27 04:56:31 sra Exp $
- */
-
-/*! \file
- * \brief
- * lcl_p.h - private include file for the local accessor functions.
- */
-
-#ifndef _LCL_P_H_INCLUDED
-#define _LCL_P_H_INCLUDED
-
-/*%
- * Object state.
- */
-struct lcl_p {
-       struct __res_state *    res;
-       void                    (*free_res) __P((void *));
-};
-
-/*
- * Externs.
- */
-
-extern struct irs_acc *        irs_lcl_acc __P((const char *));
-extern struct irs_gr * irs_lcl_gr __P((struct irs_acc *));
-extern struct irs_pw * irs_lcl_pw __P((struct irs_acc *));
-extern struct irs_sv * irs_lcl_sv __P((struct irs_acc *));
-extern struct irs_pr * irs_lcl_pr __P((struct irs_acc *));
-extern struct irs_ho * irs_lcl_ho __P((struct irs_acc *));
-extern struct irs_nw * irs_lcl_nw __P((struct irs_acc *));
-extern struct irs_ng * irs_lcl_ng __P((struct irs_acc *));
-
-#endif /*_LCL_P_H_INCLUDED*/
diff --git a/lib/bind/irs/lcl_pr.c b/lib/bind/irs/lcl_pr.c
deleted file mode 100644 (file)
index 622158e..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_pr.c,v 1.4 2006/03/09 23:57:56 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "lcl_p.h"
-
-#ifndef _PATH_PROTOCOLS
-#define _PATH_PROTOCOLS "/etc/protocols"
-#endif
-#define MAXALIASES      35
-
-/* Types */
-
-struct pvt {
-       FILE *          fp;
-       char            line[BUFSIZ+1];
-       char *          dbuf;
-       struct protoent proto;
-       char *          proto_aliases[MAXALIASES];
-};
-
-/* Forward */
-
-static void                    pr_close(struct irs_pr *);
-static struct protoent *       pr_next(struct irs_pr *);
-static struct protoent *       pr_byname(struct irs_pr *, const char *);
-static struct protoent *       pr_bynumber(struct irs_pr *, int);
-static void                    pr_rewind(struct irs_pr *);
-static void                    pr_minimize(struct irs_pr *);
-
-/* Portability. */
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-/* Public */
-
-struct irs_pr *
-irs_lcl_pr(struct irs_acc *this) {
-       struct irs_pr *pr;
-       struct pvt *pvt;
-       
-       if (!(pr = memget(sizeof *pr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pr, sizeof *this);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pr->private = pvt;
-       pr->close = pr_close;
-       pr->byname = pr_byname;
-       pr->bynumber = pr_bynumber;
-       pr->next = pr_next;
-       pr->rewind = pr_rewind;
-       pr->minimize = pr_minimize;
-       pr->res_get = NULL;
-       pr->res_set = NULL;
-       return (pr);
-}
-
-/* Methods */
-
-static void
-pr_close(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp)
-               (void) fclose(pvt->fp);
-       if (pvt->dbuf)
-               free(pvt->dbuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct protoent *
-pr_byname(struct irs_pr *this, const char *name) {
-               
-       struct protoent *p;
-       char **cp;
-
-       pr_rewind(this);
-       while ((p = pr_next(this))) {
-               if (!strcmp(p->p_name, name))
-                       goto found;
-               for (cp = p->p_aliases; *cp; cp++)
-                       if (!strcmp(*cp, name))
-                               goto found;
-       }
- found:
-       return (p);
-}
-
-static struct protoent *
-pr_bynumber(struct irs_pr *this, int proto) {
-       struct protoent *p;
-
-       pr_rewind(this);
-       while ((p = pr_next(this)))
-               if (p->p_proto == proto)
-                       break;
-       return (p);
-}
-
-static void
-pr_rewind(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->fp) {
-               if (fseek(pvt->fp, 0L, SEEK_SET) == 0)
-                       return;
-               (void)fclose(pvt->fp);
-       }
-       if (!(pvt->fp = fopen(_PATH_PROTOCOLS, "r" )))
-               return;
-       if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-static struct protoent *
-pr_next(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *p, *cp, **q;
-       char *bufp, *ndbuf, *dbuf = NULL;
-       int c, bufsiz, offset;
-
-       if (!pvt->fp)
-               pr_rewind(this);
-       if (!pvt->fp)
-               return (NULL);
-       if (pvt->dbuf) {
-               free(pvt->dbuf);
-               pvt->dbuf = NULL;
-       }
-       bufp = pvt->line;
-       bufsiz = BUFSIZ;
-       offset = 0;
- again:
-       if ((p = fgets(bufp + offset, bufsiz - offset, pvt->fp)) == NULL) {
-               if (dbuf)
-                       free(dbuf);
-               return (NULL);
-       }
-       if (!strchr(p, '\n') && !feof(pvt->fp)) {
-#define GROWBUF 1024
-               /* allocate space for longer line */
-               if (dbuf == NULL) {
-                       if ((ndbuf = malloc(bufsiz + GROWBUF)) != NULL)
-                               strcpy(ndbuf, bufp);
-               } else
-                       ndbuf = realloc(dbuf, bufsiz + GROWBUF);
-               if (ndbuf) {
-                       dbuf = ndbuf;
-                       bufp = dbuf;
-                       bufsiz += GROWBUF;
-                       offset = strlen(dbuf);
-               } else {
-                       /* allocation failed; skip this long line */
-                       while ((c = getc(pvt->fp)) != EOF)
-                               if (c == '\n')
-                                       break;
-                       if (c != EOF)
-                               ungetc(c, pvt->fp);
-               }
-               goto again;
-       }
-
-       p -= offset;
-       offset = 0;
-
-       if (*p == '#')
-               goto again;
-       cp = strpbrk(p, "#\n");
-       if (cp != NULL)
-               *cp = '\0';
-       pvt->proto.p_name = p;
-       cp = strpbrk(p, " \t");
-       if (cp == NULL)
-               goto again;
-       *cp++ = '\0';
-       while (*cp == ' ' || *cp == '\t')
-               cp++;
-       p = strpbrk(cp, " \t");
-       if (p != NULL)
-               *p++ = '\0';
-       pvt->proto.p_proto = atoi(cp);
-       q = pvt->proto.p_aliases = pvt->proto_aliases;
-       if (p != NULL) {
-               cp = p;
-               while (cp && *cp) {
-                       if (*cp == ' ' || *cp == '\t') {
-                               cp++;
-                               continue;
-                       }
-                       if (q < &pvt->proto_aliases[MAXALIASES - 1])
-                               *q++ = cp;
-                       cp = strpbrk(cp, " \t");
-                       if (cp != NULL)
-                               *cp++ = '\0';
-               }
-       }
-       *q = NULL;
-       pvt->dbuf = dbuf;
-       return (&pvt->proto);
-}
-
-static void
-pr_minimize(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->fp != NULL) {
-               (void)fclose(pvt->fp);
-               pvt->fp = NULL;
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/irs/lcl_pw.c b/lib/bind/irs/lcl_pw.c
deleted file mode 100644 (file)
index ffca554..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_pw.c,v 1.3 2005/04/27 04:56:31 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Extern */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_PW
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <db.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <pwd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <utmp.h>
-#include <unistd.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "lcl_p.h"
-
-/*! \file
- * \brief
- * The lookup techniques and data extraction code here must be kept
- * in sync with that in `pwd_mkdb'.
- */
-
-/* Types */
-
-struct  pvt {
-       struct passwd   passwd;         /*%< password structure */
-       DB              *pw_db;         /*%< password database */
-       int             pw_keynum;      /*%< key counter */
-       int             warned;
-       u_int           max;
-       char *          line;
-};
-
-/* Forward */
-
-static void                    pw_close(struct irs_pw *);
-static struct passwd *         pw_next(struct irs_pw *);
-static struct passwd *         pw_byname(struct irs_pw *, const char *);
-static struct passwd *         pw_byuid(struct irs_pw *, uid_t);
-static void                    pw_rewind(struct irs_pw *);
-static void                    pw_minimize(struct irs_pw *);
-
-static int                     initdb(struct pvt *);
-static int                     hashpw(struct irs_pw *, DBT *);
-
-/* Public */
-struct irs_pw *
-irs_lcl_pw(struct irs_acc *this) {
-       struct irs_pw *pw;
-       struct pvt *pvt;
-
-       UNUSED(this);
-                
-        if (!(pw = memget(sizeof *pw))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pw, 0x5e, sizeof *pw);
-       if (!(pvt = memget(sizeof *pvt))) {
-               free(pw);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pw->private = pvt;
-       pw->close = pw_close;
-       pw->next = pw_next;
-       pw->byname = pw_byname;
-       pw->byuid = pw_byuid;
-       pw->rewind = pw_rewind;
-       pw->minimize = pw_minimize;
-       pw->res_get = NULL;
-       pw->res_set = NULL;
-       return (pw);
-}
-
-/* Methods */
-
-static void
-pw_close(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->pw_db) {
-               (void)(pvt->pw_db->close)(pvt->pw_db);
-               pvt->pw_db = NULL;
-       }
-       if (pvt->line)
-               memput(pvt->line, pvt->max);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct passwd *
-pw_next(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       DBT key;
-       char bf[sizeof(pvt->pw_keynum) + 1];
-       if (!initdb(pvt))
-               return (NULL);
-       ++pvt->pw_keynum;
-       bf[0] = _PW_KEYBYNUM;
-       memcpy(bf + 1, (char *)&pvt->pw_keynum, sizeof(pvt->pw_keynum));
-       key.data = (u_char *)bf;
-       key.size = sizeof(pvt->pw_keynum) + 1;
-       return (hashpw(this, &key) ? &pvt->passwd : NULL);
-}
-static struct passwd *
-pw_byname(struct irs_pw *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       DBT key;
-       int len, rval;
-       char bf[UT_NAMESIZE + 1];
-       if (!initdb(pvt))
-               return (NULL);
-       bf[0] = _PW_KEYBYNAME;
-       len = strlen(name);
-       memcpy(bf + 1, name, MIN(len, UT_NAMESIZE));
-       key.data = (u_char *)bf;
-       key.size = len + 1;
-       rval = hashpw(this, &key);
-       return (rval ? &pvt->passwd : NULL);
-}
-
-static struct passwd *
-pw_byuid(struct irs_pw *this, uid_t uid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       DBT key;
-       int keyuid, rval;
-       char bf[sizeof(keyuid) + 1];
-       if (!initdb(pvt))
-               return (NULL);
-       bf[0] = _PW_KEYBYUID;
-       keyuid = uid;
-       memcpy(bf + 1, &keyuid, sizeof(keyuid));
-       key.data = (u_char *)bf;
-       key.size = sizeof(keyuid) + 1;
-       rval = hashpw(this, &key);
-       return (rval ? &pvt->passwd : NULL);
-}
-
-static void
-pw_rewind(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->pw_keynum = 0;
-}
-
-static void
-pw_minimize(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->pw_db != NULL) {
-               (void) (*pvt->pw_db->close)(pvt->pw_db);
-               pvt->pw_db = NULL;
-       }
-}
-
-/* Private. */
-
-static int
-initdb(struct pvt *pvt) {
-       const char *p;
-
-       if (pvt->pw_db) {
-               if (lseek((*pvt->pw_db->fd)(pvt->pw_db), 0L, SEEK_CUR) >= 0L)
-                       return (1);
-               else
-                       (void) (*pvt->pw_db->close)(pvt->pw_db);
-       }
-       pvt->pw_db = dbopen((p = _PATH_SMP_DB), O_RDONLY, 0, DB_HASH, NULL);
-       if (!pvt->pw_db)
-               pvt->pw_db = dbopen((p =_PATH_MP_DB), O_RDONLY,
-                                   0, DB_HASH, NULL);
-       if (pvt->pw_db)
-               return (1);
-       if (!pvt->warned) {
-               syslog(LOG_ERR, "%s: %m", p);
-               pvt->warned++;
-       }
-       return (0);
-}
-
-static int
-hashpw(struct irs_pw *this, DBT *key) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *p, *t, *l;
-       DBT data;
-       if ((pvt->pw_db->get)(pvt->pw_db, key, &data, 0))
-               return (0);
-       p = (char *)data.data;
-       if (data.size > pvt->max) {
-               size_t newlen = pvt->max + 1024;
-               char *p = memget(newlen);
-               if (p == NULL) {
-                       return (0);
-               }
-               if (pvt->line != NULL) {
-                       memcpy(p, pvt->line, pvt->max);
-                       memput(pvt->line, pvt->max);
-               }
-               pvt->max = newlen;
-               pvt->line = p;
-       }
-
-       /* THIS CODE MUST MATCH THAT IN pwd_mkdb. */
-       t = pvt->line;
-       l = pvt->line + pvt->max;
-#define EXPAND(e) if ((e = t) == NULL) return (0); else \
-                 do if (t >= l) return (0); while ((*t++ = *p++) != '\0')
-#define SCALAR(v) if (t + sizeof v >= l) return (0); else \
-                 (memmove(&(v), p, sizeof v), p += sizeof v)
-       EXPAND(pvt->passwd.pw_name);
-       EXPAND(pvt->passwd.pw_passwd);
-       SCALAR(pvt->passwd.pw_uid);
-       SCALAR(pvt->passwd.pw_gid);
-       SCALAR(pvt->passwd.pw_change);
-       EXPAND(pvt->passwd.pw_class);
-       EXPAND(pvt->passwd.pw_gecos);
-       EXPAND(pvt->passwd.pw_dir);
-       EXPAND(pvt->passwd.pw_shell);
-       SCALAR(pvt->passwd.pw_expire);
-       return (1);
-}
-
-#endif /* WANT_IRS_PW */
diff --git a/lib/bind/irs/lcl_sv.c b/lib/bind/irs/lcl_sv.c
deleted file mode 100644 (file)
index 8d0049b..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: lcl_sv.c,v 1.4 2005/04/27 04:56:31 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* extern */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#ifdef IRS_LCL_SV_DB
-#include <db.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "lcl_p.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/* Types */
-
-struct pvt {
-#ifdef IRS_LCL_SV_DB
-       DB *            dbh;
-       int             dbf;
-#endif
-       struct lcl_sv   sv;
-};
-
-/* Forward */
-
-static void                    sv_close(struct irs_sv*);
-static struct servent *                sv_next(struct irs_sv *);
-static struct servent *                sv_byname(struct irs_sv *, const char *,
-                                         const char *);
-static struct servent *                sv_byport(struct irs_sv *, int, const char *);
-static void                    sv_rewind(struct irs_sv *);
-static void                    sv_minimize(struct irs_sv *);
-/*global*/ struct servent *    irs_lclsv_fnxt(struct lcl_sv *);
-#ifdef IRS_LCL_SV_DB
-static struct servent *                sv_db_rec(struct lcl_sv *, DBT *, DBT *);
-#endif
-
-/* Portability */
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-/* Public */
-
-struct irs_sv *
-irs_lcl_sv(struct irs_acc *this) {
-       struct irs_sv *sv;
-       struct pvt *pvt;
-
-       UNUSED(this);
-       
-       if ((sv = memget(sizeof *sv)) == NULL) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(sv, 0x5e, sizeof *sv);
-       if ((pvt = memget(sizeof *pvt)) == NULL) {
-               memput(sv, sizeof *sv);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       sv->private = pvt;
-       sv->close = sv_close;
-       sv->next = sv_next;
-       sv->byname = sv_byname;
-       sv->byport = sv_byport;
-       sv->rewind = sv_rewind;
-       sv->minimize = sv_minimize;
-       sv->res_get = NULL;
-       sv->res_set = NULL;
-#ifdef IRS_LCL_SV_DB
-       pvt->dbf = R_FIRST;
-#endif
-       return (sv);
-}
-
-/* Methods */
-
-static void
-sv_close(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh != NULL)
-               (*pvt->dbh->close)(pvt->dbh);
-#endif
-       if (pvt->sv.fp)
-               fclose(pvt->sv.fp);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct servent *
-sv_byname(struct irs_sv *this, const char *name, const char *proto) {
-#ifdef IRS_LCL_SV_DB
-       struct pvt *pvt = (struct pvt *)this->private;
-#endif
-       struct servent *p;
-       char **cp;
-
-       sv_rewind(this);
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh != NULL) {
-               DBT key, data;
-
-               /* Note that (sizeof "/") == 2. */
-               if ((strlen(name) + sizeof "/" + proto ? strlen(proto) : 0)
-                   > sizeof pvt->sv.line)
-                       goto try_local;
-               key.data = pvt->sv.line;
-               key.size = SPRINTF((pvt->sv.line, "%s/%s", name,
-                                   proto ? proto : "")) + 1;
-               if (proto != NULL) {
-                       if ((*pvt->dbh->get)(pvt->dbh, &key, &data, 0) != 0)
-                               return (NULL);
-               } else if ((*pvt->dbh->seq)(pvt->dbh, &key, &data, R_CURSOR)
-                          != 0)
-                       return (NULL);
-               return (sv_db_rec(&pvt->sv, &key, &data));
-       }
- try_local:
-#endif
-
-       while ((p = sv_next(this))) {
-               if (strcmp(name, p->s_name) == 0)
-                       goto gotname;
-               for (cp = p->s_aliases; *cp; cp++)
-                       if (strcmp(name, *cp) == 0)
-                               goto gotname;
-               continue;
- gotname:
-               if (proto == NULL || strcmp(p->s_proto, proto) == 0)
-                       break;
-       }
-       return (p);
-}
-
-static struct servent *
-sv_byport(struct irs_sv *this, int port, const char *proto) {
-#ifdef IRS_LCL_SV_DB
-       struct pvt *pvt = (struct pvt *)this->private;
-#endif
-       struct servent *p;
-
-       sv_rewind(this);
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh != NULL) {
-               DBT key, data;
-               u_short *ports;
-
-               ports = (u_short *)pvt->sv.line;
-               ports[0] = 0;
-               ports[1] = port;
-               key.data = ports;
-               key.size = sizeof(u_short) * 2;
-               if (proto && *proto) {
-                       strncpy((char *)ports + key.size, proto,
-                               BUFSIZ - key.size);
-                       key.size += strlen((char *)ports + key.size) + 1;
-                       if ((*pvt->dbh->get)(pvt->dbh, &key, &data, 0) != 0)
-                               return (NULL);
-               } else {
-                       if ((*pvt->dbh->seq)(pvt->dbh, &key, &data, R_CURSOR)
-                           != 0)
-                               return (NULL);
-               }
-               return (sv_db_rec(&pvt->sv, &key, &data));
-       }
-#endif
-       while ((p = sv_next(this))) {
-               if (p->s_port != port)
-                       continue;
-               if (proto == NULL || strcmp(p->s_proto, proto) == 0)
-                       break;
-       }
-       return (p);
-}
-
-static void
-sv_rewind(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->sv.fp) {
-               if (fseek(pvt->sv.fp, 0L, SEEK_SET) == 0)
-                       return;
-               (void)fclose(pvt->sv.fp);
-               pvt->sv.fp = NULL;
-       }
-#ifdef IRS_LCL_SV_DB
-       pvt->dbf = R_FIRST;
-       if (pvt->dbh != NULL)
-               return;
-       pvt->dbh = dbopen(_PATH_SERVICES_DB, O_RDONLY,O_RDONLY,DB_BTREE, NULL);
-       if (pvt->dbh != NULL) {
-               if (fcntl((*pvt->dbh->fd)(pvt->dbh), F_SETFD, 1) < 0) {
-                       (*pvt->dbh->close)(pvt->dbh);
-                       pvt->dbh = NULL;
-               }
-               return;
-       }
-#endif
-       if ((pvt->sv.fp = fopen(_PATH_SERVICES, "r")) == NULL)
-               return;
-       if (fcntl(fileno(pvt->sv.fp), F_SETFD, 1) < 0) {
-               (void)fclose(pvt->sv.fp);
-               pvt->sv.fp = NULL;
-       }
-}
-
-static struct servent *
-sv_next(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh == NULL && pvt->sv.fp == NULL)
-#else
-       if (pvt->sv.fp == NULL)
-#endif
-               sv_rewind(this);
-
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh != NULL) {
-               DBT key, data;
-
-               while ((*pvt->dbh->seq)(pvt->dbh, &key, &data, pvt->dbf) == 0){
-                       pvt->dbf = R_NEXT;
-                       if (((char *)key.data)[0])
-                               continue;
-                       return (sv_db_rec(&pvt->sv, &key, &data));
-               }
-       }
-#endif
-
-       if (pvt->sv.fp == NULL)
-               return (NULL);
-       return (irs_lclsv_fnxt(&pvt->sv));
-}
-
-static void
-sv_minimize(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-#ifdef IRS_LCL_SV_DB
-       if (pvt->dbh != NULL) {
-               (*pvt->dbh->close)(pvt->dbh);
-               pvt->dbh = NULL;
-       }
-#endif
-       if (pvt->sv.fp != NULL) {
-               (void)fclose(pvt->sv.fp);
-               pvt->sv.fp = NULL;
-       }
-}
-
-/* Quasipublic. */
-
-struct servent *
-irs_lclsv_fnxt(struct lcl_sv *sv) {
-       char *p, *cp, **q;
-
- again:
-       if ((p = fgets(sv->line, BUFSIZ, sv->fp)) == NULL)
-               return (NULL);
-       if (*p == '#')
-               goto again;
-       sv->serv.s_name = p;
-       while (*p && *p != '\n' && *p != ' ' && *p != '\t' && *p != '#')
-               ++p;
-       if (*p == '\0' || *p == '#' || *p == '\n')
-               goto again;
-       *p++ = '\0';
-       while (*p == ' ' || *p == '\t')
-               p++;
-       if (*p == '\0' || *p == '#' || *p == '\n')
-               goto again;
-       sv->serv.s_port = htons((u_short)strtol(p, &cp, 10));
-       if (cp == p || (*cp != '/' && *cp != ','))
-               goto again;
-       p = cp + 1;
-       sv->serv.s_proto = p;
-
-       q = sv->serv.s_aliases = sv->serv_aliases;
-
-       while (*p && *p != '\n' && *p != ' ' && *p != '\t' && *p != '#')
-               ++p;
-
-       while (*p == ' ' || *p == '\t') {
-               *p++ = '\0';
-               while (*p == ' ' || *p == '\t')
-                       ++p;
-               if (*p == '\0' || *p == '#' || *p == '\n')
-                       break;
-               if (q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1])
-                       *q++ = p;
-               while (*p && *p != '\n' && *p != ' ' && *p != '\t' && *p != '#')
-                       ++p;
-       }
-               
-       *p = '\0';
-       *q = NULL;
-       return (&sv->serv);
-}
-
-/* Private. */
-
-#ifdef IRS_LCL_SV_DB
-static struct servent *
-sv_db_rec(struct lcl_sv *sv, DBT *key, DBT *data) {
-       char *p, **q;
-       int n;
-
-       p = data->data;
-       p[data->size - 1] = '\0';       /*%< should be, but we depend on it */
-       if (((char *)key->data)[0] == '\0') {
-               if (key->size < sizeof(u_short)*2 || data->size < 2)
-                       return (NULL);
-               sv->serv.s_port = ((u_short *)key->data)[1];
-               n = strlen(p) + 1;
-               if ((size_t)n > sizeof(sv->line)) {
-                       n = sizeof(sv->line);
-               }
-               memcpy(sv->line, p, n);
-               sv->serv.s_name = sv->line;
-               if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
-                       *(sv->serv.s_proto)++ = '\0';
-               p += n;
-               data->size -= n;
-       } else {
-               if (data->size < sizeof(u_short) + 1)
-                       return (NULL);
-               if (key->size > sizeof(sv->line))
-                       key->size = sizeof(sv->line);
-               ((char *)key->data)[key->size - 1] = '\0';
-               memcpy(sv->line, key->data, key->size);
-               sv->serv.s_name = sv->line;
-               if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
-                       *(sv->serv.s_proto)++ = '\0';
-               sv->serv.s_port = *(u_short *)data->data;
-               p += sizeof(u_short);
-               data->size -= sizeof(u_short);
-       }
-       q = sv->serv.s_aliases = sv->serv_aliases;
-       while (data->size > 0 && q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1]) {
-
-               *q++ = p;
-               n = strlen(p) + 1;
-               data->size -= n;
-               p += n;
-       }
-       *q = NULL;
-       return (&sv->serv);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/nis.c b/lib/bind/irs/nis.c
deleted file mode 100644 (file)
index 9abc474..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis.c,v 1.3 2005/04/27 04:56:32 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifdef WANT_IRS_NIS
-
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <netinet/in.h> 
-#ifdef T_NULL
-#undef T_NULL                  /* Silence re-definition warning of T_NULL. */
-#endif
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "nis_p.h"
-
-/* Forward */
-
-static void            nis_close(struct irs_acc *);
-static struct __res_state * nis_res_get(struct irs_acc *);
-static void            nis_res_set(struct irs_acc *, struct __res_state *,
-                               void (*)(void *));
-
-/* Public */
-
-struct irs_acc *
-irs_nis_acc(const char *options) {
-       struct nis_p *nis;
-       struct irs_acc *acc;
-       char *domain;
-
-       UNUSED(options);
-
-       if (yp_get_default_domain(&domain) != 0)
-               return (NULL);
-       if (!(nis = memget(sizeof *nis))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nis, 0, sizeof *nis);
-       if (!(acc = memget(sizeof *acc))) {
-               memput(nis, sizeof *nis);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(acc, 0x5e, sizeof *acc);
-       acc->private = nis;
-       nis->domain = strdup(domain);
-#ifdef WANT_IRS_GR
-       acc->gr_map = irs_nis_gr;
-#else
-       acc->gr_map = NULL;
-#endif
-#ifdef WANT_IRS_PW
-       acc->pw_map = irs_nis_pw;
-#else
-       acc->pw_map = NULL;
-#endif
-       acc->sv_map = irs_nis_sv;
-       acc->pr_map = irs_nis_pr;
-       acc->ho_map = irs_nis_ho;
-       acc->nw_map = irs_nis_nw;
-       acc->ng_map = irs_nis_ng;
-       acc->res_get = nis_res_get;
-       acc->res_set = nis_res_set;
-       acc->close = nis_close;
-       return (acc);
-}
-
-/* Methods */
-
-static struct __res_state *
-nis_res_get(struct irs_acc *this) {
-       struct nis_p *nis = (struct nis_p *)this->private;
-
-       if (nis->res == NULL) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (res == NULL)
-                       return (NULL);
-               memset(res, 0, sizeof *res);
-               nis_res_set(this, res, free);
-       }
-
-       if ((nis->res->options & RES_INIT) == 0 &&
-           res_ninit(nis->res) < 0)
-               return (NULL);
-
-       return (nis->res);
-}
-
-static void
-nis_res_set(struct irs_acc *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct nis_p *nis = (struct nis_p *)this->private;
-
-       if (nis->res && nis->free_res) {
-               res_nclose(nis->res);
-               (*nis->free_res)(nis->res);
-       }
-
-       nis->res = res;
-       nis->free_res = free_res;
-}
-
-static void
-nis_close(struct irs_acc *this) {
-       struct nis_p *nis = (struct nis_p *)this->private;
-
-       if (nis->res && nis->free_res)
-               (*nis->free_res)(nis->res);
-       free(nis->domain);
-       memput(nis, sizeof *nis);
-       memput(this, sizeof *this);
-}
-
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nis_gr.c b/lib/bind/irs/nis_gr.c
deleted file mode 100644 (file)
index c7c8d83..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * Copyright (c) 1989, 1993, 1995
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_gr.c,v 1.4 2005/04/27 04:56:32 sra Exp $";
-/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */
-/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $     */
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(WANT_IRS_GR) || !defined(WANT_IRS_NIS)
-static int __bind_irs_gr_unneeded;
-#else
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <isc/memcluster.h>
-
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <errno.h>
-#include <grp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-       /*%<
-        * Need space to store the entries read from the group file.
-        * The members list also needs space per member, and the
-        * strings making up the user names must be allocated
-        * somewhere.  Rather than doing lots of small allocations,
-        * we keep one buffer and resize it as needed.
-        */
-       struct group    group;
-       size_t          nmemb;          /*%< Malloc'd max index of gr_mem[]. */
-       char *          membuf;
-       size_t          membufsize;
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char group_bygid[] =  "group.bygid";
-static /*const*/ char group_byname[] = "group.byname";
-
-/* Forward */
-
-static void            gr_close(struct irs_gr *);
-static struct group *  gr_next(struct irs_gr *);
-static struct group *  gr_byname(struct irs_gr *, const char *);
-static struct group *  gr_bygid(struct irs_gr *, gid_t);
-static void            gr_rewind(struct irs_gr *);
-static void            gr_minimize(struct irs_gr *);
-
-static struct group *  makegroupent(struct irs_gr *);
-static void            nisfree(struct pvt *, enum do_what);
-
-/* Public */
-
-struct irs_gr *
-irs_nis_gr(struct irs_acc *this) {
-       struct irs_gr *gr;
-       struct pvt *pvt;
-
-       if (!(gr = memget(sizeof *gr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(gr, 0x5e, sizeof *gr);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(gr, sizeof *gr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       gr->private = pvt;
-       gr->close = gr_close;
-       gr->next = gr_next;
-       gr->byname = gr_byname;
-       gr->bygid = gr_bygid;
-       gr->rewind = gr_rewind;
-       gr->list = make_group_list;
-       gr->minimize = gr_minimize;
-       gr->res_get = NULL;
-       gr->res_set = NULL;
-       return (gr);
-}
-
-/* Methods */
-
-static void
-gr_close(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->group.gr_mem)
-               free(pvt->group.gr_mem);
-       if (pvt->membuf)
-               free(pvt->membuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct group *
-gr_next(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct group *rval;
-       int r;
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, group_byname,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, group_byname,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       errno = ENOENT;
-                       return (NULL);
-               }
-               rval = makegroupent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static struct group *
-gr_byname(struct irs_gr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       int r;
-
-       nisfree(pvt, do_val);
-       r = yp_match(pvt->nis_domain, group_byname, name, strlen(name),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makegroupent(this));
-}
-
-static struct group *
-gr_bygid(struct irs_gr *this, gid_t gid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char tmp[sizeof "4294967295"];
-       int r;
-
-       nisfree(pvt, do_val);
-       (void) sprintf(tmp, "%u", (unsigned int)gid);
-       r = yp_match(pvt->nis_domain, group_bygid, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makegroupent(this));
-}
-
-static void
-gr_rewind(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static void
-gr_minimize(struct irs_gr *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static struct group *
-makegroupent(struct irs_gr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       unsigned int num_members = 0;
-       char *cp, **new;
-       u_long t;
-
-       if (pvt->group.gr_mem) {
-               free(pvt->group.gr_mem);
-               pvt->group.gr_mem = NULL;
-               pvt->nmemb = 0;
-       }
-       if (pvt->membuf)
-               free(pvt->membuf);
-       pvt->membuf = pvt->curval_data;
-       pvt->curval_data = NULL;
-
-       cp = pvt->membuf;
-       pvt->group.gr_name = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-       
-       pvt->group.gr_passwd = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       errno = 0;
-       t = strtoul(cp, NULL, 10);
-       if (errno == ERANGE)
-               goto cleanup;
-       pvt->group.gr_gid = (gid_t) t;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       cp++;
-
-        if (*cp && cp[strlen(cp)-1] == '\n')
-          cp[strlen(cp)-1] = '\0';
-
-       /*
-        * Parse the members out.
-        */
-       while (*cp) {
-               if (num_members+1 >= pvt->nmemb || pvt->group.gr_mem == NULL) {
-                       pvt->nmemb += 10;
-                       new = realloc(pvt->group.gr_mem,
-                                     pvt->nmemb * sizeof(char *));
-                       if (new == NULL)
-                               goto cleanup;
-                       pvt->group.gr_mem = new;
-               }
-               pvt->group.gr_mem[num_members++] = cp;
-               if (!(cp = strchr(cp, ',')))
-                       break;
-               *cp++ = '\0';
-       }
-       if (pvt->group.gr_mem == NULL) {
-               pvt->group.gr_mem = malloc(sizeof(char*));
-               if (!pvt->group.gr_mem)
-                       goto cleanup;
-               pvt->nmemb = 1;
-       }
-       pvt->group.gr_mem[num_members] = NULL;
-       
-       return (&pvt->group);
-       
- cleanup:      
-       if (pvt->group.gr_mem) {
-               free(pvt->group.gr_mem);
-               pvt->group.gr_mem = NULL;
-               pvt->nmemb = 0;
-       }
-       if (pvt->membuf) {
-               free(pvt->membuf);
-               pvt->membuf = NULL;
-       }
-       return (NULL);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-#endif /* WANT_IRS_GR && WANT_IRS_NIS */
-/*! \file */
diff --git a/lib/bind/irs/nis_ho.c b/lib/bind/irs/nis_ho.c
deleted file mode 100644 (file)
index 0799613..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_ho.c,v 1.5 2005/04/27 04:56:32 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_NIS
-static int __bind_irs_nis_unneeded;
-#else
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-#ifdef T_NULL
-#undef T_NULL                  /* Silence re-definition warning of T_NULL. */
-#endif
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-#define        MAXALIASES      35
-#define        MAXADDRS        35
-
-#if PACKETSZ > 1024
-#define        MAXPACKET       PACKETSZ
-#else
-#define        MAXPACKET       1024
-#endif
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-       struct hostent  host;
-       char *          h_addr_ptrs[MAXADDRS + 1];
-       char *          host_aliases[MAXALIASES + 1];
-       char            hostbuf[8*1024];
-       u_char          host_addr[16];  /*%< IPv4 or IPv6 */
-       struct __res_state  *res;
-       void            (*free_res)(void *);
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
-static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
-static /*const*/ char hosts_byname[] = "hosts.byname";
-static /*const*/ char hosts_byaddr[] = "hosts.byaddr";
-static /*const*/ char ipnode_byname[] = "ipnode.byname";
-static /*const*/ char ipnode_byaddr[] = "ipnode.byaddr";
-static /*const*/ char yp_multi[] = "YP_MULTI_";
-
-/* Forwards */
-
-static void            ho_close(struct irs_ho *this);
-static struct hostent *        ho_byname(struct irs_ho *this, const char *name);
-static struct hostent *        ho_byname2(struct irs_ho *this, const char *name,
-                                       int af);
-static struct hostent *        ho_byaddr(struct irs_ho *this, const void *addr,
-                                      int len, int af);
-static struct hostent *        ho_next(struct irs_ho *this);
-static void            ho_rewind(struct irs_ho *this);
-static void            ho_minimize(struct irs_ho *this);
-static struct __res_state * ho_res_get(struct irs_ho *this);
-static void            ho_res_set(struct irs_ho *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name,
-                                    const struct addrinfo *pai);
-
-static struct hostent *        makehostent(struct irs_ho *this);
-static void            nisfree(struct pvt *, enum do_what);
-static int             init(struct irs_ho *this);
-
-/* Public */
-
-struct irs_ho *
-irs_nis_ho(struct irs_acc *this) {
-       struct irs_ho *ho;
-       struct pvt *pvt;
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(ho = memget(sizeof *ho))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ho, 0x5e, sizeof *ho);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       ho->private = pvt;
-       ho->close = ho_close;
-       ho->byname = ho_byname;
-       ho->byname2 = ho_byname2;
-       ho->byaddr = ho_byaddr;
-       ho->next = ho_next;
-       ho->rewind = ho_rewind;
-       ho->minimize = ho_minimize;
-       ho->res_set = ho_res_set;
-       ho->res_get = ho_res_get;
-       ho->addrinfo = ho_addrinfo;
-       return (ho);
-}
-
-/* Methods */
-
-static void
-ho_close(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       ho_minimize(this);
-       nisfree(pvt, do_all);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct hostent *
-ho_byname(struct irs_ho *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       if (pvt->res->options & RES_USE_INET6) {
-               hp = ho_byname2(this, name, AF_INET6);
-               if (hp)
-                       return (hp);
-       }
-       return (ho_byname2(this, name, AF_INET));
-}
-
-static struct hostent *
-ho_byname2(struct irs_ho *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       int r;
-       char *tmp;
-
-       UNUSED(af);
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       nisfree(pvt, do_val);
-
-       strcpy(pvt->hostbuf, yp_multi);
-       strncat(pvt->hostbuf, name, sizeof(pvt->hostbuf) - sizeof(yp_multi));
-       pvt->hostbuf[sizeof(pvt->hostbuf) - 1] = '\0';
-       for (r = sizeof(yp_multi) - 1; pvt->hostbuf[r] != '\0'; r++)
-               if (isupper((unsigned char)pvt->hostbuf[r]))
-                       tolower(pvt->hostbuf[r]);
-
-       tmp = pvt->hostbuf;
-       r = yp_match(pvt->nis_domain, ipnode_byname, tmp,
-                    strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               tmp = pvt->hostbuf + sizeof(yp_multi) - 1;
-               r = yp_match(pvt->nis_domain, ipnode_byname, tmp,
-                            strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       }
-       if (r != 0) {
-               tmp = pvt->hostbuf;
-               r = yp_match(pvt->nis_domain, hosts_byname, tmp,
-                            strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       }
-       if (r != 0) {
-               tmp = pvt->hostbuf + sizeof(yp_multi) - 1;
-               r = yp_match(pvt->nis_domain, hosts_byname, tmp,
-                            strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       }
-       if (r != 0) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       return (makehostent(this));
-}
-
-static struct hostent *
-ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"];
-       const u_char *uaddr = addr;
-       int r;
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       if (af == AF_INET6 && len == IN6ADDRSZ &&
-           (!memcmp(uaddr, mapped, sizeof mapped) ||
-            !memcmp(uaddr, tunnelled, sizeof tunnelled))) {
-               /* Unmap. */
-               addr = (const u_char *)addr + sizeof mapped;
-               uaddr += sizeof mapped;
-               af = AF_INET;
-               len = INADDRSZ;
-       }
-       if (inet_ntop(af, uaddr, tmp, sizeof tmp) == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       nisfree(pvt, do_val);
-       r = yp_match(pvt->nis_domain, ipnode_byaddr, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0)
-               r = yp_match(pvt->nis_domain, hosts_byaddr, tmp, strlen(tmp),
-                            &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       return (makehostent(this));
-}
-
-static struct hostent *
-ho_next(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *rval;
-       int r;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, hosts_byaddr,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, hosts_byaddr,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-                       return (NULL);
-               }
-               rval = makehostent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static void
-ho_rewind(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static void
-ho_minimize(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-}
-
-static struct __res_state *
-ho_res_get(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               ho_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-ho_res_set(struct irs_ho *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-struct nis_res_target {
-       struct nis_res_target *next;
-       int family;
-};
-
-/* XXX */
-extern struct addrinfo *hostent2addrinfo __P((struct hostent *,
-                                             const struct addrinfo *pai));
-
-static struct addrinfo *
-ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct hostent *hp;
-       struct nis_res_target q, q2, *p;
-       struct addrinfo sentinel, *cur;
-
-       memset(&q, 0, sizeof(q2));
-       memset(&q2, 0, sizeof(q2));
-       memset(&sentinel, 0, sizeof(sentinel));
-       cur = &sentinel;
-
-       switch(pai->ai_family) {
-       case AF_UNSPEC:         /*%< INET6 then INET4 */
-               q.family = AF_INET6;
-               q.next = &q2;
-               q2.family = AF_INET;
-               break;
-       case AF_INET6:
-               q.family = AF_INET6;
-               break;
-       case AF_INET:
-               q.family = AF_INET;
-               break;
-       default:
-               RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /*%< ??? */
-               return(NULL);
-       }
-
-       for (p = &q; p; p = p->next) {
-               struct addrinfo *ai;
-
-               hp = (*this->byname2)(this, name, p->family);
-               if (hp == NULL) {
-                       /* byname2 should've set an appropriate error */
-                       continue;
-               }
-               if ((hp->h_name == NULL) || (hp->h_name[0] == 0) ||
-                   (hp->h_addr_list[0] == NULL)) {
-                       RES_SET_H_ERRNO(pvt->res, NO_RECOVERY);
-                       continue;
-               }
-               ai = hostent2addrinfo(hp, pai);
-               if (ai) {
-                       cur->ai_next = ai;
-                       while (cur && cur->ai_next)
-                               cur = cur->ai_next;
-               }
-       }
-
-       if (sentinel.ai_next == NULL)
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-
-       return(sentinel.ai_next);
-}
-
-/* Private */
-
-/*%
-ipnodes:
-::1             localhost
-127.0.0.1       localhost
-1.2.3.4         FOO bar
-1.2.6.4         FOO bar
-1.2.6.5         host
-
-ipnodes.byname:
-YP_MULTI_localhost ::1,127.0.0.1        localhost
-YP_MULTI_foo 1.2.3.4,1.2.6.4    FOO bar
-YP_MULTI_bar 1.2.3.4,1.2.6.4    FOO bar
-host 1.2.6.5    host
-
-hosts.byname:
-localhost 127.0.0.1     localhost
-host 1.2.6.5    host
-YP_MULTI_foo 1.2.3.4,1.2.6.4    FOO bar
-YP_MULTI_bar 1.2.3.4,1.2.6.4    FOO bar
-*/
-
-static struct hostent *
-makehostent(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       static const char spaces[] = " \t";
-       char *cp, **q, *p, *comma, *ap;
-       int af = 0, len = 0;
-       int multi = 0;
-       int addr = 0;
-
-       p = pvt->curval_data;
-       if ((cp = strpbrk(p, "#\n")) != NULL)
-               *cp = '\0';
-       if (!(cp = strpbrk(p, spaces)))
-               return (NULL);
-       *cp++ = '\0';
-       ap = pvt->hostbuf;
-       do {
-               if ((comma = strchr(p, ',')) != NULL) {
-                       *comma++ = '\0';
-                       multi = 1;
-               }
-               if ((ap + IN6ADDRSZ) > (pvt->hostbuf + sizeof(pvt->hostbuf)))
-                       break;
-               if ((pvt->res->options & RES_USE_INET6) &&
-                   inet_pton(AF_INET6, p, ap) > 0) {
-                       af = AF_INET6;
-                       len = IN6ADDRSZ;
-               } else if (inet_pton(AF_INET, p, pvt->host_addr) > 0) {
-                       if (pvt->res->options & RES_USE_INET6) {
-                               map_v4v6_address((char*)pvt->host_addr, ap);
-                               af = AF_INET6;
-                               len = IN6ADDRSZ;
-                       } else {
-                               af = AF_INET;
-                               len = INADDRSZ;
-                       }
-               } else {
-                       if (!multi)
-                               return (NULL);
-                       continue;
-               }
-               if (addr < MAXADDRS) {
-                       pvt->h_addr_ptrs[addr++] = ap;
-                       pvt->h_addr_ptrs[addr] = NULL;
-                       ap += len;
-               }
-       } while ((p = comma) != NULL);
-       if (ap == pvt->hostbuf)
-               return (NULL);
-       pvt->host.h_addr_list = pvt->h_addr_ptrs;
-       pvt->host.h_length = len;
-       pvt->host.h_addrtype = af;
-       cp += strspn(cp, spaces);
-       pvt->host.h_name = cp;
-       q = pvt->host.h_aliases = pvt->host_aliases;
-       if ((cp = strpbrk(cp, spaces)) != NULL)
-               *cp++ = '\0';
-       while (cp && *cp) {
-               if (*cp == ' ' || *cp == '\t') {
-                       cp++;
-                       continue;
-               }
-               if (q < &pvt->host_aliases[MAXALIASES])
-                       *q++ = cp;
-               if ((cp = strpbrk(cp, spaces)) != NULL)
-                       *cp++ = '\0';
-       }
-       *q = NULL;
-       RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS);
-       return (&pvt->host);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-static int
-init(struct irs_ho *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !ho_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nis_ng.c b/lib/bind/irs/nis_ng.c
deleted file mode 100644 (file)
index ac63305..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_ng.c,v 1.4 2005/04/27 04:56:32 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_NIS
-static int __bind_irs_nis_unneeded;
-#else
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <isc/assertions.h>
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netinet/in.h>
-#ifdef T_NULL
-#undef T_NULL                  /* Silence re-definition warning of T_NULL. */
-#endif
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-struct tmpgrp {
-       const char *    name;
-       const char *    host;
-       const char *    user;
-       const char *    domain;
-       struct tmpgrp * next;
-};
-
-struct pvt {
-       char *          nis_domain;
-       struct tmpgrp * tmp;
-       struct tmpgrp * cur;
-       char *          tmpgroup;
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char netgroup_map[]   = "netgroup";
-
-/* Forward */
-
-static void            ng_close(struct irs_ng *);
-static int             ng_next(struct irs_ng *, const char **,
-                               const char **, const char **);
-static int             ng_test(struct irs_ng *,
-                               const char *, const char *,
-                               const char *, const char *);
-static void            ng_rewind(struct irs_ng *, const char *);
-static void            ng_minimize(struct irs_ng *);
-
-static void            add_group_to_list(struct pvt *, const char *, int);
-static void            add_tuple_to_list(struct pvt *, const char *, char *);
-static void            tmpfree(struct pvt *);
-
-/* Public */
-
-struct irs_ng *
-irs_nis_ng(struct irs_acc *this) {
-       struct irs_ng *ng;
-       struct pvt *pvt;
-
-       if (!(ng = memget(sizeof *ng))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ng, 0x5e, sizeof *ng);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(ng, sizeof *ng);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       ng->private = pvt;
-       ng->close = ng_close;
-       ng->next = ng_next;
-       ng->test = ng_test;
-       ng->rewind = ng_rewind;
-       ng->minimize = ng_minimize;
-       return (ng);
-}
-
-/* Methods */
-
-static void
-ng_close(struct irs_ng *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       tmpfree(pvt);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static int
-ng_next(struct irs_ng *this, const char **host, const char **user, const char **domain) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->cur)
-               return (0);
-       *host = pvt->cur->host;
-       *user = pvt->cur->user;
-       *domain = pvt->cur->domain;
-       pvt->cur = pvt->cur->next;
-       return (1);
-}
-
-static int
-ng_test(struct irs_ng *this, const char *name,
-       const char *host, const char *user, const char *domain)
-{
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct tmpgrp *cur;
-
-       tmpfree(pvt);
-       add_group_to_list(pvt, name, strlen(name));
-       for (cur = pvt->tmp; cur; cur = cur->next) {
-               if ((!host || !cur->host || !strcmp(host, cur->host)) &&
-                   (!user || !cur->user || !strcmp(user, cur->user)) &&
-                   (!domain || !cur->domain || !strcmp(domain, cur->domain)))
-                       break;
-       }
-       tmpfree(pvt);
-       return ((cur == NULL) ? 0 : 1);
-}
-
-static void
-ng_rewind(struct irs_ng *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       /* Either hand back or free the existing list. */
-       if (pvt->tmpgroup) {
-               if (pvt->tmp && !strcmp(pvt->tmpgroup, name))
-                       goto reset;
-               tmpfree(pvt);
-       }
-       pvt->tmpgroup = strdup(name);
-       add_group_to_list(pvt, name, strlen(name));
- reset:
-       pvt->cur = pvt->tmp;
-}
-
-static void
-ng_minimize(struct irs_ng *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static void
-add_group_to_list(struct pvt *pvt, const char *name, int len) {
-       char *vdata, *cp, *np;
-       struct tmpgrp *tmp;
-       int vlen, r;
-       char *nametmp;
-
-       /* Don't add the same group to the list more than once. */
-       for (tmp = pvt->tmp; tmp; tmp = tmp->next)
-               if (!strcmp(tmp->name, name))
-                       return;
-
-       DE_CONST(name, nametmp);
-       r = yp_match(pvt->nis_domain, netgroup_map, nametmp, len,
-                    &vdata, &vlen);
-       if (r == 0) {
-               cp = vdata;
-               if (*cp && cp[strlen(cp)-1] == '\n')
-                  cp[strlen(cp)-1] = '\0';
-               for ( ; cp; cp = np) {
-                       np = strchr(cp, ' ');
-                       if (np)
-                               *np++ = '\0';
-                       if (*cp == '(')
-                               add_tuple_to_list(pvt, name, cp);
-                       else
-                               add_group_to_list(pvt, cp, strlen(cp));
-               }
-               free(vdata);
-       }
-}
-
-static void
-add_tuple_to_list(struct pvt *pvt, const char *name, char *cp) {
-       struct tmpgrp *tmp;
-       char *tp, *np;
-
-       INSIST(*cp++ == '(');
-
-       tmp = malloc(sizeof *tmp + strlen(name) + sizeof '\0' +
-                    strlen(cp) - sizeof ')');
-       if (!tmp)
-               return;
-       memset(tmp, 0, sizeof *tmp);
-       tp = ((char *)tmp) + sizeof *tmp;
-
-       /* Name */
-       strcpy(tp, name);
-       tmp->name = tp;
-       tp += strlen(tp) + 1;
-
-       /* Host */
-       if (!(np = strchr(cp, ',')))
-               goto cleanup;
-       *np++ = '\0';
-       strcpy(tp, cp);
-       tmp->host = tp;
-       tp += strlen(tp) + 1;
-       cp = np;
-
-       /* User */
-       if (!(np = strchr(cp, ',')))
-               goto cleanup;
-       *np++ = '\0';
-       strcpy(tp, cp);
-       tmp->user = tp;
-       tp += strlen(tp) + 1;
-       cp = np;
-
-       /* Domain */
-       if (!(np = strchr(cp, ')')))
-               goto cleanup;
-       *np++ = '\0';
-       strcpy(tp, cp);
-       tmp->domain = tp;
-
-       /*
-        * Empty string in file means wildcard, but
-        * NULL string in return value means wildcard.
-        */
-       if (!*tmp->host)
-               tmp->host = NULL;
-       if (!*tmp->user)
-               tmp->user = NULL;
-       if (!*tmp->domain)
-               tmp->domain = NULL;
-
-       /* Add to list (LIFO). */
-       tmp->next = pvt->tmp;
-       pvt->tmp = tmp;
-       return;
-
- cleanup:
-       free(tmp);
-}
-
-static void
-tmpfree(struct pvt *pvt) {
-       struct tmpgrp *cur, *next;
-
-       if (pvt->tmpgroup) {
-               free(pvt->tmpgroup);
-               pvt->tmpgroup = NULL;
-       }
-       for (cur = pvt->tmp; cur; cur = next) {
-               next = cur->next;
-               free(cur);
-       }
-       pvt->tmp = NULL;
-}
-
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nis_nw.c b/lib/bind/irs/nis_nw.c
deleted file mode 100644 (file)
index c61e871..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_nw.c,v 1.4 2005/04/27 04:56:33 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_NIS
-static int __bind_irs_nis_unneeded;
-#else
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-#ifdef T_NULL
-#undef T_NULL          /* Silence re-definition warning of T_NULL. */
-#endif
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-#define MAXALIASES 35
-#define MAXADDRSIZE 4
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-
-       struct nwent    nwent;
-       char *          nwbuf;
-
-       char *          aliases[MAXALIASES + 1];
-       u_char          addr[MAXADDRSIZE];
-
-       struct __res_state *  res;
-       void            (*free_res)(void *);
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char networks_byname[] = "networks.byname";
-static /*const*/ char networks_byaddr[] = "networks.byaddr";
-
-/* Forward */
-
-static void            nw_close(struct irs_nw *);
-static struct nwent *  nw_byname(struct irs_nw *, const char *, int);
-static struct nwent *  nw_byaddr(struct irs_nw *, void *, int, int);
-static struct nwent *  nw_next(struct irs_nw *);
-static void            nw_rewind(struct irs_nw *);
-static void            nw_minimize(struct irs_nw *);
-static struct __res_state * nw_res_get(struct irs_nw *this);
-static void            nw_res_set(struct irs_nw *this,
-                                  struct __res_state *res,
-                                  void (*free_res)(void *));
-
-static struct nwent *  makenwent(struct irs_nw *this);
-static void            nisfree(struct pvt *, enum do_what);
-static int             init(struct irs_nw *this);
-
-/* Public */
-
-struct irs_nw *
-irs_nis_nw(struct irs_acc *this) {
-       struct irs_nw *nw;
-       struct pvt *pvt;
-
-       if (!(pvt = memget(sizeof *pvt))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       if (!(nw = memget(sizeof *nw))) {
-               memput(pvt, sizeof *pvt);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(nw, 0x5e, sizeof *nw);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       nw->private = pvt;
-       nw->close = nw_close;
-       nw->byname = nw_byname;
-       nw->byaddr = nw_byaddr;
-       nw->next = nw_next;
-       nw->rewind = nw_rewind;
-       nw->minimize = nw_minimize;
-       nw->res_get = nw_res_get;
-       nw->res_set = nw_res_set;
-       return (nw);
-}
-
-/* Methods */
-
-static void
-nw_close(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;  
-
-       nw_minimize(this);
-       if (pvt->res && pvt->free_res)
-               (*pvt->free_res)(pvt->res);
-       if (pvt->nwbuf)
-               free(pvt->nwbuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct nwent *
-nw_byaddr(struct irs_nw *this, void *net, int length, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char tmp[sizeof "255.255.255.255/32"], *t;
-       int r;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       if (af != AF_INET) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = EAFNOSUPPORT;
-               return (NULL);
-       }
-       nisfree(pvt, do_val);
-       /* Try it with /CIDR first. */
-       if (inet_net_ntop(AF_INET, net, length, tmp, sizeof tmp) == NULL) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               return (NULL);
-       }
-       r = yp_match(pvt->nis_domain, networks_byaddr, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               /* Give it a shot without the /CIDR. */
-               if ((t = strchr(tmp, '/')) != NULL) {
-                       *t = '\0';
-                       r = yp_match(pvt->nis_domain, networks_byaddr,
-                                    tmp, strlen(tmp),
-                                    &pvt->curval_data, &pvt->curval_len);
-               }
-               if (r != 0) {
-                       RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-                       return (NULL);
-               }
-       }
-       return (makenwent(this));
-}
-
-static struct nwent *
-nw_byname(struct irs_nw *this, const char *name, int af) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       int r;
-       char *tmp;
-       
-       if (init(this) == -1)
-               return (NULL);
-
-       if (af != AF_INET) {
-               RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);
-               errno = EAFNOSUPPORT;
-               return (NULL);
-       }
-       nisfree(pvt, do_val);
-       DE_CONST(name, tmp);
-       r = yp_match(pvt->nis_domain, networks_byname, tmp,
-                    strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-               return (NULL);
-       }
-       return (makenwent(this));
-}
-
-static void
-nw_rewind(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static struct nwent *
-nw_next(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct nwent *rval;
-       int r;
-
-       if (init(this) == -1)
-               return (NULL);
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, networks_byaddr,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, networks_byaddr,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND);
-                       return (NULL);
-               }
-               rval = makenwent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static void
-nw_minimize(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res)
-               res_nclose(pvt->res);
-}
-
-static struct __res_state *
-nw_res_get(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (!pvt->res) {
-               struct __res_state *res;
-               res = (struct __res_state *)malloc(sizeof *res);
-               if (!res) {
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               memset(res, 0, sizeof *res);
-               nw_res_set(this, res, free);
-       }
-
-       return (pvt->res);
-}
-
-static void
-nw_res_set(struct irs_nw *this, struct __res_state *res,
-               void (*free_res)(void *)) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       if (pvt->res && pvt->free_res) {
-               res_nclose(pvt->res);
-               (*pvt->free_res)(pvt->res);
-       }
-
-       pvt->res = res;
-       pvt->free_res = free_res;
-}
-
-/* Private */
-
-static struct nwent *
-makenwent(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       static const char spaces[] = " \t";
-       char *t, *cp, **ap;
-
-       if (pvt->nwbuf)
-               free(pvt->nwbuf);
-       pvt->nwbuf = pvt->curval_data;
-       pvt->curval_data = NULL;
-
-       if ((cp = strpbrk(pvt->nwbuf, "#\n")) != NULL)
-               *cp = '\0';
-       cp = pvt->nwbuf;
-
-       /* Name */
-       pvt->nwent.n_name = cp;
-       cp += strcspn(cp, spaces);
-       if (!*cp)
-               goto cleanup;
-       *cp++ = '\0';
-       cp += strspn(cp, spaces);
-
-       /* Network */
-       pvt->nwent.n_addrtype = AF_INET;
-       t = cp + strcspn(cp, spaces);
-       if (*t)
-               *t++ = '\0';
-       pvt->nwent.n_length = inet_net_pton(AF_INET, cp,
-                                           pvt->addr, sizeof pvt->addr);
-       if (pvt->nwent.n_length < 0)
-               goto cleanup;
-       pvt->nwent.n_addr = pvt->addr;
-       cp = t;
-
-       /* Aliases */
-       ap = pvt->nwent.n_aliases = pvt->aliases;
-       while (*cp) {
-               if (ap >= &pvt->aliases[MAXALIASES])
-                       break;
-               *ap++ = cp;
-               cp += strcspn(cp, spaces);
-               if (!*cp)
-                       break;
-               *cp++ = '\0';
-               cp += strspn(cp, spaces);
-       }
-       *ap = NULL;
-
-       return (&pvt->nwent);
-
- cleanup:
-       if (pvt->nwbuf) {
-               free(pvt->nwbuf);
-               pvt->nwbuf = NULL;
-       }
-       return (NULL);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-static int
-init(struct irs_nw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (!pvt->res && !nw_res_get(this))
-               return (-1);
-       if (((pvt->res->options & RES_INIT) == 0) &&
-           res_ninit(pvt->res) == -1)
-               return (-1);
-       return (0);
-}
-
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nis_p.h b/lib/bind/irs/nis_p.h
deleted file mode 100644 (file)
index 70e2948..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: nis_p.h,v 1.3 2005/04/27 04:56:33 sra Exp $
- */
-
-/*! \file
- * \brief
- * nis_p.h - private include file for the NIS functions.
- */
-
-/*%
- * Object state.
- */
-struct nis_p {
-       char *                  domain;
-       struct __res_state *    res;
-       void                    (*free_res) __P((void *));
-};
-
-
-/*
- * Methods.
- */
-
-extern struct irs_gr * irs_nis_gr __P((struct irs_acc *));
-extern struct irs_pw * irs_nis_pw __P((struct irs_acc *));
-extern struct irs_sv * irs_nis_sv __P((struct irs_acc *));
-extern struct irs_pr * irs_nis_pr __P((struct irs_acc *));
-extern struct irs_ho * irs_nis_ho __P((struct irs_acc *));
-extern struct irs_nw * irs_nis_nw __P((struct irs_acc *));
-extern struct irs_ng * irs_nis_ng __P((struct irs_acc *));
diff --git a/lib/bind/irs/nis_pr.c b/lib/bind/irs/nis_pr.c
deleted file mode 100644 (file)
index 4995550..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_pr.c,v 1.4 2005/04/27 04:56:33 sra Exp $";
-#endif
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_NIS
-static int __bind_irs_nis_unneeded;
-#else
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#ifdef T_NULL
-#undef T_NULL                  /* Silence re-definition warning of T_NULL. */
-#endif
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-       struct protoent proto;
-       char *          prbuf;
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char protocols_byname[] =     "protocols.byname";
-static /*const*/ char protocols_bynumber[] =   "protocols.bynumber";
-
-/* Forward */
-
-static void                    pr_close(struct irs_pr *);
-static struct protoent *       pr_byname(struct irs_pr *, const char *);
-static struct protoent *       pr_bynumber(struct irs_pr *, int);
-static struct protoent *       pr_next(struct irs_pr *);
-static void                    pr_rewind(struct irs_pr *);
-static void                    pr_minimize(struct irs_pr *);
-
-static struct protoent *       makeprotoent(struct irs_pr *this);
-static void                    nisfree(struct pvt *, enum do_what);
-
-/* Public */
-
-struct irs_pr *
-irs_nis_pr(struct irs_acc *this) {
-       struct irs_pr *pr;
-       struct pvt *pvt;
-
-       if (!(pr = memget(sizeof *pr))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pr, 0x5e, sizeof *pr);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(pr, sizeof *pr);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       pr->private = pvt;
-       pr->byname = pr_byname;
-       pr->bynumber = pr_bynumber;
-       pr->next = pr_next;
-       pr->rewind = pr_rewind;
-       pr->close = pr_close;
-       pr->minimize = pr_minimize;
-       pr->res_get = NULL;
-       pr->res_set = NULL;
-       return (pr);
-}
-
-/* Methods. */
-
-static void
-pr_close(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       nisfree(pvt, do_all);
-       if (pvt->proto.p_aliases)
-               free(pvt->proto.p_aliases);
-       if (pvt->prbuf)
-               free(pvt->prbuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct protoent *
-pr_byname(struct irs_pr *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       int r;
-       char *tmp;
-       
-       nisfree(pvt, do_val);
-       DE_CONST(name, tmp);
-       r = yp_match(pvt->nis_domain, protocols_byname, tmp,
-                    strlen(tmp), &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makeprotoent(this));
-}
-
-static struct protoent *
-pr_bynumber(struct irs_pr *this, int num) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char tmp[sizeof "-4294967295"];
-       int r;
-       
-       nisfree(pvt, do_val);
-       (void) sprintf(tmp, "%d", num);
-       r = yp_match(pvt->nis_domain, protocols_bynumber, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makeprotoent(this));
-}
-
-static struct protoent *
-pr_next(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct protoent *rval;
-       int r;
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, protocols_bynumber,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, protocols_bynumber,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       errno = ENOENT;
-                       return (NULL);
-               }
-               rval = makeprotoent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static void
-pr_rewind(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static void
-pr_minimize(struct irs_pr *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static struct protoent *
-makeprotoent(struct irs_pr *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *p, **t;
-       int n, m;
-
-       if (pvt->prbuf)
-               free(pvt->prbuf);
-       pvt->prbuf = pvt->curval_data;
-       pvt->curval_data = NULL;
-
-       for (p = pvt->prbuf; *p && *p != '#';)
-               p++;
-       while (p > pvt->prbuf && isspace((unsigned char)(p[-1])))
-               p--;
-       *p = '\0';
-
-       p = pvt->prbuf;
-       n = m = 0;
-
-       pvt->proto.p_name = p;
-       while (*p && !isspace((unsigned char)*p))
-               p++;
-       if (!*p)
-               return (NULL);
-       *p++ = '\0';
-
-       while (*p && isspace((unsigned char)*p))
-               p++;
-       pvt->proto.p_proto = atoi(p);
-       while (*p && !isspace((unsigned char)*p))
-               p++;
-       *p++ = '\0';
-
-       while (*p) {
-               if ((n + 1) >= m || !pvt->proto.p_aliases) {
-                       m += 10;
-                       t = realloc(pvt->proto.p_aliases,
-                                     m * sizeof(char *));
-                       if (!t) {
-                               errno = ENOMEM;
-                               goto cleanup;
-                       }
-                       pvt->proto.p_aliases = t;
-               }
-               pvt->proto.p_aliases[n++] = p;
-               while (*p && !isspace((unsigned char)*p))
-                       p++;
-               if (*p)
-                       *p++ = '\0';
-       }
-       if (!pvt->proto.p_aliases)
-               pvt->proto.p_aliases = malloc(sizeof(char *));
-       if (!pvt->proto.p_aliases)
-               goto cleanup;
-       pvt->proto.p_aliases[n] = NULL;
-       return (&pvt->proto);
-       
- cleanup:
-       if (pvt->proto.p_aliases) {
-               free(pvt->proto.p_aliases);
-               pvt->proto.p_aliases = NULL;
-       }
-       if (pvt->prbuf) {
-               free(pvt->prbuf);
-               pvt->prbuf = NULL;
-       }
-       return (NULL);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nis_pw.c b/lib/bind/irs/nis_pw.c
deleted file mode 100644 (file)
index 8f27e4b..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_pw.c,v 1.4 2005/04/27 04:56:33 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#if !defined(WANT_IRS_PW) || !defined(WANT_IRS_NIS)
-static int __bind_irs_pw_unneeded;
-#else
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <isc/memcluster.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <pwd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <isc/memcluster.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-       struct passwd   passwd;
-       char *          pwbuf;
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char passwd_byname[] =        "passwd.byname";
-static /*const*/ char passwd_byuid[] = "passwd.byuid";
-
-/* Forward */
-
-static void                    pw_close(struct irs_pw *);
-static struct passwd *         pw_next(struct irs_pw *);
-static struct passwd *         pw_byname(struct irs_pw *, const char *);
-static struct passwd *         pw_byuid(struct irs_pw *, uid_t);
-static void                    pw_rewind(struct irs_pw *);
-static void                    pw_minimize(struct irs_pw *);
-
-static struct passwd *         makepasswdent(struct irs_pw *);
-static void                    nisfree(struct pvt *, enum do_what);
-
-/* Public */
-
-struct irs_pw *
-irs_nis_pw(struct irs_acc *this) {
-       struct irs_pw *pw;
-       struct pvt *pvt;
-                
-        if (!(pw = memget(sizeof *pw))) {
-                errno = ENOMEM;
-                return (NULL);
-        }
-        memset(pw, 0x5e, sizeof *pw);
-        if (!(pvt = memget(sizeof *pvt))) {
-                memput(pw, sizeof *pw);
-                errno = ENOMEM;
-                return (NULL);
-        }
-        memset(pvt, 0, sizeof *pvt);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       pw->private = pvt;
-       pw->close = pw_close;
-       pw->next = pw_next;
-       pw->byname = pw_byname;
-       pw->byuid = pw_byuid;
-       pw->rewind = pw_rewind;
-       pw->minimize = pw_minimize;
-       pw->res_get = NULL;
-       pw->res_set = NULL;
-       return (pw);
-}
-
-/* Methods */
-
-static void
-pw_close(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       if (pvt->pwbuf)
-               free(pvt->pwbuf);
-       nisfree(pvt, do_all);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct passwd *
-pw_next(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct passwd *rval;
-       int r;
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, passwd_byname,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, passwd_byname,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       errno = ENOENT;
-                       return (NULL);
-               }
-               rval = makepasswdent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static struct passwd *
-pw_byname(struct irs_pw *this, const char *name) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       int r;
-       char *tmp;
-
-       nisfree(pvt, do_val);
-       DE_CONST(name, tmp);
-       r = yp_match(pvt->nis_domain, passwd_byname, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makepasswdent(this));
-}
-
-static struct passwd *
-pw_byuid(struct irs_pw *this, uid_t uid) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char tmp[sizeof "4294967295"];
-       int r;
-
-       nisfree(pvt, do_val);
-       (void) sprintf(tmp, "%u", (unsigned int)uid);
-       r = yp_match(pvt->nis_domain, passwd_byuid, tmp, strlen(tmp),
-                    &pvt->curval_data, &pvt->curval_len);
-       if (r != 0) {
-               errno = ENOENT;
-               return (NULL);
-       }
-       return (makepasswdent(this));
-}
-
-static void
-pw_rewind(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static void
-pw_minimize(struct irs_pw *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static struct passwd *
-makepasswdent(struct irs_pw *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       char *cp;
-
-       memset(&pvt->passwd, 0, sizeof pvt->passwd);
-       if (pvt->pwbuf)
-               free(pvt->pwbuf);
-       pvt->pwbuf = pvt->curval_data;
-       pvt->curval_data = NULL;
-
-       cp = pvt->pwbuf;
-       pvt->passwd.pw_name = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-#ifdef HAS_PW_CLASS
-       pvt->passwd.pw_class = cp;      /*%< Needs to point at a \0. */
-#endif
-       *cp++ = '\0';
-
-       pvt->passwd.pw_passwd = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-       
-       pvt->passwd.pw_uid = atoi(cp);
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_gid = atoi(cp);
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_gecos = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_dir = cp;
-       if (!(cp = strchr(cp, ':')))
-               goto cleanup;
-       *cp++ = '\0';
-
-       pvt->passwd.pw_shell = cp;
-
-       if ((cp = strchr(cp, '\n')) != NULL)
-               *cp = '\0';
-
-       return (&pvt->passwd);
-       
- cleanup:
-       free(pvt->pwbuf);
-       pvt->pwbuf = NULL;
-       return (NULL);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-#endif /* WANT_IRS_PW && WANT_IRS_NIS */
-/*! \file */
diff --git a/lib/bind/irs/nis_sv.c b/lib/bind/irs/nis_sv.c
deleted file mode 100644 (file)
index bb24600..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nis_sv.c,v 1.4 2005/04/27 04:56:34 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/* Imports */
-
-#include "port_before.h"
-
-#ifndef WANT_IRS_NIS
-static int __bind_irs_nis_unneeded;
-#else
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-#include <sys/socket.h>
-#ifdef T_NULL
-#undef T_NULL                  /* Silence re-definition warning of T_NULL. */
-#endif
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/memcluster.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "nis_p.h"
-
-/* Definitions */
-
-struct pvt {
-       int             needrewind;
-       char *          nis_domain;
-       char *          curkey_data;
-       int             curkey_len;
-       char *          curval_data;
-       int             curval_len;
-       char            line[BUFSIZ+1];
-       struct servent  serv;
-       char *          svbuf;
-};
-
-enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 };
-
-static /*const*/ char services_byname[] = "services.byname";
-
-/* Forward */
-
-static void                    sv_close(struct irs_sv*);
-static struct servent *                sv_next(struct irs_sv *);
-static struct servent *                sv_byname(struct irs_sv *, const char *,
-                                         const char *);
-static struct servent *                sv_byport(struct irs_sv *, int, const char *);
-static void                    sv_rewind(struct irs_sv *);
-static void                    sv_minimize(struct irs_sv *);
-
-static struct servent *                makeservent(struct irs_sv *this);
-static void                    nisfree(struct pvt *, enum do_what);
-
-/* Public */
-
-struct irs_sv *
-irs_nis_sv(struct irs_acc *this) {
-       struct irs_sv *sv;
-       struct pvt *pvt;
-       
-       if (!(sv = memget(sizeof *sv))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(sv, 0x5e, sizeof *sv);
-       if (!(pvt = memget(sizeof *pvt))) {
-               memput(sv, sizeof *sv);
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(pvt, 0, sizeof *pvt);
-       pvt->needrewind = 1;
-       pvt->nis_domain = ((struct nis_p *)this->private)->domain;
-       sv->private = pvt;
-       sv->close = sv_close;
-       sv->next = sv_next;
-       sv->byname = sv_byname;
-       sv->byport = sv_byport;
-       sv->rewind = sv_rewind;
-       sv->minimize = sv_minimize;
-       sv->res_get = NULL;
-       sv->res_set = NULL;
-       return (sv);
-}
-
-/* Methods */
-
-static void
-sv_close(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       
-       nisfree(pvt, do_all);
-       if (pvt->serv.s_aliases)
-               free(pvt->serv.s_aliases);
-       if (pvt->svbuf)
-               free(pvt->svbuf);
-       memput(pvt, sizeof *pvt);
-       memput(this, sizeof *this);
-}
-
-static struct servent *
-sv_byname(struct irs_sv *this, const char *name, const char *proto) {
-       struct servent *serv;
-       char **sap;
-
-       sv_rewind(this);
-       while ((serv = sv_next(this)) != NULL) {
-               if (proto != NULL && strcmp(proto, serv->s_proto))
-                       continue;
-               if (!strcmp(name, serv->s_name))
-                       break;
-               for (sap = serv->s_aliases; sap && *sap; sap++)
-                       if (!strcmp(name, *sap))
-                               break;
-       }
-       return (serv);
-}
-
-static struct servent *
-sv_byport(struct irs_sv *this, int port, const char *proto) {
-       struct servent *serv;
-
-       sv_rewind(this);
-       while ((serv = sv_next(this)) != NULL) {
-               if (proto != NULL && strcmp(proto, serv->s_proto))
-                       continue;
-               if (serv->s_port == port)
-                       break;
-       }
-       return (serv);
-}
-
-static void
-sv_rewind(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-
-       pvt->needrewind = 1;
-}
-
-static struct servent *
-sv_next(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       struct servent *rval;
-       int r;
-
-       do {
-               if (pvt->needrewind) {
-                       nisfree(pvt, do_all);
-                       r = yp_first(pvt->nis_domain, services_byname,
-                                    &pvt->curkey_data, &pvt->curkey_len,
-                                    &pvt->curval_data, &pvt->curval_len);
-                       pvt->needrewind = 0;
-               } else {
-                       char *newkey_data;
-                       int newkey_len;
-
-                       nisfree(pvt, do_val);
-                       r = yp_next(pvt->nis_domain, services_byname,
-                                   pvt->curkey_data, pvt->curkey_len,
-                                   &newkey_data, &newkey_len,
-                                   &pvt->curval_data, &pvt->curval_len);
-                       nisfree(pvt, do_key);
-                       pvt->curkey_data = newkey_data;
-                       pvt->curkey_len = newkey_len;
-               }
-               if (r != 0) {
-                       errno = ENOENT;
-                       return (NULL);
-               }
-               rval = makeservent(this);
-       } while (rval == NULL);
-       return (rval);
-}
-
-static void
-sv_minimize(struct irs_sv *this) {
-       UNUSED(this);
-       /* NOOP */
-}
-
-/* Private */
-
-static struct servent *
-makeservent(struct irs_sv *this) {
-       struct pvt *pvt = (struct pvt *)this->private;
-       static const char spaces[] = " \t";
-       char *p, **t;
-       int n, m;
-
-       if (pvt->svbuf)
-               free(pvt->svbuf);
-       pvt->svbuf = pvt->curval_data;
-       pvt->curval_data = NULL;
-
-       if (pvt->serv.s_aliases) {
-               free(pvt->serv.s_aliases);
-               pvt->serv.s_aliases = NULL;
-       }
-
-       if ((p = strpbrk(pvt->svbuf, "#\n")))
-               *p = '\0';
-
-       p = pvt->svbuf;
-
-       pvt->serv.s_name = p;
-       p += strcspn(p, spaces);
-       if (!*p)
-               goto cleanup;
-       *p++ = '\0';
-       p += strspn(p, spaces);
-
-       pvt->serv.s_port = htons((u_short) atoi(p));
-       pvt->serv.s_proto = NULL;
-       
-       while (*p && !isspace((unsigned char)*p))
-               if (*p++ == '/')
-                       pvt->serv.s_proto = p;
-       if (!pvt->serv.s_proto)
-               goto cleanup;
-       if (*p) {
-               *p++ = '\0';
-               p += strspn(p, spaces);
-       }
-
-       n = m = 0;
-       while (*p) {
-               if ((n + 1) >= m || !pvt->serv.s_aliases) {
-                       m += 10;
-                       t = realloc(pvt->serv.s_aliases, m * sizeof(char *));
-                       if (!t) {
-                               errno = ENOMEM;
-                               goto cleanup;
-                       }
-                       pvt->serv.s_aliases = t;
-               }
-               pvt->serv.s_aliases[n++] = p;
-               p += strcspn(p, spaces);
-               if (!*p)
-                       break;
-               *p++ = '\0';
-               p += strspn(p, spaces);
-       }
-       if (!pvt->serv.s_aliases)
-               pvt->serv.s_aliases = malloc(sizeof(char *));
-       if (!pvt->serv.s_aliases)
-               goto cleanup;
-       pvt->serv.s_aliases[n] = NULL;
-       return (&pvt->serv);
-       
- cleanup:
-       if (pvt->serv.s_aliases) {
-               free(pvt->serv.s_aliases);
-               pvt->serv.s_aliases = NULL;
-       }
-       if (pvt->svbuf) {
-               free(pvt->svbuf);
-               pvt->svbuf = NULL;
-       }
-       return (NULL);
-}
-
-static void
-nisfree(struct pvt *pvt, enum do_what do_what) {
-       if ((do_what & do_key) && pvt->curkey_data) {
-               free(pvt->curkey_data);
-               pvt->curkey_data = NULL;
-       }
-       if ((do_what & do_val) && pvt->curval_data) {
-               free(pvt->curval_data);
-               pvt->curval_data = NULL;
-       }
-}
-
-#endif /*WANT_IRS_NIS*/
-
-/*! \file */
diff --git a/lib/bind/irs/nul_ng.c b/lib/bind/irs/nul_ng.c
deleted file mode 100644 (file)
index e5811b5..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: nul_ng.c,v 1.3 2005/04/27 04:56:34 sra Exp $";
-#endif
-
-/*! \file
- * \brief
- * nul_ng.c - the netgroup accessor null map
- */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <irs.h>
-#include <isc/memcluster.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-#include "hesiod.h"
-#include "dns_p.h"
-
-/* Forward. */
-
-static void            ng_close(struct irs_ng *);
-static int             ng_next(struct irs_ng *, const char **,
-                               const char **, const char **);
-static int             ng_test(struct irs_ng *,
-                               const char *, const char *,
-                               const char *, const char *);
-static void            ng_rewind(struct irs_ng *, const char *);
-static void            ng_minimize(struct irs_ng *);
-
-/* Public. */
-
-struct irs_ng *
-irs_nul_ng(struct irs_acc *this) {
-       struct irs_ng *ng;
-
-       UNUSED(this);
-
-       if (!(ng = memget(sizeof *ng))) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       memset(ng, 0x5e, sizeof *ng);
-       ng->private = NULL;
-       ng->close = ng_close;
-       ng->next = ng_next;
-       ng->test = ng_test;
-       ng->rewind = ng_rewind;
-       ng->minimize = ng_minimize;
-       return (ng);
-}
-
-/* Methods. */
-
-static void
-ng_close(struct irs_ng *this) {
-       memput(this, sizeof *this);
-}
-
-/* ARGSUSED */
-static int
-ng_next(struct irs_ng *this, const char **host, const char **user,
-       const char **domain)
-{
-       UNUSED(this);
-       UNUSED(host);
-       UNUSED(user);
-       UNUSED(domain);
-       errno = ENOENT;
-       return (-1);
-}
-
-static int
-ng_test(struct irs_ng *this, const char *name,
-       const char *user, const char *host, const char *domain)
-{
-       UNUSED(this);
-       UNUSED(name);
-       UNUSED(user);
-       UNUSED(host);
-       UNUSED(domain);
-       errno = ENODEV;
-       return (-1);
-}
-
-static void
-ng_rewind(struct irs_ng *this, const char *netgroup) {
-       UNUSED(this);
-       UNUSED(netgroup);
-       /* NOOP */
-}
-
-static void
-ng_minimize(struct irs_ng *this) {
-       UNUSED(this);
-       /* NOOP */
-}
diff --git a/lib/bind/irs/pathnames.h b/lib/bind/irs/pathnames.h
deleted file mode 100644 (file)
index 1646842..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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: pathnames.h,v 1.3 2005/04/27 04:56:34 sra Exp $
- */
-
-#ifndef _PATH_IRS_CONF
-#define        _PATH_IRS_CONF "/etc/irs.conf"
-#endif
-
-#ifndef _PATH_NETWORKS 
-#define _PATH_NETWORKS  "/etc/networks"
-#endif
-
-#ifndef _PATH_GROUP
-#define _PATH_GROUP "/etc/group"
-#endif
-
-#ifndef _PATH_NETGROUP
-#define _PATH_NETGROUP "/etc/netgroup"
-#endif
-
-#ifndef _PATH_SERVICES 
-#define _PATH_SERVICES "/etc/services"
-#endif
-
-#ifdef IRS_LCL_SV_DB
-#ifndef _PATH_SERVICES_DB
-#define        _PATH_SERVICES_DB _PATH_SERVICES ".db"
-#endif
-#endif
-
-#ifndef _PATH_HESIOD_CONF
-#define _PATH_HESIOD_CONF "/etc/hesiod.conf"
-#endif
-
-/*! \file */
diff --git a/lib/bind/irs/util.c b/lib/bind/irs/util.c
deleted file mode 100644 (file)
index 794c10b..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: util.c,v 1.3 2005/04/27 04:56:34 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <irs.h>
-
-#include "port_after.h"
-
-#include "irs_p.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
-void
-map_v4v6_address(const char *src, char *dst) {
-       u_char *p = (u_char *)dst;
-       char tmp[NS_INADDRSZ];
-       int i;
-
-       /* Stash a temporary copy so our caller can update in place. */
-       memcpy(tmp, src, NS_INADDRSZ);
-       /* Mark this ipv6 addr as a mapped ipv4. */
-       for (i = 0; i < 10; i++)
-               *p++ = 0x00;
-       *p++ = 0xff;
-       *p++ = 0xff;
-       /* Retrieve the saved copy and we're done. */
-       memcpy((void*)p, tmp, NS_INADDRSZ);
-}
-
-int
-make_group_list(struct irs_gr *this, const char *name,
-       gid_t basegid, gid_t *groups, int *ngroups)
-{
-       struct group *grp;
-       int i, ng;
-       int ret, maxgroups;
-
-       ret = -1;
-       ng = 0;
-       maxgroups = *ngroups;
-       /*
-        * When installing primary group, duplicate it;
-        * the first element of groups is the effective gid
-        * and will be overwritten when a setgid file is executed.
-        */
-       if (ng >= maxgroups)
-               goto done;
-       groups[ng++] = basegid;
-       if (ng >= maxgroups)
-               goto done;
-       groups[ng++] = basegid;
-       /*
-        * Scan the group file to find additional groups.
-        */
-       (*this->rewind)(this);
-       while ((grp = (*this->next)(this)) != NULL) {
-               if ((gid_t)grp->gr_gid == basegid)
-                       continue;
-               for (i = 0; grp->gr_mem[i]; i++) {
-                       if (!strcmp(grp->gr_mem[i], name)) {
-                               if (ng >= maxgroups)
-                                       goto done;
-                               groups[ng++] = grp->gr_gid;
-                               break;
-                       }
-               }
-       }
-       ret = 0;
- done:
-       *ngroups = ng;
-       return (ret);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/.cvsignore b/lib/bind/isc/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/isc/Makefile.in b/lib/bind/isc/Makefile.in
deleted file mode 100644 (file)
index 17d8c8e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.11 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-OBJS=  assertions.@O@ base64.@O@ bitncmp.@O@ ctl_clnt.@O@ ctl_p.@O@ \
-       ctl_srvr.@O@ ev_connects.@O@ ev_files.@O@ ev_streams.@O@ \
-       ev_timers.@O@ ev_waits.@O@ eventlib.@O@ heap.@O@ hex.@O@ \
-       logging.@O@ memcluster.@O@ movefile.@O@ tree.@O@
-
-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
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/isc/assertions.c b/lib/bind/isc/assertions.c
deleted file mode 100644 (file)
index 393c97f..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: assertions.c,v 1.3 2005/04/27 04:56:34 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/assertions.h>
-
-#include "port_after.h"
-
-/*
- * Forward.
- */
-
-static void default_assertion_failed(const char *, int, assertion_type,
-                                    const char *, int);
-
-/*
- * Public.
- */
-
-assertion_failure_callback __assertion_failed = default_assertion_failed;
-
-void
-set_assertion_failure_callback(assertion_failure_callback f) {
-       if (f == NULL)
-               __assertion_failed = default_assertion_failed;
-       else
-               __assertion_failed = f;
-}
-
-const char *
-assertion_type_to_text(assertion_type type) {
-       const char *result;
-
-       switch (type) {
-       case assert_require:
-               result = "REQUIRE";
-               break;
-       case assert_ensure:
-               result = "ENSURE";
-               break;
-       case assert_insist:
-               result = "INSIST";
-               break;
-       case assert_invariant:
-               result = "INVARIANT";
-               break;
-       default:
-               result = NULL;
-       }
-       return (result);
-}
-
-/*
- * Private.
- */
-
-static void
-default_assertion_failed(const char *file, int line, assertion_type type,
-                        const char *cond, int print_errno)
-{
-       fprintf(stderr, "%s:%d: %s(%s)%s%s failed.\n",
-               file, line, assertion_type_to_text(type), cond,
-               (print_errno) ? ": " : "",
-               (print_errno) ? strerror(errno) : "");
-       abort();
-       /* NOTREACHED */
-}
-
-/*! \file */
diff --git a/lib/bind/isc/assertions.mdoc b/lib/bind/isc/assertions.mdoc
deleted file mode 100644 (file)
index 4b77e56..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-.\" $Id: assertions.mdoc,v 1.3 2004/03/09 06:30:06 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.Dd November 17, 1997
-.Dt ASSERTIONS 3
-.Os ISC
-.Sh NAME
-.Nm REQUIRE ,
-.Nm REQUIRE_ERR ,
-.Nm ENSURE ,
-.Nm ENSURE_ERR ,
-.Nm INSIST ,
-.Nm INSIST_ERR ,
-.Nm INVARIANT ,
-.Nm INVARIANT_ERR ,
-.Nm set_assertion_failure_callback
-.Nd assertion system
-.Sh SYNOPSIS
-.Fd #include <isc/assertions.h>
-.Fo "typedef void (*assertion_failure_callback)"
-.Fa "char *filename"
-.Fa "int line"
-.Fa "assertion_type type"
-.Fa "char *condition"
-.Fa "int print_errno"
-.Fc
-.Fn REQUIRE "int boolean_expression"
-.Fn REQUIRE_ERR "int boolean_expression"
-.Fn ENSURE "int boolean_expression"
-.Fn ENSURE_ERR "int boolean_expression"
-.Fn INSIST "int boolean_expression"
-.Fn INSIST_ERR "int boolean_expression"
-.Fn INVARIANT "int boolean_expression"
-.Fn INVARIANT_ERR "int boolean_expression"
-.Ft void
-.Fn set_assertion_failure_callback "assertion_failure_callback callback"
-.Ft char *
-.Fn assertion_type_to_text "assertion_type type"
-.Sh DESCRIPTION
-The
-.Fn REQUIRE ,
-.Fn ENSURE ,
-.Fn INSIST ,
-and
-.Fn INVARIANT
-macros evaluate a boolean expression, and if it is false, they invoke the
-current assertion failure callback.  The default callback will print a message
-to 
-.Li stderr
-describing the failure, and then cause the program to dump core.
-If the
-.Dq Fn _ERR
-variant of the assertion is used, the callback will include
-.Fn strerror "errno"
-in its message.
-.Pp
-Each assertion type has an associated
-.Li CHECK
-macro.  If this macro's value is
-.Dq 0
-when
-.Dq "<isc/assertions.h>"
-is included, then assertions of that type will not be checked.  E.g.
-.Pp
-.Dl #define CHECK_ENSURE 0
-.Pp
-will disable checking of
-.Fn ENSURE
-and
-.Fn ENSURE_ERR .
-The macros
-.Li CHECK_ALL
-and
-.Li CHECK_NONE
-may also be used, respectively specifying that either all or none of the
-assertion types should be checked.
-.Pp
-.Fn set_assertion_failure_callback
-specifies the function to call when an assertion fails.
-.Pp
-When an
-.Fn assertion_failure_callback
-is called, the 
-.Fa filename
-and
-.Fa line
-arguments specify the filename and line number of the failing assertion.
-The
-.Fa type
-is one of:
-.Bd -literal -offset indent
-assert_require
-assert_ensure
-assert_insist
-assert_invariant
-.Ed
-.Pp
-and may be used by the callback to determine the type of the failing
-assertion.
-.Fa condition
-is the literal text of the assertion that failed. 
-.Fa print_errno
-will be non-zero if the callback should print
-.Fa strerror "errno"
-as part of its output.
-.Pp
-.Fn assertion_type_to_text
-returns a textual representation of
-.Fa type .
-For example,
-.Fn assertion_type_to_text "assert_require"
-returns the string
-.Dq REQUIRE .
-.Sh SEE ALSO
-.Rs
-.%A Bertrand Meyer
-.%B Object-Oriented Software Construction, 2nd edition
-.%Q Prentice\-Hall
-.%D 1997
-.%O ISBN 0\-13\-629155\-4
-.%P chapter 11
-.Re
-.Sh AUTHOR
-Bob Halley (ISC).
diff --git a/lib/bind/isc/base64.c b/lib/bind/isc/base64.c
deleted file mode 100644 (file)
index 60b20bc..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: base64.c,v 1.4 2005/04/27 04:56:34 sra Exp $";
-#endif /* not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-   The following encoding technique is taken from RFC1521 by Borenstein
-   and Freed.  It is reproduced here in a slightly edited form for
-   convenience.
-
-   A 65-character subset of US-ASCII is used, enabling 6 bits to be
-   represented per printable character. (The extra 65th character, "=",
-   is used to signify a special processing function.)
-
-   The encoding process represents 24-bit groups of input bits as output
-   strings of 4 encoded characters. Proceeding from left to right, a
-   24-bit input group is formed by concatenating 3 8-bit input groups.
-   These 24 bits are then treated as 4 concatenated 6-bit groups, each
-   of which is translated into a single digit in the base64 alphabet.
-
-   Each 6-bit group is used as an index into an array of 64 printable
-   characters. The character referenced by the index is placed in the
-   output string.
-
-                         Table 1: The Base64 Alphabet
-
-      Value Encoding  Value Encoding  Value Encoding  Value Encoding
-          0 A            17 R            34 i            51 z
-          1 B            18 S            35 j            52 0
-          2 C            19 T            36 k            53 1
-          3 D            20 U            37 l            54 2
-          4 E            21 V            38 m            55 3
-          5 F            22 W            39 n            56 4
-          6 G            23 X            40 o            57 5
-          7 H            24 Y            41 p            58 6
-          8 I            25 Z            42 q            59 7
-          9 J            26 a            43 r            60 8
-         10 K            27 b            44 s            61 9
-         11 L            28 c            45 t            62 +
-         12 M            29 d            46 u            63 /
-         13 N            30 e            47 v
-         14 O            31 f            48 w         (pad) =
-         15 P            32 g            49 x
-         16 Q            33 h            50 y
-
-   Special processing is performed if fewer than 24 bits are available
-   at the end of the data being encoded.  A full encoding quantum is
-   always completed at the end of a quantity.  When fewer than 24 input
-   bits are available in an input group, zero bits are added (on the
-   right) to form an integral number of 6-bit groups.  Padding at the
-   end of the data is performed using the '=' character.
-
-   Since all base64 input is an integral number of octets, only the
-         -------------------------------------------------                       
-   following cases can arise:
-   
-       (1) the final quantum of encoding input is an integral
-           multiple of 24 bits; here, the final unit of encoded
-          output will be an integral multiple of 4 characters
-          with no "=" padding,
-       (2) the final quantum of encoding input is exactly 8 bits;
-           here, the final unit of encoded output will be two
-          characters followed by two "=" padding characters, or
-       (3) the final quantum of encoding input is exactly 16 bits;
-           here, the final unit of encoded output will be three
-          characters followed by one "=" padding character.
-   */
-
-int
-b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) {
-       size_t datalength = 0;
-       u_char input[3];
-       u_char output[4];
-       size_t i;
-
-       while (2U < srclength) {
-               input[0] = *src++;
-               input[1] = *src++;
-               input[2] = *src++;
-               srclength -= 3;
-
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               output[3] = input[2] & 0x3f;
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-               Assert(output[3] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               target[datalength++] = Base64[output[2]];
-               target[datalength++] = Base64[output[3]];
-       }
-    
-       /* Now we worry about padding. */
-       if (0U != srclength) {
-               /* Get what's left. */
-               input[0] = input[1] = input[2] = '\0';
-               for (i = 0; i < srclength; i++)
-                       input[i] = *src++;
-       
-               output[0] = input[0] >> 2;
-               output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-               output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-               Assert(output[0] < 64);
-               Assert(output[1] < 64);
-               Assert(output[2] < 64);
-
-               if (datalength + 4 > targsize)
-                       return (-1);
-               target[datalength++] = Base64[output[0]];
-               target[datalength++] = Base64[output[1]];
-               if (srclength == 1U)
-                       target[datalength++] = Pad64;
-               else
-                       target[datalength++] = Base64[output[2]];
-               target[datalength++] = Pad64;
-       }
-       if (datalength >= targsize)
-               return (-1);
-       target[datalength] = '\0';      /*%< Returned value doesn't count \\0. */
-       return (datalength);
-}
-
-/* skips all whitespace anywhere.
-   converts characters, four at a time, starting at (or after)
-   src from base - 64 numbers into three 8 bit bytes in the target area.
-   it returns the number of data bytes stored at the target, or -1 on error.
- */
-
-int
-b64_pton(src, target, targsize)
-       char const *src;
-       u_char *target;
-       size_t targsize;
-{
-       int tarindex, state, ch;
-       char *pos;
-
-       state = 0;
-       tarindex = 0;
-
-       while ((ch = *src++) != '\0') {
-               if (isspace(ch))        /*%< Skip whitespace anywhere. */
-                       continue;
-
-               if (ch == Pad64)
-                       break;
-
-               pos = strchr(Base64, ch);
-               if (pos == 0)           /*%< A non-base64 character. */
-                       return (-1);
-
-               switch (state) {
-               case 0:
-                       if (target) {
-                               if ((size_t)tarindex >= targsize)
-                                       return (-1);
-                               target[tarindex] = (pos - Base64) << 2;
-                       }
-                       state = 1;
-                       break;
-               case 1:
-                       if (target) {
-                               if ((size_t)tarindex + 1 >= targsize)
-                                       return (-1);
-                               target[tarindex]   |=  (pos - Base64) >> 4;
-                               target[tarindex+1]  = ((pos - Base64) & 0x0f)
-                                                       << 4 ;
-                       }
-                       tarindex++;
-                       state = 2;
-                       break;
-               case 2:
-                       if (target) {
-                               if ((size_t)tarindex + 1 >= targsize)
-                                       return (-1);
-                               target[tarindex]   |=  (pos - Base64) >> 2;
-                               target[tarindex+1]  = ((pos - Base64) & 0x03)
-                                                       << 6;
-                       }
-                       tarindex++;
-                       state = 3;
-                       break;
-               case 3:
-                       if (target) {
-                               if ((size_t)tarindex >= targsize)
-                                       return (-1);
-                               target[tarindex] |= (pos - Base64);
-                       }
-                       tarindex++;
-                       state = 0;
-                       break;
-               default:
-                       abort();
-               }
-       }
-
-       /*
-        * We are done decoding Base-64 chars.  Let's see if we ended
-        * on a byte boundary, and/or with erroneous trailing characters.
-        */
-
-       if (ch == Pad64) {              /*%< We got a pad char. */
-               ch = *src++;            /*%< Skip it, get next. */
-               switch (state) {
-               case 0:         /*%< Invalid = in first position */
-               case 1:         /*%< Invalid = in second position */
-                       return (-1);
-
-               case 2:         /*%< Valid, means one byte of info */
-                       /* Skip any number of spaces. */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (!isspace(ch))
-                                       break;
-                       /* Make sure there is another trailing = sign. */
-                       if (ch != Pad64)
-                               return (-1);
-                       ch = *src++;            /*%< Skip the = */
-                       /* Fall through to "single trailing =" case. */
-                       /* FALLTHROUGH */
-
-               case 3:         /*%< Valid, means two bytes of info */
-                       /*
-                        * We know this char is an =.  Is there anything but
-                        * whitespace after it?
-                        */
-                       for ((void)NULL; ch != '\0'; ch = *src++)
-                               if (!isspace(ch))
-                                       return (-1);
-
-                       /*
-                        * Now make sure for cases 2 and 3 that the "extra"
-                        * bits that slopped past the last full byte were
-                        * zeros.  If we don't check them, they become a
-                        * subliminal channel.
-                        */
-                       if (target && target[tarindex] != 0)
-                               return (-1);
-               }
-       } else {
-               /*
-                * We ended by seeing the end of the string.  Make sure we
-                * have no partial bytes lying around.
-                */
-               if (state != 0)
-                       return (-1);
-       }
-
-       return (tarindex);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/bitncmp.c b/lib/bind/isc/bitncmp.c
deleted file mode 100644 (file)
index 06d3188..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: bitncmp.c,v 1.4 2008/05/12 00:17:27 marka Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <string.h>
-
-#include "port_after.h"
-
-#include <isc/misc.h>
-
-/*%
- * int
- * bitncmp(l, r, n)
- *     compare bit masks l and r, for n bits.
- * return:
- *     -1, 1, or 0 in the libc tradition.
- * note:
- *     network byte order assumed.  this means 192.5.5.240/28 has
- *     0x11110000 in its fourth octet.
- * author:
- *     Paul Vixie (ISC), June 1996
- */
-int
-bitncmp(const void *l, const void *r, int n) {
-       u_int lb, rb;
-       int x, b;
-
-       b = n / 8;
-       x = memcmp(l, r, b);
-       if (x || (n % 8) == 0)
-               return (x);
-
-       lb = ((const u_char *)l)[b];
-       rb = ((const u_char *)r)[b];
-       for (b = n % 8; b > 0; b--) {
-               if ((lb & 0x80) != (rb & 0x80)) {
-                       if (lb & 0x80)
-                               return (1);
-                       return (-1);
-               }
-               lb <<= 1;
-               rb <<= 1;
-       }
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/bitncmp.mdoc b/lib/bind/isc/bitncmp.mdoc
deleted file mode 100644 (file)
index 7d4646c..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-.\" $Id: bitncmp.mdoc,v 1.3 2004/03/09 06:30:07 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.Dd June 1, 1996
-.Dt BITNCMP 3
-.Os BSD 4
-.Sh NAME
-.Nm bitncmp 
-.Nd compare bit masks
-.Sh SYNOPSIS
-.Ft int
-.Fn bitncmp "const void *l" "const void *r" "int n"
-.Sh DESCRIPTION
-The function
-.Fn bitncmp
-compares the
-.Dq Fa n
-most-significant bits of the two masks pointed to by
-.Dq Fa l
-and
-.Dq Fa r ,
-and returns an integer less than, equal to, or greater than 0, according to
-whether or not
-.Dq Fa l
-is lexicographically less than, equal to, or greater than
-.Dq Fa r
-when taken to be unsigned characters (this behaviour is just like that of
-.Xr memcmp 3 ) .
-.Pp
-.Sy NOTE :
-.Fn Bitncmp 
-assumes 
-.Sy network byte order ;
-this means that the fourth octet of 
-.Li 192.5.5.240/28 
-.Li 0x11110000 .
-.Sh RETURN VALUES
-.Fn Bitncmp
-returns values in the manner of
-.Xr memcmp 3 :
-.Bd -ragged -offset indent
-+1 if 
-.Dq Fa 1
-is greater than 
-.Dq Fa r ;
-.Pp
--1 if 
-.Dq Fa l
-is less than 
-.Dq Fa r ; 
-and
-.Pp
-0 if 
-.Dq Fa l
-is equal to
-.Dq Fa r ,
-.Ed
-.Pp
-where 
-.Dq Fa l
-and 
-.Dq Fa r
-are both interpreted as strings of unsigned characters (through bit 
-.Dq Fa n . )
-.Sh SEE ALSO
-.Xr memcmp 3 .
-.Sh AUTHOR
-Paul Vixie (ISC). 
diff --git a/lib/bind/isc/ctl_clnt.c b/lib/bind/isc/ctl_clnt.c
deleted file mode 100644 (file)
index cfaec1c..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: ctl_clnt.c,v 1.10 2008/02/18 03:49:08 marka Exp $";
-#endif /* not lint */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* Extern. */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#ifdef HAVE_MEMORY_H
-#include <memory.h>
-#endif
-
-#include <isc/assertions.h>
-#include <isc/ctl.h>
-#include <isc/eventlib.h>
-#include <isc/list.h>
-#include <isc/memcluster.h>
-
-#include "ctl_p.h"
-
-#include "port_after.h"
-
-/* Constants. */
-
-
-/* Macros. */
-
-#define donefunc_p(ctx) ((ctx).donefunc != NULL)
-#define arpacode_p(line) (isdigit((unsigned char)(line[0])) && \
-                         isdigit((unsigned char)(line[1])) && \
-                         isdigit((unsigned char)(line[2])))
-#define arpacont_p(line) (line[3] == '-')
-#define arpadone_p(line) (line[3] == ' ' || line[3] == '\t' || \
-                         line[3] == '\r' || line[3] == '\0')
-
-/* Types. */
-
-enum state {
-       initializing = 0, connecting, connected, destroyed
-};
-
-struct ctl_tran {
-       LINK(struct ctl_tran)   link;
-       LINK(struct ctl_tran)   wlink;
-       struct ctl_cctx *       ctx;
-       struct ctl_buf          outbuf;
-       ctl_clntdone            donefunc;
-       void *                  uap;
-};
-
-struct ctl_cctx {
-       enum state              state;
-       evContext               ev;
-       int                     sock;
-       ctl_logfunc             logger;
-       ctl_clntdone            donefunc;
-       void *                  uap;
-       evConnID                coID;
-       evTimerID               tiID;
-       evFileID                rdID;
-       evStreamID              wrID;
-       struct ctl_buf          inbuf;
-       struct timespec         timeout;
-       LIST(struct ctl_tran)   tran;
-       LIST(struct ctl_tran)   wtran;
-};
-
-/* Forward. */
-
-static struct ctl_tran *new_tran(struct ctl_cctx *, ctl_clntdone, void *, int);
-static void            start_write(struct ctl_cctx *);
-static void            destroy(struct ctl_cctx *, int);
-static void            error(struct ctl_cctx *);
-static void            new_state(struct ctl_cctx *, enum state);
-static void            conn_done(evContext, void *, int,
-                                 const void *, int,
-                                 const void *, int);
-static void            write_done(evContext, void *, int, int);
-static void            start_read(struct ctl_cctx *);
-static void            stop_read(struct ctl_cctx *);
-static void            readable(evContext, void *, int, int);
-static void            start_timer(struct ctl_cctx *);
-static void            stop_timer(struct ctl_cctx *);
-static void            touch_timer(struct ctl_cctx *);
-static void            timer(evContext, void *,
-                             struct timespec, struct timespec);
-
-#ifndef HAVE_MEMCHR
-static void *
-memchr(const void *b, int c, size_t len) {
-       const unsigned char *p = b;
-       size_t i;
-
-       for (i = 0; i < len; i++, p++)
-               if (*p == (unsigned char)c)
-                       return ((void *)p); 
-       return (NULL);
-}
-#endif
-
-/* Private data. */
-
-static const char * const state_names[] = {
-       "initializing", "connecting", "connected", "destroyed"
-};
-
-/* Public. */
-
-/*%
- * void
- * ctl_client()
- *     create, condition, and connect to a listener on the control port.
- */
-struct ctl_cctx *
-ctl_client(evContext lev, const struct sockaddr *cap, size_t cap_len,
-          const struct sockaddr *sap, size_t sap_len,
-          ctl_clntdone donefunc, void *uap,
-          u_int timeout, ctl_logfunc logger)
-{
-       static const char me[] = "ctl_client";
-       static const int on = 1;
-       struct ctl_cctx *ctx;
-       struct sockaddr *captmp;
-
-       if (logger == NULL)
-               logger = ctl_logger;
-       ctx = memget(sizeof *ctx);
-       if (ctx == NULL) {
-               (*logger)(ctl_error, "%s: getmem: %s", me, strerror(errno));
-               goto fatal;
-       }
-       ctx->state = initializing;
-       ctx->ev = lev;
-       ctx->logger = logger;
-       ctx->timeout = evConsTime(timeout, 0);
-       ctx->donefunc = donefunc;
-       ctx->uap = uap;
-       ctx->coID.opaque = NULL;
-       ctx->tiID.opaque = NULL;
-       ctx->rdID.opaque = NULL;
-       ctx->wrID.opaque = NULL;
-       buffer_init(ctx->inbuf);
-       INIT_LIST(ctx->tran);
-       INIT_LIST(ctx->wtran);
-       ctx->sock = socket(sap->sa_family, SOCK_STREAM, PF_UNSPEC);
-       if (ctx->sock > evHighestFD(ctx->ev)) {
-               ctx->sock = -1;
-               errno = ENOTSOCK;
-       }
-       if (ctx->sock < 0) {
-               (*ctx->logger)(ctl_error, "%s: socket: %s",
-                              me, strerror(errno));
-               goto fatal;
-       }
-       if (cap != NULL) {
-               if (setsockopt(ctx->sock, SOL_SOCKET, SO_REUSEADDR,
-                              (const char *)&on, sizeof on) != 0) {
-                       (*ctx->logger)(ctl_warning,
-                                      "%s: setsockopt(REUSEADDR): %s",
-                                      me, strerror(errno));
-               }
-               DE_CONST(cap, captmp);
-               if (bind(ctx->sock, captmp, cap_len) < 0) {
-                       (*ctx->logger)(ctl_error, "%s: bind: %s", me,
-                                      strerror(errno));
-                       goto fatal;
-               }
-       }
-       if (evConnect(lev, ctx->sock, (const struct sockaddr *)sap, sap_len,
-                     conn_done, ctx, &ctx->coID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: evConnect(fd %d): %s",
-                              me, ctx->sock, strerror(errno));
- fatal:
-               if (ctx != NULL) {
-                       if (ctx->sock >= 0)
-                               close(ctx->sock);
-                       memput(ctx, sizeof *ctx);
-               }
-               return (NULL);
-       }
-       new_state(ctx, connecting);
-       return (ctx);
-}
-
-/*%
- * void
- * ctl_endclient(ctx)
- *     close a client and release all of its resources.
- */
-void
-ctl_endclient(struct ctl_cctx *ctx) {
-       if (ctx->state != destroyed)
-               destroy(ctx, 0);
-       memput(ctx, sizeof *ctx);
-}
-
-/*%
- * int
- * ctl_command(ctx, cmd, len, donefunc, uap)
- *     Queue a transaction, which will begin with sending cmd
- *     and complete by calling donefunc with the answer.
- */
-int
-ctl_command(struct ctl_cctx *ctx, const char *cmd, size_t len,
-           ctl_clntdone donefunc, void *uap)
-{
-       struct ctl_tran *tran;
-       char *pc;
-       unsigned int n;
-
-       switch (ctx->state) {
-       case destroyed:
-               errno = ENOTCONN;
-               return (-1);
-       case connecting:
-       case connected:
-               break;
-       default:
-               abort();
-       }
-       if (len >= (size_t)MAX_LINELEN) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       tran = new_tran(ctx, donefunc, uap, 1);
-       if (tran == NULL)
-               return (-1);
-       if (ctl_bufget(&tran->outbuf, ctx->logger) < 0)
-               return (-1);
-       memcpy(tran->outbuf.text, cmd, len);
-       tran->outbuf.used = len;
-       for (pc = tran->outbuf.text, n = 0; n < tran->outbuf.used; pc++, n++)
-               if (!isascii((unsigned char)*pc) ||
-                   !isprint((unsigned char)*pc))
-                       *pc = '\040';
-       start_write(ctx);
-       return (0);
-}
-
-/* Private. */
-
-static struct ctl_tran *
-new_tran(struct ctl_cctx *ctx, ctl_clntdone donefunc, void *uap, int w) {
-       struct ctl_tran *new = memget(sizeof *new);
-
-       if (new == NULL)
-               return (NULL);
-       new->ctx = ctx;
-       buffer_init(new->outbuf);
-       new->donefunc = donefunc;
-       new->uap = uap;
-       INIT_LINK(new, link);
-       INIT_LINK(new, wlink);
-       APPEND(ctx->tran, new, link);
-       if (w)
-               APPEND(ctx->wtran, new, wlink);
-       return (new);
-}
-
-static void
-start_write(struct ctl_cctx *ctx) {
-       static const char me[] = "isc/ctl_clnt::start_write";
-       struct ctl_tran *tran;
-       struct iovec iov[2], *iovp = iov;
-       char * tmp;
-
-       REQUIRE(ctx->state == connecting || ctx->state == connected);
-       /* If there is a write in progress, don't try to write more yet. */
-       if (ctx->wrID.opaque != NULL)
-               return;
-       /* If there are no trans, make sure timer is off, and we're done. */
-       if (EMPTY(ctx->wtran)) {
-               if (ctx->tiID.opaque != NULL)
-                       stop_timer(ctx);
-               return;
-       }
-       /* Pull it off the head of the write queue. */
-       tran = HEAD(ctx->wtran);
-       UNLINK(ctx->wtran, tran, wlink);
-       /* Since there are some trans, make sure timer is successfully "on". */
-       if (ctx->tiID.opaque != NULL)
-               touch_timer(ctx);
-       else
-               start_timer(ctx);
-       if (ctx->state == destroyed)
-               return;
-       /* Marshall a newline-terminated message and clock it out. */
-       *iovp++ = evConsIovec(tran->outbuf.text, tran->outbuf.used);
-       DE_CONST("\r\n", tmp);
-       *iovp++ = evConsIovec(tmp, 2);
-       if (evWrite(ctx->ev, ctx->sock, iov, iovp - iov,
-                   write_done, tran, &ctx->wrID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: evWrite: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-       if (evTimeRW(ctx->ev, ctx->wrID, ctx->tiID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: evTimeRW: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-}
-
-static void
-destroy(struct ctl_cctx *ctx, int notify) {
-       struct ctl_tran *this, *next;
-
-       if (ctx->sock != -1) {
-               (void) close(ctx->sock);
-               ctx->sock = -1;
-       }
-       switch (ctx->state) {
-       case connecting:
-               REQUIRE(ctx->wrID.opaque == NULL);
-               REQUIRE(EMPTY(ctx->tran));
-               /*
-                * This test is nec'y since destroy() can be called from
-                * start_read() while the state is still "connecting".
-                */
-               if (ctx->coID.opaque != NULL) {
-                       (void)evCancelConn(ctx->ev, ctx->coID);
-                       ctx->coID.opaque = NULL;
-               }
-               break;
-       case connected:
-               REQUIRE(ctx->coID.opaque == NULL);
-               if (ctx->wrID.opaque != NULL) {
-                       (void)evCancelRW(ctx->ev, ctx->wrID);
-                       ctx->wrID.opaque = NULL;
-               }
-               if (ctx->rdID.opaque != NULL)
-                       stop_read(ctx);
-               break;
-       case destroyed:
-               break;
-       default:
-               abort();
-       }
-       if (allocated_p(ctx->inbuf))
-               ctl_bufput(&ctx->inbuf);
-       for (this = HEAD(ctx->tran); this != NULL; this = next) {
-               next = NEXT(this, link);
-               if (allocated_p(this->outbuf))
-                       ctl_bufput(&this->outbuf);
-               if (notify && this->donefunc != NULL)
-                       (*this->donefunc)(ctx, this->uap, NULL, 0);
-               memput(this, sizeof *this);
-       }
-       if (ctx->tiID.opaque != NULL)
-               stop_timer(ctx);
-       new_state(ctx, destroyed);
-}
-
-static void
-error(struct ctl_cctx *ctx) {
-       REQUIRE(ctx->state != destroyed);
-       destroy(ctx, 1);
-}
-
-static void
-new_state(struct ctl_cctx *ctx, enum state new_state) {
-       static const char me[] = "isc/ctl_clnt::new_state";
-
-       (*ctx->logger)(ctl_debug, "%s: %s -> %s", me,
-                      state_names[ctx->state], state_names[new_state]);
-       ctx->state = new_state;
-}
-
-static void
-conn_done(evContext ev, void *uap, int fd,
-         const void *la, int lalen,
-         const void *ra, int ralen)
-{
-       static const char me[] = "isc/ctl_clnt::conn_done";
-       struct ctl_cctx *ctx = uap;
-       struct ctl_tran *tran;
-
-       UNUSED(ev);
-       UNUSED(la);
-       UNUSED(lalen);
-       UNUSED(ra);
-       UNUSED(ralen);
-
-       ctx->coID.opaque = NULL;
-       if (fd < 0) {
-               (*ctx->logger)(ctl_error, "%s: evConnect: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-       new_state(ctx, connected);
-       tran = new_tran(ctx, ctx->donefunc, ctx->uap, 0);
-       if (tran == NULL) {
-               (*ctx->logger)(ctl_error, "%s: new_tran failed: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-       start_read(ctx);
-       if (ctx->state == destroyed) {
-               (*ctx->logger)(ctl_error, "%s: start_read failed: %s",
-                              me, strerror(errno));
-               error(ctx);
-               return;
-       }
-}
-
-static void
-write_done(evContext lev, void *uap, int fd, int bytes) {
-       struct ctl_tran *tran = (struct ctl_tran *)uap;
-       struct ctl_cctx *ctx = tran->ctx;
-
-       UNUSED(lev);
-       UNUSED(fd);
-
-       ctx->wrID.opaque = NULL;
-       if (ctx->tiID.opaque != NULL)
-               touch_timer(ctx);
-       ctl_bufput(&tran->outbuf);
-       start_write(ctx);
-       if (bytes < 0)
-               destroy(ctx, 1);
-       else
-               start_read(ctx);
-}
-
-static void
-start_read(struct ctl_cctx *ctx) {
-       static const char me[] = "isc/ctl_clnt::start_read";
-
-       REQUIRE(ctx->state == connecting || ctx->state == connected);
-       REQUIRE(ctx->rdID.opaque == NULL);
-       if (evSelectFD(ctx->ev, ctx->sock, EV_READ, readable, ctx,
-                      &ctx->rdID) < 0)
-       {
-               (*ctx->logger)(ctl_error, "%s: evSelect(fd %d): %s", me,
-                              ctx->sock, strerror(errno));
-               error(ctx);
-               return;
-       }
-}
-
-static void
-stop_read(struct ctl_cctx *ctx) {
-       REQUIRE(ctx->coID.opaque == NULL);
-       REQUIRE(ctx->rdID.opaque != NULL);
-       (void)evDeselectFD(ctx->ev, ctx->rdID);
-       ctx->rdID.opaque = NULL;
-}
-
-static void
-readable(evContext ev, void *uap, int fd, int evmask) {
-       static const char me[] = "isc/ctl_clnt::readable";
-       struct ctl_cctx *ctx = uap;
-       struct ctl_tran *tran;
-       ssize_t n;
-       char *eos;
-
-       UNUSED(ev);
-
-       REQUIRE(ctx != NULL);
-       REQUIRE(fd >= 0);
-       REQUIRE(evmask == EV_READ);
-       REQUIRE(ctx->state == connected);
-       REQUIRE(!EMPTY(ctx->tran));
-       tran = HEAD(ctx->tran);
-       if (!allocated_p(ctx->inbuf) &&
-           ctl_bufget(&ctx->inbuf, ctx->logger) < 0) {
-               (*ctx->logger)(ctl_error, "%s: can't get an input buffer", me);
-               error(ctx);
-               return;
-       }
-       n = read(ctx->sock, ctx->inbuf.text + ctx->inbuf.used,
-                MAX_LINELEN - ctx->inbuf.used);
-       if (n <= 0) {
-               (*ctx->logger)(ctl_warning, "%s: read: %s", me,
-                              (n == 0) ? "Unexpected EOF" : strerror(errno));
-               error(ctx);
-               return;
-       }
-       if (ctx->tiID.opaque != NULL)
-               touch_timer(ctx);
-       ctx->inbuf.used += n;
-       (*ctx->logger)(ctl_debug, "%s: read %d, used %d", me,
-                      n, ctx->inbuf.used);
- again:
-       eos = memchr(ctx->inbuf.text, '\n', ctx->inbuf.used);
-       if (eos != NULL && eos != ctx->inbuf.text && eos[-1] == '\r') {
-               int done = 0;
-
-               eos[-1] = '\0';
-               if (!arpacode_p(ctx->inbuf.text)) {
-                       /* XXX Doesn't FTP do this sometimes? Is it legal? */
-                       (*ctx->logger)(ctl_error, "%s: no arpa code (%s)", me,
-                                      ctx->inbuf.text);
-                       error(ctx);
-                       return;
-               }
-               if (arpadone_p(ctx->inbuf.text))
-                       done = 1;
-               else if (arpacont_p(ctx->inbuf.text))
-                       done = 0;
-               else {
-                       /* XXX Doesn't FTP do this sometimes? Is it legal? */
-                       (*ctx->logger)(ctl_error, "%s: no arpa flag (%s)", me,
-                                      ctx->inbuf.text);
-                       error(ctx);
-                       return;
-               }
-               (*tran->donefunc)(ctx, tran->uap, ctx->inbuf.text,
-                                 (done ? 0 : CTL_MORE));
-               ctx->inbuf.used -= ((eos - ctx->inbuf.text) + 1);
-               if (ctx->inbuf.used == 0U)
-                       ctl_bufput(&ctx->inbuf);
-               else
-                       memmove(ctx->inbuf.text, eos + 1, ctx->inbuf.used);
-               if (done) {
-                       UNLINK(ctx->tran, tran, link);
-                       memput(tran, sizeof *tran);
-                       stop_read(ctx);
-                       start_write(ctx);
-                       return;
-               }
-               if (allocated_p(ctx->inbuf))
-                       goto again;
-               return;
-       }
-       if (ctx->inbuf.used == (size_t)MAX_LINELEN) {
-               (*ctx->logger)(ctl_error, "%s: line too long (%-10s...)", me,
-                              ctx->inbuf.text);
-               error(ctx);
-       }
-}
-
-/* Timer related stuff. */
-
-static void
-start_timer(struct ctl_cctx *ctx) {
-       static const char me[] = "isc/ctl_clnt::start_timer";
-
-       REQUIRE(ctx->tiID.opaque == NULL);
-       if (evSetIdleTimer(ctx->ev, timer, ctx, ctx->timeout, &ctx->tiID) < 0){
-               (*ctx->logger)(ctl_error, "%s: evSetIdleTimer: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-}
-
-static void
-stop_timer(struct ctl_cctx *ctx) {
-       static const char me[] = "isc/ctl_clnt::stop_timer";
-
-       REQUIRE(ctx->tiID.opaque != NULL);
-       if (evClearIdleTimer(ctx->ev, ctx->tiID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: evClearIdleTimer: %s", me,
-                              strerror(errno));
-               error(ctx);
-               return;
-       }
-       ctx->tiID.opaque = NULL;
-}
-
-static void
-touch_timer(struct ctl_cctx *ctx) {
-       REQUIRE(ctx->tiID.opaque != NULL);
-
-       evTouchIdleTimer(ctx->ev, ctx->tiID);
-}
-
-static void
-timer(evContext ev, void *uap, struct timespec due, struct timespec itv) {
-       static const char me[] = "isc/ctl_clnt::timer";
-       struct ctl_cctx *ctx = uap;
-
-       UNUSED(ev);
-       UNUSED(due);
-       UNUSED(itv);
-
-       ctx->tiID.opaque = NULL;
-       (*ctx->logger)(ctl_error, "%s: timeout after %u seconds while %s", me,
-                      ctx->timeout.tv_sec, state_names[ctx->state]);
-       error(ctx);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ctl_p.c b/lib/bind/isc/ctl_p.c
deleted file mode 100644 (file)
index 7ab719a..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: ctl_p.c,v 1.4 2005/04/27 04:56:35 sra Exp $";
-#endif /* not lint */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* Extern. */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <isc/assertions.h>
-#include <isc/eventlib.h>
-#include <isc/logging.h>
-#include <isc/memcluster.h>
-#include <isc/ctl.h>
-
-#include "ctl_p.h"
-
-#include "port_after.h"
-
-/* Constants. */
-
-const char * const ctl_sevnames[] = {
-       "debug", "warning", "error"
-};
-
-/* Public. */
-
-/*%
- * ctl_logger()
- *     if ctl_startup()'s caller didn't specify a logger, this one
- *     is used.  this pollutes stderr with all kinds of trash so it will
- *     probably never be used in real applications.
- */
-void
-ctl_logger(enum ctl_severity severity, const char *format, ...) {
-       va_list ap;
-       static const char me[] = "ctl_logger";
-
-       fprintf(stderr, "%s(%s): ", me, ctl_sevnames[severity]);
-       va_start(ap, format);
-       vfprintf(stderr, format, ap);
-       va_end(ap);
-       fputc('\n', stderr);
-}
-
-int
-ctl_bufget(struct ctl_buf *buf, ctl_logfunc logger) {
-       static const char me[] = "ctl_bufget";
-
-       REQUIRE(!allocated_p(*buf) && buf->used == 0U);
-       buf->text = memget(MAX_LINELEN);
-       if (!allocated_p(*buf)) {
-               (*logger)(ctl_error, "%s: getmem: %s", me, strerror(errno));
-               return (-1);
-       }
-       buf->used = 0;
-       return (0);
-}
-
-void
-ctl_bufput(struct ctl_buf *buf) {
-
-       REQUIRE(allocated_p(*buf));
-       memput(buf->text, MAX_LINELEN);
-       buf->text = NULL;
-       buf->used = 0;
-}
-
-const char *
-ctl_sa_ntop(const struct sockaddr *sa,
-           char *buf, size_t size,
-           ctl_logfunc logger)
-{
-       static const char me[] = "ctl_sa_ntop";
-       static const char punt[] = "[0].-1";
-       char tmp[INET6_ADDRSTRLEN];
-
-       switch (sa->sa_family) {
-       case AF_INET6: {
-               const struct sockaddr_in6 *in6 =
-                                       (const struct sockaddr_in6 *) sa;
-
-               if (inet_ntop(in6->sin6_family, &in6->sin6_addr, tmp, sizeof tmp)
-                   == NULL) {
-                       (*logger)(ctl_error, "%s: inet_ntop(%u %04x): %s",
-                                 me, in6->sin6_family,
-                                 in6->sin6_port, strerror(errno));
-                       return (punt);
-               }
-               if (strlen(tmp) + sizeof "[].65535" > size) {
-                       (*logger)(ctl_error, "%s: buffer overflow", me);
-                       return (punt);
-               }
-               (void) sprintf(buf, "[%s].%u", tmp, ntohs(in6->sin6_port));
-               return (buf);
-           }
-       case AF_INET: {
-               const struct sockaddr_in *in =
-                                             (const struct sockaddr_in *) sa;
-
-               if (inet_ntop(in->sin_family, &in->sin_addr, tmp, sizeof tmp)
-                   == NULL) {
-                       (*logger)(ctl_error, "%s: inet_ntop(%u %04x %08x): %s",
-                                 me, in->sin_family,
-                                 in->sin_port, in->sin_addr.s_addr,
-                                 strerror(errno));
-                       return (punt);
-               }
-               if (strlen(tmp) + sizeof "[].65535" > size) {
-                       (*logger)(ctl_error, "%s: buffer overflow", me);
-                       return (punt);
-               }
-               (void) sprintf(buf, "[%s].%u", tmp, ntohs(in->sin_port));
-               return (buf);
-           }
-#ifndef NO_SOCKADDR_UN
-       case AF_UNIX: {
-               const struct sockaddr_un *un = 
-                                             (const struct sockaddr_un *) sa;
-               unsigned int x = sizeof un->sun_path;
-
-               if (x > size)
-                       x = size;
-               strncpy(buf, un->sun_path, x - 1);
-               buf[x - 1] = '\0';
-               return (buf);
-           }
-#endif
-       default:
-               return (punt);
-       }
-}
-
-void
-ctl_sa_copy(const struct sockaddr *src, struct sockaddr *dst) {
-       switch (src->sa_family) {
-       case AF_INET6:
-               *((struct sockaddr_in6 *)dst) =
-                                        *((const struct sockaddr_in6 *)src);
-               break;
-       case AF_INET:
-               *((struct sockaddr_in *)dst) =
-                                         *((const struct sockaddr_in *)src);
-               break;
-#ifndef NO_SOCKADDR_UN
-       case AF_UNIX:
-               *((struct sockaddr_un *)dst) =
-                                         *((const struct sockaddr_un *)src);
-               break;
-#endif
-       default:
-               *dst = *src;
-               break;
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ctl_p.h b/lib/bind/isc/ctl_p.h
deleted file mode 100644 (file)
index 18a52ae..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-struct ctl_buf {
-       char *                  text;
-       size_t                  used;
-};
-
-#define        MAX_LINELEN             990     /*%< Like SMTP. */
-#ifndef NO_SOCKADDR_UN
-#define MAX_NTOP                       PATH_MAX
-#else
-#define        MAX_NTOP                (sizeof "[255.255.255.255].65535")
-#endif
-
-#define        allocated_p(Buf) ((Buf).text != NULL)
-#define        buffer_init(Buf) ((Buf).text = 0, (Buf.used) = 0)
-
-#define        ctl_bufget      __ctl_bufget
-#define        ctl_bufput      __ctl_bufput
-#define        ctl_sa_ntop     __ctl_sa_ntop
-#define        ctl_sa_copy     __ctl_sa_copy
-
-int                    ctl_bufget(struct ctl_buf *, ctl_logfunc);
-void                   ctl_bufput(struct ctl_buf *);
-const char *           ctl_sa_ntop(const struct sockaddr *, char *, size_t,
-                                   ctl_logfunc);
-void                   ctl_sa_copy(const struct sockaddr *,
-                                   struct sockaddr *);
-
-/*! \file */
diff --git a/lib/bind/isc/ctl_srvr.c b/lib/bind/isc/ctl_srvr.c
deleted file mode 100644 (file)
index c31d647..0000000
+++ /dev/null
@@ -1,787 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: ctl_srvr.c,v 1.9 2008/02/18 03:49:08 marka Exp $";
-#endif /* not lint */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* Extern. */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <fcntl.h>
-#ifdef HAVE_MEMORY_H
-#include <memory.h>
-#endif
-
-#include <isc/assertions.h>
-#include <isc/ctl.h>
-#include <isc/eventlib.h>
-#include <isc/list.h>
-#include <isc/logging.h>
-#include <isc/memcluster.h>
-
-#include "ctl_p.h"
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/* Macros. */
-
-#define        lastverb_p(verb)        (verb->name == NULL || verb->func == NULL)
-#define        address_expr            ctl_sa_ntop((struct sockaddr *)&sess->sa, \
-                                           tmp, sizeof tmp, ctx->logger)
-
-/* Types. */
-
-enum state {
-       available = 0, initializing, writing, reading, reading_data,
-       processing, idling, quitting, closing
-};
-
-union sa_un {
-       struct sockaddr_in in;
-#ifndef NO_SOCKADDR_UN
-       struct sockaddr_un un;
-#endif
-};
-
-struct ctl_sess {
-       LINK(struct ctl_sess)   link;
-       struct ctl_sctx *       ctx;
-       enum state              state;
-       int                     sock;
-       union sa_un             sa;
-       evFileID                rdID;
-       evStreamID              wrID;
-       evTimerID               rdtiID;
-       evTimerID               wrtiID;
-       struct ctl_buf          inbuf;
-       struct ctl_buf          outbuf;
-       const struct ctl_verb * verb;
-       u_int                   helpcode;
-       const void *            respctx;
-       u_int                   respflags;
-       ctl_srvrdone            donefunc;
-       void *                  uap;
-       void *                  csctx;
-};
-
-struct ctl_sctx {
-       evContext               ev;
-       void *                  uctx;
-       u_int                   unkncode;
-       u_int                   timeoutcode;
-       const struct ctl_verb * verbs;
-       const struct ctl_verb * connverb;
-       int                     sock;
-       int                     max_sess;
-       int                     cur_sess;
-       struct timespec         timeout;
-       ctl_logfunc             logger;
-       evConnID                acID;
-       LIST(struct ctl_sess)   sess;
-};
-
-/* Forward. */
-
-static void                    ctl_accept(evContext, void *, int,
-                                          const void *, int,
-                                          const void *, int);
-static void                    ctl_close(struct ctl_sess *);
-static void                    ctl_new_state(struct ctl_sess *,
-                                             enum state,
-                                             const char *);
-static void                    ctl_start_read(struct ctl_sess *);
-static void                    ctl_stop_read(struct ctl_sess *);
-static void                    ctl_readable(evContext, void *, int, int);
-static void                    ctl_rdtimeout(evContext, void *,
-                                             struct timespec,
-                                             struct timespec);
-static void                    ctl_wrtimeout(evContext, void *,
-                                             struct timespec,
-                                             struct timespec);
-static void                    ctl_docommand(struct ctl_sess *);
-static void                    ctl_writedone(evContext, void *, int, int);
-static void                    ctl_morehelp(struct ctl_sctx *,
-                                            struct ctl_sess *,
-                                            const struct ctl_verb *,
-                                            const char *,
-                                            u_int, const void *, void *);
-static void                    ctl_signal_done(struct ctl_sctx *,
-                                               struct ctl_sess *);
-
-/* Private data. */
-
-static const char *            state_names[] = {
-       "available", "initializing", "writing", "reading",
-       "reading_data", "processing", "idling", "quitting", "closing"
-};
-
-static const char              space[] = " ";
-
-static const struct ctl_verb   fakehelpverb = {
-       "fakehelp", ctl_morehelp , NULL
-};
-
-/* Public. */
-
-/*%
- * void
- * ctl_server()
- *     create, condition, and start a listener on the control port.
- */
-struct ctl_sctx *
-ctl_server(evContext lev, const struct sockaddr *sap, size_t sap_len,
-          const struct ctl_verb *verbs,
-          u_int unkncode, u_int timeoutcode,
-          u_int timeout, int backlog, int max_sess,
-          ctl_logfunc logger, void *uctx)
-{
-       static const char me[] = "ctl_server";
-       static const int on = 1;
-       const struct ctl_verb *connverb;
-       struct ctl_sctx *ctx;
-       int save_errno;
-
-       if (logger == NULL)
-               logger = ctl_logger;
-       for (connverb = verbs;
-            connverb->name != NULL && connverb->func != NULL;
-            connverb++)
-               if (connverb->name[0] == '\0')
-                       break;
-       if (connverb->func == NULL) {
-               (*logger)(ctl_error, "%s: no connection verb found", me);
-               return (NULL);
-       }
-       ctx = memget(sizeof *ctx);
-       if (ctx == NULL) {
-               (*logger)(ctl_error, "%s: getmem: %s", me, strerror(errno));
-               return (NULL);
-       }
-       ctx->ev = lev;
-       ctx->uctx = uctx;
-       ctx->unkncode = unkncode;
-       ctx->timeoutcode = timeoutcode;
-       ctx->verbs = verbs;
-       ctx->timeout = evConsTime(timeout, 0);
-       ctx->logger = logger;
-       ctx->connverb = connverb;
-       ctx->max_sess = max_sess;
-       ctx->cur_sess = 0;
-       INIT_LIST(ctx->sess);
-       ctx->sock = socket(sap->sa_family, SOCK_STREAM, PF_UNSPEC);
-       if (ctx->sock > evHighestFD(ctx->ev)) {
-               ctx->sock = -1;
-               errno = ENOTSOCK;
-       }
-       if (ctx->sock < 0) {
-               save_errno = errno;
-               (*ctx->logger)(ctl_error, "%s: socket: %s",
-                              me, strerror(errno));
-               memput(ctx, sizeof *ctx);
-               errno = save_errno;
-               return (NULL);
-       }
-       if (ctx->sock > evHighestFD(lev)) {
-               close(ctx->sock);
-               (*ctx->logger)(ctl_error, "%s: file descriptor > evHighestFD");
-               errno = ENFILE;
-               memput(ctx, sizeof *ctx);
-               return (NULL);
-       }
-#ifdef NO_UNIX_REUSEADDR
-       if (sap->sa_family != AF_UNIX)
-#endif
-               if (setsockopt(ctx->sock, SOL_SOCKET, SO_REUSEADDR,
-                              (const char *)&on, sizeof on) != 0) {
-                       (*ctx->logger)(ctl_warning,
-                                      "%s: setsockopt(REUSEADDR): %s",
-                                      me, strerror(errno));
-               }
-       if (bind(ctx->sock, sap, sap_len) < 0) {
-               char tmp[MAX_NTOP];
-               save_errno = errno;
-               (*ctx->logger)(ctl_error, "%s: bind: %s: %s",
-                              me, ctl_sa_ntop((const struct sockaddr *)sap,
-                              tmp, sizeof tmp, ctx->logger),
-                              strerror(save_errno));
-               close(ctx->sock);
-               memput(ctx, sizeof *ctx);
-               errno = save_errno;
-               return (NULL);
-       }
-       if (fcntl(ctx->sock, F_SETFD, 1) < 0) {
-               (*ctx->logger)(ctl_warning, "%s: fcntl: %s", me,
-                              strerror(errno));
-       }
-       if (evListen(lev, ctx->sock, backlog, ctl_accept, ctx,
-                    &ctx->acID) < 0) {
-               save_errno = errno;
-               (*ctx->logger)(ctl_error, "%s: evListen(fd %d): %s",
-                              me, ctx->sock, strerror(errno));
-               close(ctx->sock);
-               memput(ctx, sizeof *ctx);
-               errno = save_errno;
-               return (NULL);
-       }
-       (*ctx->logger)(ctl_debug, "%s: new ctx %p, sock %d",
-                      me, ctx, ctx->sock);
-       return (ctx);
-}
-
-/*%
- * void
- * ctl_endserver(ctx)
- *     if the control listener is open, close it.  clean out all eventlib
- *     stuff.  close all active sessions.
- */
-void
-ctl_endserver(struct ctl_sctx *ctx) {
-       static const char me[] = "ctl_endserver";
-       struct ctl_sess *this, *next;
-
-       (*ctx->logger)(ctl_debug, "%s: ctx %p, sock %d, acID %p, sess %p",
-                      me, ctx, ctx->sock, ctx->acID.opaque, ctx->sess);
-       if (ctx->acID.opaque != NULL) {
-               (void)evCancelConn(ctx->ev, ctx->acID);
-               ctx->acID.opaque = NULL;
-       }
-       if (ctx->sock != -1) {
-               (void) close(ctx->sock);
-               ctx->sock = -1;
-       }
-       for (this = HEAD(ctx->sess); this != NULL; this = next) {
-               next = NEXT(this, link);
-               ctl_close(this);
-       }
-       memput(ctx, sizeof *ctx);
-}
-
-/*%
- * If body is non-NULL then it we add a "." line after it.
- * Caller must have  escaped lines with leading ".".
- */
-void
-ctl_response(struct ctl_sess *sess, u_int code, const char *text,
-            u_int flags, const void *respctx, ctl_srvrdone donefunc,
-            void *uap, const char *body, size_t bodylen)
-{
-       static const char me[] = "ctl_response";
-       struct iovec iov[3], *iovp = iov;
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP], *pc;
-       int n;
-
-       REQUIRE(sess->state == initializing ||
-               sess->state == processing ||
-               sess->state == reading_data ||
-               sess->state == writing);
-       REQUIRE(sess->wrtiID.opaque == NULL);
-       REQUIRE(sess->wrID.opaque == NULL);
-       ctl_new_state(sess, writing, me);
-       sess->donefunc = donefunc;
-       sess->uap = uap;
-       if (!allocated_p(sess->outbuf) &&
-           ctl_bufget(&sess->outbuf, ctx->logger) < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: cant get an output buffer",
-                              me, address_expr);
-               goto untimely;
-       }
-       if (sizeof "000-\r\n" + strlen(text) > (size_t)MAX_LINELEN) {
-               (*ctx->logger)(ctl_error, "%s: %s: output buffer ovf, closing",
-                              me, address_expr);
-               goto untimely;
-       }
-       sess->outbuf.used = SPRINTF((sess->outbuf.text, "%03d%c%s\r\n",
-                                    code, (flags & CTL_MORE) != 0 ? '-' : ' ',
-                                    text));
-       for (pc = sess->outbuf.text, n = 0;
-            n < (int)sess->outbuf.used-2; pc++, n++)
-               if (!isascii((unsigned char)*pc) ||
-                   !isprint((unsigned char)*pc))
-                       *pc = '\040';
-       *iovp++ = evConsIovec(sess->outbuf.text, sess->outbuf.used);
-       if (body != NULL) {
-               char *tmp;
-               DE_CONST(body, tmp);
-               *iovp++ = evConsIovec(tmp, bodylen);
-               DE_CONST(".\r\n", tmp);
-               *iovp++ = evConsIovec(tmp, 3);
-       }
-       (*ctx->logger)(ctl_debug, "%s: [%d] %s", me,
-                      sess->outbuf.used, sess->outbuf.text);
-       if (evWrite(ctx->ev, sess->sock, iov, iovp - iov,
-                   ctl_writedone, sess, &sess->wrID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: evWrite: %s", me,
-                              address_expr, strerror(errno));
-               goto untimely;
-       }
-       if (evSetIdleTimer(ctx->ev, ctl_wrtimeout, sess, ctx->timeout,
-                          &sess->wrtiID) < 0)
-       {
-               (*ctx->logger)(ctl_error, "%s: %s: evSetIdleTimer: %s", me,
-                              address_expr, strerror(errno));
-               goto untimely;
-       }
-       if (evTimeRW(ctx->ev, sess->wrID, sess->wrtiID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: evTimeRW: %s", me,
-                              address_expr, strerror(errno));
- untimely:
-               ctl_signal_done(ctx, sess);
-               ctl_close(sess);
-               return;
-       }
-       sess->respctx = respctx;
-       sess->respflags = flags;
-}
-
-void
-ctl_sendhelp(struct ctl_sess *sess, u_int code) {
-       static const char me[] = "ctl_sendhelp";
-       struct ctl_sctx *ctx = sess->ctx;
-
-       sess->helpcode = code;
-       sess->verb = &fakehelpverb;
-       ctl_morehelp(ctx, sess, NULL, me, CTL_MORE,
-                    (const void *)ctx->verbs, NULL);
-}
-
-void *
-ctl_getcsctx(struct ctl_sess *sess) {
-       return (sess->csctx);
-}
-
-void *
-ctl_setcsctx(struct ctl_sess *sess, void *csctx) {
-       void *old = sess->csctx;
-
-       sess->csctx = csctx;
-       return (old);
-}
-
-/* Private functions. */
-
-static void
-ctl_accept(evContext lev, void *uap, int fd,
-          const void *lav, int lalen,
-          const void *rav, int ralen)
-{
-       static const char me[] = "ctl_accept";
-       struct ctl_sctx *ctx = uap;
-       struct ctl_sess *sess = NULL;
-       char tmp[MAX_NTOP];
-
-       UNUSED(lev);
-       UNUSED(lalen);
-       UNUSED(ralen);
-
-       if (fd < 0) {
-               (*ctx->logger)(ctl_error, "%s: accept: %s",
-                              me, strerror(errno));
-               return;
-       }
-       if (ctx->cur_sess == ctx->max_sess) {
-               (*ctx->logger)(ctl_error, "%s: %s: too many control sessions",
-                              me, ctl_sa_ntop((const struct sockaddr *)rav,
-                                              tmp, sizeof tmp,
-                                              ctx->logger));
-               (void) close(fd);
-               return;
-       }
-       sess = memget(sizeof *sess);
-       if (sess == NULL) {
-               (*ctx->logger)(ctl_error, "%s: memget: %s", me,
-                              strerror(errno));
-               (void) close(fd);
-               return;
-       }
-       if (fcntl(fd, F_SETFD, 1) < 0) {
-               (*ctx->logger)(ctl_warning, "%s: fcntl: %s", me,
-                              strerror(errno));
-       }
-       ctx->cur_sess++;
-       INIT_LINK(sess, link);
-       APPEND(ctx->sess, sess, link);
-       sess->ctx = ctx;
-       sess->sock = fd;
-       sess->wrID.opaque = NULL;
-       sess->rdID.opaque = NULL;
-       sess->wrtiID.opaque = NULL;
-       sess->rdtiID.opaque = NULL;
-       sess->respctx = NULL;
-       sess->csctx = NULL;
-       if (((const struct sockaddr *)rav)->sa_family == AF_UNIX)
-               ctl_sa_copy((const struct sockaddr *)lav,
-                           (struct sockaddr *)&sess->sa);
-       else
-               ctl_sa_copy((const struct sockaddr *)rav,
-                           (struct sockaddr *)&sess->sa);
-       sess->donefunc = NULL;
-       buffer_init(sess->inbuf);
-       buffer_init(sess->outbuf);
-       sess->state = available;
-       ctl_new_state(sess, initializing, me);
-       sess->verb = ctx->connverb;
-       (*ctx->logger)(ctl_debug, "%s: %s: accepting (fd %d)",
-                      me, address_expr, sess->sock);
-       (*ctx->connverb->func)(ctx, sess, ctx->connverb, "", 0,
-                              (const struct sockaddr *)rav, ctx->uctx);
-}
-
-static void
-ctl_new_state(struct ctl_sess *sess, enum state new_state, const char *reason)
-{
-       static const char me[] = "ctl_new_state";
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-
-       (*ctx->logger)(ctl_debug, "%s: %s: %s -> %s (%s)",
-                      me, address_expr,
-                      state_names[sess->state],
-                      state_names[new_state], reason);
-       sess->state = new_state;
-}
-
-static void
-ctl_close(struct ctl_sess *sess) {
-       static const char me[] = "ctl_close";
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-
-       REQUIRE(sess->state == initializing ||
-               sess->state == writing ||
-               sess->state == reading ||
-               sess->state == processing ||
-               sess->state == reading_data ||
-               sess->state == idling);
-       REQUIRE(sess->sock != -1);
-       if (sess->state == reading || sess->state == reading_data)
-               ctl_stop_read(sess);
-       else if (sess->state == writing) {
-               if (sess->wrID.opaque != NULL) {
-                       (void) evCancelRW(ctx->ev, sess->wrID);
-                       sess->wrID.opaque = NULL;
-               }
-               if (sess->wrtiID.opaque != NULL) {
-                       (void) evClearIdleTimer(ctx->ev, sess->wrtiID);
-                       sess->wrtiID.opaque = NULL;
-               }
-       }
-       ctl_new_state(sess, closing, me);
-       (void) close(sess->sock);
-       if (allocated_p(sess->inbuf))
-               ctl_bufput(&sess->inbuf);
-       if (allocated_p(sess->outbuf))
-               ctl_bufput(&sess->outbuf);
-       (*ctx->logger)(ctl_debug, "%s: %s: closed (fd %d)",
-                      me, address_expr, sess->sock);
-       UNLINK(ctx->sess, sess, link);
-       memput(sess, sizeof *sess);
-       ctx->cur_sess--;
-}
-
-static void
-ctl_start_read(struct ctl_sess *sess) {
-       static const char me[] = "ctl_start_read";
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-
-       REQUIRE(sess->state == initializing ||
-               sess->state == writing ||
-               sess->state == processing ||
-               sess->state == idling);
-       REQUIRE(sess->rdtiID.opaque == NULL);
-       REQUIRE(sess->rdID.opaque == NULL);
-       sess->inbuf.used = 0;
-       if (evSetIdleTimer(ctx->ev, ctl_rdtimeout, sess, ctx->timeout,
-                          &sess->rdtiID) < 0)
-       {
-               (*ctx->logger)(ctl_error, "%s: %s: evSetIdleTimer: %s", me,
-                              address_expr, strerror(errno));
-               ctl_close(sess);
-               return;
-       }
-       if (evSelectFD(ctx->ev, sess->sock, EV_READ,
-                      ctl_readable, sess, &sess->rdID) < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: evSelectFD: %s", me,
-                              address_expr, strerror(errno));
-               return;
-       }
-       ctl_new_state(sess, reading, me);
-}
-
-static void
-ctl_stop_read(struct ctl_sess *sess) {
-       static const char me[] = "ctl_stop_read";
-       struct ctl_sctx *ctx = sess->ctx;
-
-       REQUIRE(sess->state == reading || sess->state == reading_data);
-       REQUIRE(sess->rdID.opaque != NULL);
-       (void) evDeselectFD(ctx->ev, sess->rdID);
-       sess->rdID.opaque = NULL;
-       if (sess->rdtiID.opaque != NULL) {
-               (void) evClearIdleTimer(ctx->ev, sess->rdtiID);
-               sess->rdtiID.opaque = NULL;
-       }
-       ctl_new_state(sess, idling, me);
-}
-
-static void
-ctl_readable(evContext lev, void *uap, int fd, int evmask) {
-       static const char me[] = "ctl_readable";
-       struct ctl_sess *sess = uap;
-       struct ctl_sctx *ctx;
-       char *eos, tmp[MAX_NTOP];
-       ssize_t n;
-
-       REQUIRE(sess != NULL);
-       REQUIRE(fd >= 0);
-       REQUIRE(evmask == EV_READ);
-       REQUIRE(sess->state == reading || sess->state == reading_data);
-
-       ctx = sess->ctx;
-       evTouchIdleTimer(lev, sess->rdtiID);
-       if (!allocated_p(sess->inbuf) &&
-           ctl_bufget(&sess->inbuf, ctx->logger) < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: cant get an input buffer",
-                              me, address_expr);
-               ctl_close(sess);
-               return;
-       }
-       n = read(sess->sock, sess->inbuf.text + sess->inbuf.used,
-                MAX_LINELEN - sess->inbuf.used);
-       if (n <= 0) {
-               (*ctx->logger)(ctl_debug, "%s: %s: read: %s",
-                              me, address_expr,
-                              (n == 0) ? "Unexpected EOF" : strerror(errno));
-               ctl_close(sess);
-               return;
-       }
-       sess->inbuf.used += n;
-       eos = memchr(sess->inbuf.text, '\n', sess->inbuf.used);
-       if (eos != NULL && eos != sess->inbuf.text && eos[-1] == '\r') {
-               eos[-1] = '\0';
-               if ((sess->respflags & CTL_DATA) != 0) {
-                       INSIST(sess->verb != NULL);
-                       (*sess->verb->func)(sess->ctx, sess, sess->verb,
-                                           sess->inbuf.text,
-                                           CTL_DATA, sess->respctx,
-                                           sess->ctx->uctx);
-               } else {
-                       ctl_stop_read(sess);
-                       ctl_docommand(sess);
-               }
-               sess->inbuf.used -= ((eos - sess->inbuf.text) + 1);
-               if (sess->inbuf.used == 0U)
-                       ctl_bufput(&sess->inbuf);
-               else
-                       memmove(sess->inbuf.text, eos + 1, sess->inbuf.used);
-               return;
-       }
-       if (sess->inbuf.used == (size_t)MAX_LINELEN) {
-               (*ctx->logger)(ctl_error, "%s: %s: line too long, closing",
-                              me, address_expr);
-               ctl_close(sess);
-       }
-}
-
-static void
-ctl_wrtimeout(evContext lev, void *uap,
-             struct timespec due,
-             struct timespec itv)
-{
-       static const char me[] = "ctl_wrtimeout";
-       struct ctl_sess *sess = uap;
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-       
-       UNUSED(lev);
-       UNUSED(due);
-       UNUSED(itv);
-
-       REQUIRE(sess->state == writing);
-       sess->wrtiID.opaque = NULL;
-       (*ctx->logger)(ctl_warning, "%s: %s: write timeout, closing",
-                      me, address_expr);
-       if (sess->wrID.opaque != NULL) {
-               (void) evCancelRW(ctx->ev, sess->wrID);
-               sess->wrID.opaque = NULL;
-       }
-       ctl_signal_done(ctx, sess);
-       ctl_new_state(sess, processing, me);
-       ctl_close(sess);
-}
-
-static void
-ctl_rdtimeout(evContext lev, void *uap,
-             struct timespec due,
-             struct timespec itv)
-{
-       static const char me[] = "ctl_rdtimeout";
-       struct ctl_sess *sess = uap;
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-
-       UNUSED(lev);
-       UNUSED(due);
-       UNUSED(itv);
-
-       REQUIRE(sess->state == reading);
-       sess->rdtiID.opaque = NULL;
-       (*ctx->logger)(ctl_warning, "%s: %s: timeout, closing",
-                      me, address_expr);
-       if (sess->state == reading || sess->state == reading_data)
-               ctl_stop_read(sess);
-       ctl_signal_done(ctx, sess);
-       ctl_new_state(sess, processing, me);
-       ctl_response(sess, ctx->timeoutcode, "Timeout.", CTL_EXIT, NULL,
-                    NULL, NULL, NULL, 0);
-}
-
-static void
-ctl_docommand(struct ctl_sess *sess) {
-       static const char me[] = "ctl_docommand";
-       char *name, *rest, tmp[MAX_NTOP];
-       struct ctl_sctx *ctx = sess->ctx;
-       const struct ctl_verb *verb;
-
-       REQUIRE(allocated_p(sess->inbuf));
-       (*ctx->logger)(ctl_debug, "%s: %s: \"%s\" [%u]",
-                      me, address_expr,
-                      sess->inbuf.text, (u_int)sess->inbuf.used);
-       ctl_new_state(sess, processing, me);
-       name = sess->inbuf.text + strspn(sess->inbuf.text, space);
-       rest = name + strcspn(name, space);
-       if (*rest != '\0') {
-               *rest++ = '\0';
-               rest += strspn(rest, space);
-       }
-       for (verb = ctx->verbs;
-            verb != NULL && verb->name != NULL && verb->func != NULL;
-            verb++)
-               if (verb->name[0] != '\0' && strcasecmp(name, verb->name) == 0)
-                       break;
-       if (verb != NULL && verb->name != NULL && verb->func != NULL) {
-               sess->verb = verb;
-               (*verb->func)(ctx, sess, verb, rest, 0, NULL, ctx->uctx);
-       } else {
-               char buf[1100];
-
-               if (sizeof "Unrecognized command \"\" (args \"\")" +
-                   strlen(name) + strlen(rest) > sizeof buf)
-                       strcpy(buf, "Unrecognized command (buf ovf)");
-               else
-                       sprintf(buf,
-                               "Unrecognized command \"%s\" (args \"%s\")",
-                               name, rest);
-               ctl_response(sess, ctx->unkncode, buf, 0, NULL, NULL, NULL,
-                            NULL, 0);
-       }
-}
-
-static void
-ctl_writedone(evContext lev, void *uap, int fd, int bytes) {
-       static const char me[] = "ctl_writedone";
-       struct ctl_sess *sess = uap;
-       struct ctl_sctx *ctx = sess->ctx;
-       char tmp[MAX_NTOP];
-       int save_errno = errno;
-
-       UNUSED(lev);
-       UNUSED(uap);
-
-       REQUIRE(sess->state == writing);
-       REQUIRE(fd == sess->sock);
-       REQUIRE(sess->wrtiID.opaque != NULL);
-       sess->wrID.opaque = NULL;
-       (void) evClearIdleTimer(ctx->ev, sess->wrtiID);
-       sess->wrtiID.opaque = NULL;
-       if (bytes < 0) {
-               (*ctx->logger)(ctl_error, "%s: %s: %s",
-                              me, address_expr, strerror(save_errno));
-               ctl_close(sess);
-               return;
-       }
-
-       INSIST(allocated_p(sess->outbuf));
-       ctl_bufput(&sess->outbuf);
-       if ((sess->respflags & CTL_EXIT) != 0) {
-               ctl_signal_done(ctx, sess);
-               ctl_close(sess);
-               return;
-       } else if ((sess->respflags & CTL_MORE) != 0) {
-               INSIST(sess->verb != NULL);
-               (*sess->verb->func)(sess->ctx, sess, sess->verb, "",
-                                   CTL_MORE, sess->respctx, sess->ctx->uctx);
-       } else {
-               ctl_signal_done(ctx, sess);
-               ctl_start_read(sess);
-       }
-}
-
-static void
-ctl_morehelp(struct ctl_sctx *ctx, struct ctl_sess *sess,
-            const struct ctl_verb *verb, const char *text,
-            u_int respflags, const void *respctx, void *uctx)
-{
-       const struct ctl_verb *this = respctx, *next = this + 1;
-
-       UNUSED(ctx);
-       UNUSED(verb);
-       UNUSED(text);
-       UNUSED(uctx);
-
-       REQUIRE(!lastverb_p(this));
-       REQUIRE((respflags & CTL_MORE) != 0);
-       if (lastverb_p(next))
-               respflags &= ~CTL_MORE;
-       ctl_response(sess, sess->helpcode, this->help, respflags, next,
-                    NULL, NULL, NULL, 0);
-}
-
-static void
-ctl_signal_done(struct ctl_sctx *ctx, struct ctl_sess *sess) {
-       if (sess->donefunc != NULL) {
-               (*sess->donefunc)(ctx, sess, sess->uap);
-               sess->donefunc = NULL;
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ev_connects.c b/lib/bind/isc/ev_connects.c
deleted file mode 100644 (file)
index 38dfdbe..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* ev_connects.c - implement asynch connect/accept for the eventlib
- * vix 16sep96 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: ev_connects.c,v 1.8 2006/03/09 23:57:56 marka Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-
-#include <unistd.h>
-
-#include <isc/eventlib.h>
-#include <isc/assertions.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-/* Macros. */
-
-#define GETXXXNAME(f, s, sa, len) ( \
-       (f((s), (&sa), (&len)) >= 0) ? 0 : \
-               (errno != EAFNOSUPPORT && errno != EOPNOTSUPP) ? -1 : ( \
-                       memset(&(sa), 0, sizeof (sa)), \
-                       (len) = sizeof (sa), \
-                       (sa).sa_family = AF_UNIX, \
-                       0 \
-               ) \
-       )
-
-/* Forward. */
-
-static void    listener(evContext ctx, void *uap, int fd, int evmask);
-static void    connector(evContext ctx, void *uap, int fd, int evmask);
-
-/* Public. */
-
-int
-evListen(evContext opaqueCtx, int fd, int maxconn,
-        evConnFunc func, void *uap, evConnID *id)
-{
-       evContext_p *ctx = opaqueCtx.opaque;
-       evConn *new;
-       int mode;
-
-       OKNEW(new);
-       new->flags = EV_CONN_LISTEN;
-       OKFREE(mode = fcntl(fd, F_GETFL, NULL), new);   /*%< side effect: validate fd. */
-       /*
-        * Remember the nonblocking status.  We assume that either evSelectFD
-        * has not been done to this fd, or that if it has then the caller
-        * will evCancelConn before they evDeselectFD.  If our assumptions
-        * are not met, then we might restore the old nonblocking status
-        * incorrectly.
-        */
-       if ((mode & PORT_NONBLOCK) == 0) {
-#ifdef USE_FIONBIO_IOCTL
-               int on = 1;
-               OKFREE(ioctl(fd, FIONBIO, (char *)&on), new);
-#else
-               OKFREE(fcntl(fd, F_SETFL, mode | PORT_NONBLOCK), new);
-#endif
-               new->flags |= EV_CONN_BLOCK;
-       }
-       OKFREE(listen(fd, maxconn), new);
-       if (evSelectFD(opaqueCtx, fd, EV_READ, listener, new, &new->file) < 0){
-               int save = errno;
-
-               FREE(new);
-               errno = save;
-               return (-1);
-       }
-       new->flags |= EV_CONN_SELECTED;
-       new->func = func;
-       new->uap = uap;
-       new->fd = fd;
-       if (ctx->conns != NULL)
-               ctx->conns->prev = new;
-       new->prev = NULL;
-       new->next = ctx->conns;
-       ctx->conns = new;
-       if (id)
-               id->opaque = new;
-       return (0);
-}
-
-int
-evConnect(evContext opaqueCtx, int fd, const void *ra, int ralen,
-         evConnFunc func, void *uap, evConnID *id)
-{
-       evContext_p *ctx = opaqueCtx.opaque;
-       evConn *new;
-
-       OKNEW(new);
-       new->flags = 0;
-       /* Do the select() first to get the socket into nonblocking mode. */
-       if (evSelectFD(opaqueCtx, fd, EV_MASK_ALL,
-                      connector, new, &new->file) < 0) {
-               int save = errno;
-
-               FREE(new);
-               errno = save;
-               return (-1);
-       }
-       new->flags |= EV_CONN_SELECTED;
-       if (connect(fd, ra, ralen) < 0 &&
-           errno != EWOULDBLOCK &&
-           errno != EAGAIN &&
-           errno != EINPROGRESS) {
-               int save = errno;
-
-               (void) evDeselectFD(opaqueCtx, new->file);
-               FREE(new);
-               errno = save;
-               return (-1);
-       }
-       /* No error, or EWOULDBLOCK.  select() tells when it's ready. */
-       new->func = func;
-       new->uap = uap;
-       new->fd = fd;
-       if (ctx->conns != NULL)
-               ctx->conns->prev = new;
-       new->prev = NULL;
-       new->next = ctx->conns;
-       ctx->conns = new;
-       if (id)
-               id->opaque = new;
-       return (0);
-}
-
-int
-evCancelConn(evContext opaqueCtx, evConnID id) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evConn *this = id.opaque;
-       evAccept *acc, *nxtacc;
-       int mode;
-
-       if ((this->flags & EV_CONN_SELECTED) != 0)
-               (void) evDeselectFD(opaqueCtx, this->file);
-       if ((this->flags & EV_CONN_BLOCK) != 0) {
-               mode = fcntl(this->fd, F_GETFL, NULL);
-               if (mode == -1) {
-                       if (errno != EBADF)
-                               return (-1);
-               } else {
-#ifdef USE_FIONBIO_IOCTL
-                       int off = 0;
-                       OK(ioctl(this->fd, FIONBIO, (char *)&off));
-#else
-                       OK(fcntl(this->fd, F_SETFL, mode & ~PORT_NONBLOCK));
-#endif
-               }
-       }
-       
-       /* Unlink from ctx->conns. */
-       if (this->prev != NULL)
-               this->prev->next = this->next;
-       else
-               ctx->conns = this->next;
-       if (this->next != NULL)
-               this->next->prev = this->prev;
-
-       /*
-        * Remove `this' from the ctx->accepts list (zero or more times).
-        */
-       for (acc = HEAD(ctx->accepts), nxtacc = NULL;
-            acc != NULL;
-            acc = nxtacc)
-       {
-               nxtacc = NEXT(acc, link);
-               if (acc->conn == this) {
-                       UNLINK(ctx->accepts, acc, link);
-                       close(acc->fd);
-                       FREE(acc);
-               }
-       }
-
-       /* Wrap up and get out. */
-       FREE(this);
-       return (0);
-}
-
-int evHold(evContext opaqueCtx, evConnID id) {
-       evConn *this = id.opaque;
-
-       if ((this->flags & EV_CONN_LISTEN) == 0) {
-               errno = EINVAL;
-               return (-1);
-       }
-       if ((this->flags & EV_CONN_SELECTED) == 0)
-               return (0);
-       this->flags &= ~EV_CONN_SELECTED;
-       return (evDeselectFD(opaqueCtx, this->file));
-}
-
-int evUnhold(evContext opaqueCtx, evConnID id) {
-       evConn *this = id.opaque;
-       int ret;
-
-       if ((this->flags & EV_CONN_LISTEN) == 0) {
-               errno = EINVAL;
-               return (-1);
-       }
-       if ((this->flags & EV_CONN_SELECTED) != 0)
-               return (0);
-       ret = evSelectFD(opaqueCtx, this->fd, EV_READ, listener, this,
-                        &this->file);
-       if (ret == 0)
-               this->flags |= EV_CONN_SELECTED;
-       return (ret);
-}
-
-int
-evTryAccept(evContext opaqueCtx, evConnID id, int *sys_errno) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evConn *conn = id.opaque;
-       evAccept *new;
-
-       if ((conn->flags & EV_CONN_LISTEN) == 0) {
-               errno = EINVAL;
-               return (-1);
-       }
-       OKNEW(new);
-       new->conn = conn;
-       new->ralen = sizeof new->ra;
-       new->fd = accept(conn->fd, &new->ra.sa, &new->ralen);
-       if (new->fd > ctx->highestFD) {
-               close(new->fd);
-               new->fd = -1;
-               new->ioErrno = ENOTSOCK;
-       }
-       if (new->fd >= 0) {
-               new->lalen = sizeof new->la;
-               if (GETXXXNAME(getsockname, new->fd, new->la.sa, new->lalen) < 0) {
-                       new->ioErrno = errno;
-                       (void) close(new->fd);
-                       new->fd = -1;
-               } else
-                       new->ioErrno = 0;
-       } else {
-               new->ioErrno = errno;
-               if (errno == EAGAIN || errno == EWOULDBLOCK) {
-                       FREE(new);
-                       return (-1);
-               }
-       }
-       INIT_LINK(new, link);
-       APPEND(ctx->accepts, new, link);
-       *sys_errno = new->ioErrno;
-       return (0);
-}
-
-/* Private. */
-
-static void
-listener(evContext opaqueCtx, void *uap, int fd, int evmask) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evConn *conn = uap;
-       union {
-               struct sockaddr    sa;
-               struct sockaddr_in in;
-#ifndef NO_SOCKADDR_UN
-               struct sockaddr_un un;
-#endif
-       } la, ra;
-       int new; 
-       ISC_SOCKLEN_T lalen = 0, ralen;
-
-       REQUIRE((evmask & EV_READ) != 0);
-       ralen = sizeof ra;
-       new = accept(fd, &ra.sa, &ralen);
-       if (new > ctx->highestFD) {
-               close(new);
-               new = -1;
-               errno = ENOTSOCK;
-       }
-       if (new >= 0) {
-               lalen = sizeof la;
-               if (GETXXXNAME(getsockname, new, la.sa, lalen) < 0) {
-                       int save = errno;
-
-                       (void) close(new);
-                       errno = save;
-                       new = -1;
-               }
-       } else if (errno == EAGAIN || errno == EWOULDBLOCK)
-               return;
-       (*conn->func)(opaqueCtx, conn->uap, new, &la.sa, lalen, &ra.sa, ralen);
-}
-
-static void
-connector(evContext opaqueCtx, void *uap, int fd, int evmask) {
-       evConn *conn = uap;
-       union {
-               struct sockaddr    sa;
-               struct sockaddr_in in;
-#ifndef NO_SOCKADDR_UN
-               struct sockaddr_un un;
-#endif
-       } la, ra;
-       ISC_SOCKLEN_T lalen, ralen;
-#ifndef NETREAD_BROKEN
-       char buf[1];
-#endif
-       void *conn_uap;
-       evConnFunc conn_func;
-       evConnID id;
-       int socket_errno = 0;
-       ISC_SOCKLEN_T optlen;
-
-       UNUSED(evmask);
-
-       lalen = sizeof la;
-       ralen = sizeof ra;
-       conn_uap = conn->uap;
-       conn_func = conn->func;
-       id.opaque = conn;
-#ifdef SO_ERROR
-       optlen = sizeof socket_errno;
-       if (fd < 0 &&
-           getsockopt(conn->fd, SOL_SOCKET, SO_ERROR, (char *)&socket_errno,
-                      &optlen) < 0)
-               socket_errno = errno;
-       else
-               errno = socket_errno;
-#endif
-       if (evCancelConn(opaqueCtx, id) < 0 ||
-           socket_errno ||
-#ifdef NETREAD_BROKEN
-           0 ||
-#else
-           read(fd, buf, 0) < 0 ||
-#endif
-           GETXXXNAME(getsockname, fd, la.sa, lalen) < 0 ||
-           GETXXXNAME(getpeername, fd, ra.sa, ralen) < 0) {
-               int save = errno;
-
-               (void) close(fd);       /*%< XXX closing caller's fd */
-               errno = save;
-               fd = -1;
-       }
-       (*conn_func)(opaqueCtx, conn_uap, fd, &la.sa, lalen, &ra.sa, ralen);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ev_files.c b/lib/bind/isc/ev_files.c
deleted file mode 100644 (file)
index b12baf1..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* ev_files.c - implement asynch file IO for the eventlib
- * vix 11sep95 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: ev_files.c,v 1.8 2005/07/28 06:51:48 marka Exp $";
-#endif
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include <isc/eventlib.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-static evFile *FindFD(const evContext_p *ctx, int fd, int eventmask);
-
-int
-evSelectFD(evContext opaqueCtx,
-          int fd,
-          int eventmask,
-          evFileFunc func,
-          void *uap,
-          evFileID *opaqueID
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evFile *id;
-       int mode;
-
-       evPrintf(ctx, 1,
-                "evSelectFD(ctx %p, fd %d, mask 0x%x, func %p, uap %p)\n",
-                ctx, fd, eventmask, func, uap);
-       if (eventmask == 0 || (eventmask & ~EV_MASK_ALL) != 0)
-               EV_ERR(EINVAL);
-#ifndef USE_POLL
-       if (fd > ctx->highestFD)
-               EV_ERR(EINVAL);
-#endif
-       OK(mode = fcntl(fd, F_GETFL, NULL));    /*%< side effect: validate fd. */
-       /*
-        * The first time we touch a file descriptor, we need to check to see
-        * if the application already had it in O_NONBLOCK mode and if so, all
-        * of our deselect()'s have to leave it in O_NONBLOCK.  If not, then
-        * all but our last deselect() has to leave it in O_NONBLOCK.
-        */
-#ifdef USE_POLL
-       /* Make sure both ctx->pollfds[] and ctx->fdTable[] are large enough */
-       if (fd >= ctx->maxnfds && evPollfdRealloc(ctx, 1, fd) != 0)
-               EV_ERR(ENOMEM);
-#endif /* USE_POLL */
-       id = FindFD(ctx, fd, EV_MASK_ALL);
-       if (id == NULL) {
-               if (mode & PORT_NONBLOCK)
-                       FD_SET(fd, &ctx->nonblockBefore);
-               else {
-#ifdef USE_FIONBIO_IOCTL
-                       int on = 1;
-                       OK(ioctl(fd, FIONBIO, (char *)&on));
-#else
-                       OK(fcntl(fd, F_SETFL, mode | PORT_NONBLOCK));
-#endif
-                       FD_CLR(fd, &ctx->nonblockBefore);
-               }
-       }
-
-       /*
-        * If this descriptor is already in use, search for it again to see
-        * if any of the eventmask bits we want to set are already captured.
-        * We cannot usefully capture the same fd event more than once in the
-        * same context.
-        */
-       if (id != NULL && FindFD(ctx, fd, eventmask) != NULL)
-               EV_ERR(ETOOMANYREFS);
-
-       /* Allocate and fill. */
-       OKNEW(id);
-       id->func = func;
-       id->uap = uap;
-       id->fd = fd;
-       id->eventmask = eventmask;
-
-       /*
-        * Insert at head.  Order could be important for performance if we
-        * believe that evGetNext()'s accesses to the fd_sets will be more
-        * serial and therefore more cache-lucky if the list is ordered by
-        * ``fd.''  We do not believe these things, so we don't do it.
-        *
-        * The interesting sequence is where GetNext() has cached a select()
-        * result and the caller decides to evSelectFD() on some descriptor.
-        * Since GetNext() starts at the head, it can miss new entries we add
-        * at the head.  This is not a serious problem since the event being
-        * evSelectFD()'d for has to occur before evSelectFD() is called for
-        * the file event to be considered "missed" -- a real corner case.
-        * Maintaining a "tail" pointer for ctx->files would fix this, but I'm
-        * not sure it would be ``more correct.''
-        */
-       if (ctx->files != NULL)
-               ctx->files->prev = id;
-       id->prev = NULL;
-       id->next = ctx->files;
-       ctx->files = id;
-
-       /* Insert into fd table. */
-       if (ctx->fdTable[fd] != NULL)
-               ctx->fdTable[fd]->fdprev = id;
-       id->fdprev = NULL;
-       id->fdnext = ctx->fdTable[fd];
-       ctx->fdTable[fd] = id;
-
-       /* Turn on the appropriate bits in the {rd,wr,ex}Next fd_set's. */
-       if (eventmask & EV_READ)
-               FD_SET(fd, &ctx->rdNext);
-       if (eventmask & EV_WRITE)
-               FD_SET(fd, &ctx->wrNext);
-       if (eventmask & EV_EXCEPT)
-               FD_SET(fd, &ctx->exNext);
-
-       /* Update fdMax. */
-       if (fd > ctx->fdMax)
-               ctx->fdMax = fd;
-
-       /* Remember the ID if the caller provided us a place for it. */
-       if (opaqueID)
-               opaqueID->opaque = id;
-
-       return (0);
-}
-
-int
-evDeselectFD(evContext opaqueCtx, evFileID opaqueID) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evFile *del = opaqueID.opaque;
-       evFile *cur;
-       int mode, eventmask;
-
-       if (!del) {
-               evPrintf(ctx, 11, "evDeselectFD(NULL) ignored\n");
-               errno = EINVAL;
-               return (-1);
-       }
-
-       evPrintf(ctx, 1, "evDeselectFD(fd %d, mask 0x%x)\n",
-                del->fd, del->eventmask);
-
-       /* Get the mode.  Unless the file has been closed, errors are bad. */
-       mode = fcntl(del->fd, F_GETFL, NULL);
-       if (mode == -1 && errno != EBADF)
-               EV_ERR(errno);
-
-       /* Remove from the list of files. */
-       if (del->prev != NULL)
-               del->prev->next = del->next;
-       else
-               ctx->files = del->next;
-       if (del->next != NULL)
-               del->next->prev = del->prev;
-
-       /* Remove from the fd table. */
-       if (del->fdprev != NULL)
-               del->fdprev->fdnext = del->fdnext;
-       else
-               ctx->fdTable[del->fd] = del->fdnext;
-       if (del->fdnext != NULL)
-               del->fdnext->fdprev = del->fdprev;
-
-       /*
-        * If the file descriptor does not appear in any other select() entry,
-        * and if !EV_WASNONBLOCK, and if we got no EBADF when we got the mode
-        * earlier, then: restore the fd to blocking status.
-        */
-       if (!(cur = FindFD(ctx, del->fd, EV_MASK_ALL)) &&
-           !FD_ISSET(del->fd, &ctx->nonblockBefore) &&
-           mode != -1) {
-               /*
-                * Note that we won't return an error status to the caller if
-                * this fcntl() fails since (a) we've already done the work
-                * and (b) the caller didn't ask us anything about O_NONBLOCK.
-                */
-#ifdef USE_FIONBIO_IOCTL
-               int off = 0;
-               (void) ioctl(del->fd, FIONBIO, (char *)&off);
-#else
-               (void) fcntl(del->fd, F_SETFL, mode & ~PORT_NONBLOCK);
-#endif
-       }
-
-       /*
-        * Now find all other uses of this descriptor and OR together an event
-        * mask so that we don't turn off {rd,wr,ex}Next bits that some other
-        * file event is using.  As an optimization, stop if the event mask
-        * fills.
-        */
-       eventmask = 0;
-       for ((void)NULL;
-            cur != NULL && eventmask != EV_MASK_ALL;
-            cur = cur->next)
-               if (cur->fd == del->fd)
-                       eventmask |= cur->eventmask;
-
-       /* OK, now we know which bits we can clear out. */
-       if (!(eventmask & EV_READ)) {
-               FD_CLR(del->fd, &ctx->rdNext);
-               if (FD_ISSET(del->fd, &ctx->rdLast)) {
-                       FD_CLR(del->fd, &ctx->rdLast);
-                       ctx->fdCount--;
-               }
-       }
-       if (!(eventmask & EV_WRITE)) {
-               FD_CLR(del->fd, &ctx->wrNext);
-               if (FD_ISSET(del->fd, &ctx->wrLast)) {
-                       FD_CLR(del->fd, &ctx->wrLast);
-                       ctx->fdCount--;
-               }
-       }
-       if (!(eventmask & EV_EXCEPT)) {
-               FD_CLR(del->fd, &ctx->exNext);
-               if (FD_ISSET(del->fd, &ctx->exLast)) {
-                       FD_CLR(del->fd, &ctx->exLast);
-                       ctx->fdCount--;
-               }
-       }
-
-       /* If this was the maxFD, find the new one. */
-       if (del->fd == ctx->fdMax) {
-               ctx->fdMax = -1;
-               for (cur = ctx->files; cur; cur = cur->next)
-                       if (cur->fd > ctx->fdMax)
-                               ctx->fdMax = cur->fd;
-       }
-
-       /* If this was the fdNext, cycle that to the next entry. */
-       if (del == ctx->fdNext)
-               ctx->fdNext = del->next;
-
-       /* Couldn't free it before now since we were using fields out of it. */
-       FREE(del);
-
-       return (0);
-}
-
-static evFile *
-FindFD(const evContext_p *ctx, int fd, int eventmask) {
-       evFile *id;
-
-       for (id = ctx->fdTable[fd]; id != NULL; id = id->fdnext)
-               if (id->fd == fd && (id->eventmask & eventmask) != 0)
-                       break;
-       return (id);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ev_streams.c b/lib/bind/isc/ev_streams.c
deleted file mode 100644 (file)
index 5dad36d..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* ev_streams.c - implement asynch stream file IO for the eventlib
- * vix 04mar96 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: ev_streams.c,v 1.5 2005/04/27 04:56:36 sra Exp $";
-#endif
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/uio.h>
-
-#include <errno.h>
-
-#include <isc/eventlib.h>
-#include <isc/assertions.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-static int     copyvec(evStream *str, const struct iovec *iov, int iocnt);
-static void    consume(evStream *str, size_t bytes);
-static void    done(evContext opaqueCtx, evStream *str);
-static void    writable(evContext opaqueCtx, void *uap, int fd, int evmask);
-static void    readable(evContext opaqueCtx, void *uap, int fd, int evmask);
-
-struct iovec
-evConsIovec(void *buf, size_t cnt) {
-       struct iovec ret;
-
-       memset(&ret, 0xf5, sizeof ret);
-       ret.iov_base = buf;
-       ret.iov_len = cnt;
-       return (ret);
-}
-
-int
-evWrite(evContext opaqueCtx, int fd, const struct iovec *iov, int iocnt,
-       evStreamFunc func, void *uap, evStreamID *id)
-{
-       evContext_p *ctx = opaqueCtx.opaque;
-       evStream *new;
-       int save;
-
-       OKNEW(new);
-       new->func = func;
-       new->uap = uap;
-       new->fd = fd;
-       new->flags = 0;
-       if (evSelectFD(opaqueCtx, fd, EV_WRITE, writable, new, &new->file) < 0)
-               goto free;
-       if (copyvec(new, iov, iocnt) < 0)
-               goto free;
-       new->prevDone = NULL;
-       new->nextDone = NULL;
-       if (ctx->streams != NULL)
-               ctx->streams->prev = new;
-       new->prev = NULL;
-       new->next = ctx->streams;
-       ctx->streams = new;
-       if (id != NULL)
-               id->opaque = new;
-       return (0);
- free:
-       save = errno;
-       FREE(new);
-       errno = save;
-       return (-1);
-}
-
-int
-evRead(evContext opaqueCtx, int fd, const struct iovec *iov, int iocnt,
-       evStreamFunc func, void *uap, evStreamID *id)
-{
-       evContext_p *ctx = opaqueCtx.opaque;
-       evStream *new;
-       int save;
-
-       OKNEW(new);
-       new->func = func;
-       new->uap = uap;
-       new->fd = fd;
-       new->flags = 0;
-       if (evSelectFD(opaqueCtx, fd, EV_READ, readable, new, &new->file) < 0)
-               goto free;
-       if (copyvec(new, iov, iocnt) < 0)
-               goto free;
-       new->prevDone = NULL;
-       new->nextDone = NULL;
-       if (ctx->streams != NULL)
-               ctx->streams->prev = new;
-       new->prev = NULL;
-       new->next = ctx->streams;
-       ctx->streams = new;
-       if (id)
-               id->opaque = new;
-       return (0);
- free:
-       save = errno;
-       FREE(new);
-       errno = save;
-       return (-1);
-}
-
-int
-evTimeRW(evContext opaqueCtx, evStreamID id, evTimerID timer) /*ARGSUSED*/ {
-       evStream *str = id.opaque;
-
-       UNUSED(opaqueCtx);
-
-       str->timer = timer;
-       str->flags |= EV_STR_TIMEROK;
-       return (0);
-}
-
-int
-evUntimeRW(evContext opaqueCtx, evStreamID id) /*ARGSUSED*/ {
-       evStream *str = id.opaque;
-
-       UNUSED(opaqueCtx);
-
-       str->flags &= ~EV_STR_TIMEROK;
-       return (0);
-}
-
-int
-evCancelRW(evContext opaqueCtx, evStreamID id) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evStream *old = id.opaque;
-
-       /*
-        * The streams list is doubly threaded.  First, there's ctx->streams
-        * that's used by evDestroy() to find and cancel all streams.  Second,
-        * there's ctx->strDone (head) and ctx->strLast (tail) which thread
-        * through the potentially smaller number of "IO completed" streams,
-        * used in evGetNext() to avoid scanning the entire list.
-        */
-
-       /* Unlink from ctx->streams. */
-       if (old->prev != NULL)
-               old->prev->next = old->next;
-       else
-               ctx->streams = old->next;
-       if (old->next != NULL)
-               old->next->prev = old->prev;
-
-       /*
-        * If 'old' is on the ctx->strDone list, remove it.  Update
-        * ctx->strLast if necessary.
-        */
-       if (old->prevDone == NULL && old->nextDone == NULL) {
-               /*
-                * Either 'old' is the only item on the done list, or it's
-                * not on the done list.  If the former, then we unlink it
-                * from the list.  If the latter, we leave the list alone.
-                */
-               if (ctx->strDone == old) {
-                       ctx->strDone = NULL;
-                       ctx->strLast = NULL;
-               }
-       } else {
-               if (old->prevDone != NULL)
-                       old->prevDone->nextDone = old->nextDone;
-               else
-                       ctx->strDone = old->nextDone;
-               if (old->nextDone != NULL)
-                       old->nextDone->prevDone = old->prevDone;
-               else
-                       ctx->strLast = old->prevDone;
-       }
-
-       /* Deallocate the stream. */
-       if (old->file.opaque)
-               evDeselectFD(opaqueCtx, old->file);
-       memput(old->iovOrig, sizeof (struct iovec) * old->iovOrigCount);
-       FREE(old);
-       return (0);
-}
-
-/* Copy a scatter/gather vector and initialize a stream handler's IO. */
-static int
-copyvec(evStream *str, const struct iovec *iov, int iocnt) {
-       int i;
-
-       str->iovOrig = (struct iovec *)memget(sizeof(struct iovec) * iocnt);
-       if (str->iovOrig == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       str->ioTotal = 0;
-       for (i = 0; i < iocnt; i++) {
-               str->iovOrig[i] = iov[i];
-               str->ioTotal += iov[i].iov_len;
-       }
-       str->iovOrigCount = iocnt;
-       str->iovCur = str->iovOrig;
-       str->iovCurCount = str->iovOrigCount;
-       str->ioDone = 0;
-       return (0);
-}
-
-/* Pull off or truncate lead iovec(s). */
-static void
-consume(evStream *str, size_t bytes) {
-       while (bytes > 0U) {
-               if (bytes < (size_t)str->iovCur->iov_len) {
-                       str->iovCur->iov_len -= bytes;
-                       str->iovCur->iov_base = (void *)
-                               ((u_char *)str->iovCur->iov_base + bytes);
-                       str->ioDone += bytes;
-                       bytes = 0;
-               } else {
-                       bytes -= str->iovCur->iov_len;
-                       str->ioDone += str->iovCur->iov_len;
-                       str->iovCur++;
-                       str->iovCurCount--;
-               }
-       }
-}
-
-/* Add a stream to Done list and deselect the FD. */
-static void
-done(evContext opaqueCtx, evStream *str) {
-       evContext_p *ctx = opaqueCtx.opaque;
-
-       if (ctx->strLast != NULL) {
-               str->prevDone = ctx->strLast;
-               ctx->strLast->nextDone = str;
-               ctx->strLast = str;
-       } else {
-               INSIST(ctx->strDone == NULL);
-               ctx->strDone = ctx->strLast = str;
-       }
-       evDeselectFD(opaqueCtx, str->file);
-       str->file.opaque = NULL;
-       /* evDrop() will call evCancelRW() on us. */
-}
-
-/* Dribble out some bytes on the stream.  (Called by evDispatch().) */
-static void
-writable(evContext opaqueCtx, void *uap, int fd, int evmask) {
-       evStream *str = uap;
-       int bytes;
-
-       UNUSED(evmask);
-
-       bytes = writev(fd, str->iovCur, str->iovCurCount);
-       if (bytes > 0) {
-               if ((str->flags & EV_STR_TIMEROK) != 0)
-                       evTouchIdleTimer(opaqueCtx, str->timer);
-               consume(str, bytes);
-       } else {
-               if (bytes < 0 && errno != EINTR) {
-                       str->ioDone = -1;
-                       str->ioErrno = errno;
-               }
-       }
-       if (str->ioDone == -1 || str->ioDone == str->ioTotal)
-               done(opaqueCtx, str);
-}
-
-/* Scoop up some bytes from the stream.  (Called by evDispatch().) */
-static void
-readable(evContext opaqueCtx, void *uap, int fd, int evmask) {
-       evStream *str = uap;
-       int bytes;
-
-       UNUSED(evmask);
-
-       bytes = readv(fd, str->iovCur, str->iovCurCount);
-       if (bytes > 0) {
-               if ((str->flags & EV_STR_TIMEROK) != 0)
-                       evTouchIdleTimer(opaqueCtx, str->timer);
-               consume(str, bytes);
-       } else {
-               if (bytes == 0)
-                       str->ioDone = 0;
-               else {
-                       if (errno != EINTR) {
-                               str->ioDone = -1;
-                               str->ioErrno = errno;
-                       }
-               }
-       }
-       if (str->ioDone <= 0 || str->ioDone == str->ioTotal)
-               done(opaqueCtx, str);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ev_timers.c b/lib/bind/isc/ev_timers.c
deleted file mode 100644 (file)
index 12ac2ce..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* ev_timers.c - implement timers for the eventlib
- * vix 09sep95 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: ev_timers.c,v 1.6 2005/04/27 04:56:36 sra Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <errno.h>
-
-#include <isc/assertions.h>
-#include <isc/eventlib.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-/* Constants. */
-
-#define        MILLION 1000000
-#define BILLION 1000000000
-
-/* Forward. */
-
-static int due_sooner(void *, void *);
-static void set_index(void *, int);
-static void free_timer(void *, void *);
-static void print_timer(void *, void *);
-static void idle_timeout(evContext, void *, struct timespec, struct timespec);
-
-/* Private type. */
-
-typedef struct {
-       evTimerFunc     func;
-       void *          uap;
-       struct timespec lastTouched;
-       struct timespec max_idle;
-       evTimer *       timer;
-} idle_timer;
-
-/* Public. */
-
-struct timespec
-evConsTime(time_t sec, long nsec) {
-       struct timespec x;
-
-       x.tv_sec = sec;
-       x.tv_nsec = nsec;
-       return (x);
-}
-
-struct timespec
-evAddTime(struct timespec addend1, struct timespec addend2) {
-       struct timespec x;
-
-       x.tv_sec = addend1.tv_sec + addend2.tv_sec;
-       x.tv_nsec = addend1.tv_nsec + addend2.tv_nsec;
-       if (x.tv_nsec >= BILLION) {
-               x.tv_sec++;
-               x.tv_nsec -= BILLION;
-       }
-       return (x);
-}
-
-struct timespec
-evSubTime(struct timespec minuend, struct timespec subtrahend) {
-       struct timespec x;
-
-       x.tv_sec = minuend.tv_sec - subtrahend.tv_sec;
-       if (minuend.tv_nsec >= subtrahend.tv_nsec)
-               x.tv_nsec = minuend.tv_nsec - subtrahend.tv_nsec;
-       else {
-               x.tv_nsec = BILLION - subtrahend.tv_nsec + minuend.tv_nsec;
-               x.tv_sec--;
-       }
-       return (x);
-}
-
-int
-evCmpTime(struct timespec a, struct timespec b) {
-       long x = a.tv_sec - b.tv_sec;
-
-       if (x == 0L)
-               x = a.tv_nsec - b.tv_nsec;
-       return (x < 0L ? (-1) : x > 0L ? (1) : (0));
-}
-
-struct timespec
-evNowTime() {
-       struct timeval now;
-#ifdef CLOCK_REALTIME
-       struct timespec tsnow;
-       int m = CLOCK_REALTIME;
-
-#ifdef CLOCK_MONOTONIC
-       if (__evOptMonoTime)
-               m = CLOCK_MONOTONIC;
-#endif
-       if (clock_gettime(m, &tsnow) == 0)
-               return (tsnow);
-#endif
-       if (gettimeofday(&now, NULL) < 0)
-               return (evConsTime(0, 0));
-       return (evTimeSpec(now));
-}
-
-struct timespec
-evUTCTime() {
-       struct timeval now;
-#ifdef CLOCK_REALTIME
-       struct timespec tsnow;
-       if (clock_gettime(CLOCK_REALTIME, &tsnow) == 0)
-               return (tsnow);
-#endif
-       if (gettimeofday(&now, NULL) < 0)
-               return (evConsTime(0, 0));
-       return (evTimeSpec(now));
-}
-
-struct timespec
-evLastEventTime(evContext opaqueCtx) {
-       evContext_p *ctx = opaqueCtx.opaque;
-
-       return (ctx->lastEventTime);
-}
-
-struct timespec
-evTimeSpec(struct timeval tv) {
-       struct timespec ts;
-
-       ts.tv_sec = tv.tv_sec;
-       ts.tv_nsec = tv.tv_usec * 1000;
-       return (ts);
-}
-
-struct timeval
-evTimeVal(struct timespec ts) {
-       struct timeval tv;
-
-       tv.tv_sec = ts.tv_sec;
-       tv.tv_usec = ts.tv_nsec / 1000;
-       return (tv);
-}
-
-int
-evSetTimer(evContext opaqueCtx,
-          evTimerFunc func,
-          void *uap,
-          struct timespec due,
-          struct timespec inter,
-          evTimerID *opaqueID
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *id;
-
-       evPrintf(ctx, 1,
-"evSetTimer(ctx %p, func %p, uap %p, due %ld.%09ld, inter %ld.%09ld)\n",
-                ctx, func, uap,
-                (long)due.tv_sec, due.tv_nsec,
-                (long)inter.tv_sec, inter.tv_nsec);
-
-#ifdef __hpux
-       /*
-        * tv_sec and tv_nsec are unsigned.
-        */
-       if (due.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-
-       if (inter.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-#else
-       if (due.tv_sec < 0 || due.tv_nsec < 0 || due.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-
-       if (inter.tv_sec < 0 || inter.tv_nsec < 0 || inter.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-#endif
-
-       /* due={0,0} is a magic cookie meaning "now." */
-       if (due.tv_sec == (time_t)0 && due.tv_nsec == 0L)
-               due = evNowTime();
-
-       /* Allocate and fill. */
-       OKNEW(id);
-       id->func = func;
-       id->uap = uap;
-       id->due = due;
-       id->inter = inter;
-
-       if (heap_insert(ctx->timers, id) < 0)
-               return (-1);
-
-       /* Remember the ID if the caller provided us a place for it. */
-       if (opaqueID)
-               opaqueID->opaque = id;
-
-       if (ctx->debug > 7) {
-               evPrintf(ctx, 7, "timers after evSetTimer:\n");
-               (void) heap_for_each(ctx->timers, print_timer, (void *)ctx);
-       }
-
-       return (0);
-}
-
-int
-evClearTimer(evContext opaqueCtx, evTimerID id) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *del = id.opaque;
-
-       if (ctx->cur != NULL &&
-           ctx->cur->type == Timer &&
-           ctx->cur->u.timer.this == del) {
-               evPrintf(ctx, 8, "deferring delete of timer (executing)\n");
-               /*
-                * Setting the interval to zero ensures that evDrop() will
-                * clean up the timer.
-                */
-               del->inter = evConsTime(0, 0);
-               return (0);
-       }
-
-       if (heap_element(ctx->timers, del->index) != del)
-               EV_ERR(ENOENT);
-
-       if (heap_delete(ctx->timers, del->index) < 0)
-               return (-1);
-       FREE(del);
-
-       if (ctx->debug > 7) {
-               evPrintf(ctx, 7, "timers after evClearTimer:\n");
-               (void) heap_for_each(ctx->timers, print_timer, (void *)ctx);
-       }
-
-       return (0);
-}
-
-int
-evConfigTimer(evContext opaqueCtx,
-            evTimerID id,
-            const char *param,
-            int value
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *timer = id.opaque;
-       int result=0;
-
-       UNUSED(value);
-
-       if (heap_element(ctx->timers, timer->index) != timer)
-               EV_ERR(ENOENT);
-
-       if (strcmp(param, "rate") == 0)
-               timer->mode |= EV_TMR_RATE;
-       else if (strcmp(param, "interval") == 0)
-               timer->mode &= ~EV_TMR_RATE;
-       else
-               EV_ERR(EINVAL);
-
-       return (result);
-}
-
-int
-evResetTimer(evContext opaqueCtx,
-            evTimerID id,
-            evTimerFunc func,
-            void *uap,
-            struct timespec due,
-            struct timespec inter
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *timer = id.opaque;
-       struct timespec old_due;
-       int result=0;
-
-       if (heap_element(ctx->timers, timer->index) != timer)
-               EV_ERR(ENOENT);
-
-#ifdef __hpux
-       /*
-        * tv_sec and tv_nsec are unsigned.
-        */
-       if (due.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-
-       if (inter.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-#else
-       if (due.tv_sec < 0 || due.tv_nsec < 0 || due.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-
-       if (inter.tv_sec < 0 || inter.tv_nsec < 0 || inter.tv_nsec >= BILLION)
-               EV_ERR(EINVAL);
-#endif
-
-       old_due = timer->due;
-
-       timer->func = func;
-       timer->uap = uap;
-       timer->due = due;
-       timer->inter = inter;
-
-       switch (evCmpTime(due, old_due)) {
-       case -1:
-               result = heap_increased(ctx->timers, timer->index);
-               break;
-       case 0:
-               result = 0;
-               break;
-       case 1:
-               result = heap_decreased(ctx->timers, timer->index);
-               break;
-       }
-
-       if (ctx->debug > 7) {
-               evPrintf(ctx, 7, "timers after evResetTimer:\n");
-               (void) heap_for_each(ctx->timers, print_timer, (void *)ctx);
-       }
-
-       return (result);
-}
-
-int
-evSetIdleTimer(evContext opaqueCtx,
-               evTimerFunc func,
-               void *uap,
-               struct timespec max_idle,
-               evTimerID *opaqueID
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       idle_timer *tt;
-
-       /* Allocate and fill. */
-       OKNEW(tt);
-       tt->func = func;
-       tt->uap = uap;
-       tt->lastTouched = ctx->lastEventTime;
-       tt->max_idle = max_idle;
-
-       if (evSetTimer(opaqueCtx, idle_timeout, tt,
-                      evAddTime(ctx->lastEventTime, max_idle),
-                      max_idle, opaqueID) < 0) {
-               FREE(tt);
-               return (-1);
-       }
-
-       tt->timer = opaqueID->opaque;
-
-       return (0);
-}
-
-int
-evClearIdleTimer(evContext opaqueCtx, evTimerID id) {
-       evTimer *del = id.opaque;
-       idle_timer *tt = del->uap;
-
-       FREE(tt);
-       return (evClearTimer(opaqueCtx, id));
-}
-
-int
-evResetIdleTimer(evContext opaqueCtx,
-                evTimerID opaqueID,
-                evTimerFunc func,
-                void *uap,
-                struct timespec max_idle
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *timer = opaqueID.opaque;
-       idle_timer *tt = timer->uap;
-
-       tt->func = func;
-       tt->uap = uap;
-       tt->lastTouched = ctx->lastEventTime;
-       tt->max_idle = max_idle;
-
-       return (evResetTimer(opaqueCtx, opaqueID, idle_timeout, tt,
-                            evAddTime(ctx->lastEventTime, max_idle),
-                            max_idle));
-}
-
-int
-evTouchIdleTimer(evContext opaqueCtx, evTimerID id) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evTimer *t = id.opaque;
-       idle_timer *tt = t->uap;
-
-       tt->lastTouched = ctx->lastEventTime;
-
-       return (0);
-}
-
-/* Public to the rest of eventlib. */
-
-heap_context
-evCreateTimers(const evContext_p *ctx) {
-
-       UNUSED(ctx);
-
-       return (heap_new(due_sooner, set_index, 2048));
-}
-
-void
-evDestroyTimers(const evContext_p *ctx) {
-       (void) heap_for_each(ctx->timers, free_timer, NULL);
-       (void) heap_free(ctx->timers);
-}
-
-/* Private. */
-
-static int
-due_sooner(void *a, void *b) {
-       evTimer *a_timer, *b_timer;
-
-       a_timer = a;
-       b_timer = b;
-       return (evCmpTime(a_timer->due, b_timer->due) < 0);
-}
-
-static void
-set_index(void *what, int index) {
-       evTimer *timer;
-
-       timer = what;
-       timer->index = index;
-}
-
-static void
-free_timer(void *what, void *uap) {
-       evTimer *t = what;
-
-       UNUSED(uap);
-
-       FREE(t);
-}
-
-static void
-print_timer(void *what, void *uap) {
-       evTimer *cur = what;
-       evContext_p *ctx = uap;
-
-       cur = what;
-       evPrintf(ctx, 7,
-           "  func %p, uap %p, due %ld.%09ld, inter %ld.%09ld\n",
-                cur->func, cur->uap,
-                (long)cur->due.tv_sec, cur->due.tv_nsec,
-                (long)cur->inter.tv_sec, cur->inter.tv_nsec);
-}
-
-static void
-idle_timeout(evContext opaqueCtx,
-            void *uap,
-            struct timespec due,
-            struct timespec inter
-) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       idle_timer *this = uap;
-       struct timespec idle;
-
-       UNUSED(due);
-       UNUSED(inter);
-       
-       idle = evSubTime(ctx->lastEventTime, this->lastTouched);
-       if (evCmpTime(idle, this->max_idle) >= 0) {
-               (this->func)(opaqueCtx, this->uap, this->timer->due,
-                            this->max_idle);
-               /*
-                * Setting the interval to zero will cause the timer to
-                * be cleaned up in evDrop().
-                */
-               this->timer->inter = evConsTime(0, 0);
-               FREE(this);
-       } else {
-               /* evDrop() will reschedule the timer. */
-               this->timer->inter = evSubTime(this->max_idle, idle);
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/isc/ev_waits.c b/lib/bind/isc/ev_waits.c
deleted file mode 100644 (file)
index 99da152..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* ev_waits.c - implement deferred function calls for the eventlib
- * vix 05dec95 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: ev_waits.c,v 1.4 2005/04/27 04:56:36 sra Exp $";
-#endif
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <errno.h>
-
-#include <isc/eventlib.h>
-#include <isc/assertions.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-/* Forward. */
-
-static void            print_waits(evContext_p *ctx);
-static evWaitList *    evNewWaitList(evContext_p *);
-static void            evFreeWaitList(evContext_p *, evWaitList *);
-static evWaitList *    evGetWaitList(evContext_p *, const void *, int);
-
-
-/* Public. */
-
-/*%
- * Enter a new wait function on the queue.
- */
-int
-evWaitFor(evContext opaqueCtx, const void *tag,
-         evWaitFunc func, void *uap, evWaitID *id)
-{
-       evContext_p *ctx = opaqueCtx.opaque;
-       evWait *new;
-       evWaitList *wl = evGetWaitList(ctx, tag, 1);
-
-       OKNEW(new);
-       new->func = func;
-       new->uap = uap;
-       new->tag = tag;
-       new->next = NULL;
-       if (wl->last != NULL)
-               wl->last->next = new;
-       else
-               wl->first = new;
-       wl->last = new;
-       if (id != NULL)
-               id->opaque = new;
-       if (ctx->debug >= 9)
-               print_waits(ctx);
-       return (0);
-}
-
-/*%
- * Mark runnable all waiting functions having a certain tag.
- */
-int
-evDo(evContext opaqueCtx, const void *tag) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evWaitList *wl = evGetWaitList(ctx, tag, 0);
-       evWait *first;
-
-       if (!wl) {
-               errno = ENOENT;
-               return (-1);
-       }
-
-       first = wl->first;
-       INSIST(first != NULL);
-
-       if (ctx->waitDone.last != NULL)
-               ctx->waitDone.last->next = first;
-       else
-               ctx->waitDone.first = first;
-       ctx->waitDone.last = wl->last;
-       evFreeWaitList(ctx, wl);
-
-       return (0);
-}
-
-/*%
- * Remove a waiting (or ready to run) function from the queue.
- */
-int
-evUnwait(evContext opaqueCtx, evWaitID id) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evWait *this, *prev;
-       evWaitList *wl;
-       int found = 0;
-
-       this = id.opaque;
-       INSIST(this != NULL);
-       wl = evGetWaitList(ctx, this->tag, 0);
-       if (wl != NULL) {
-               for (prev = NULL, this = wl->first;
-                    this != NULL;
-                    prev = this, this = this->next)
-                       if (this == (evWait *)id.opaque) {
-                               found = 1;
-                               if (prev != NULL)
-                                       prev->next = this->next;
-                               else
-                                       wl->first = this->next;
-                               if (wl->last == this)
-                                       wl->last = prev;
-                               if (wl->first == NULL)
-                                       evFreeWaitList(ctx, wl);
-                               break;
-                       }
-       }
-
-       if (!found) {
-               /* Maybe it's done */
-               for (prev = NULL, this = ctx->waitDone.first;
-                    this != NULL;
-                    prev = this, this = this->next)
-                       if (this == (evWait *)id.opaque) {
-                               found = 1;
-                               if (prev != NULL)
-                                       prev->next = this->next;
-                               else
-                                       ctx->waitDone.first = this->next;
-                               if (ctx->waitDone.last == this)
-                                       ctx->waitDone.last = prev;
-                               break;
-                       }
-       }
-
-       if (!found) {
-               errno = ENOENT;
-               return (-1);
-       }
-
-       FREE(this);
-
-       if (ctx->debug >= 9)
-               print_waits(ctx);
-
-       return (0);
-}
-
-int
-evDefer(evContext opaqueCtx, evWaitFunc func, void *uap) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evWait *new;
-
-       OKNEW(new);
-       new->func = func;
-       new->uap = uap;
-       new->tag = NULL;
-       new->next = NULL;
-       if (ctx->waitDone.last != NULL)
-               ctx->waitDone.last->next = new;
-       else
-               ctx->waitDone.first = new;
-       ctx->waitDone.last = new;
-       if (ctx->debug >= 9)
-               print_waits(ctx);
-       return (0);
-}
-
-/* Private. */
-
-static void
-print_waits(evContext_p *ctx) {
-       evWaitList *wl;
-       evWait *this;
-
-       evPrintf(ctx, 9, "wait waiting:\n");
-       for (wl = ctx->waitLists; wl != NULL; wl = wl->next) {
-               INSIST(wl->first != NULL);
-               evPrintf(ctx, 9, "  tag %p:", wl->first->tag);
-               for (this = wl->first; this != NULL; this = this->next)
-                       evPrintf(ctx, 9, " %p", this);
-               evPrintf(ctx, 9, "\n");
-       }
-       evPrintf(ctx, 9, "wait done:");
-       for (this = ctx->waitDone.first; this != NULL; this = this->next)
-               evPrintf(ctx, 9, " %p", this);
-       evPrintf(ctx, 9, "\n");
-}
-
-static evWaitList *
-evNewWaitList(evContext_p *ctx) {
-       evWaitList *new;
-
-       NEW(new);
-       if (new == NULL)
-               return (NULL);
-       new->first = new->last = NULL;
-       new->prev = NULL;
-       new->next = ctx->waitLists;
-       if (new->next != NULL)
-               new->next->prev = new;
-       ctx->waitLists = new;
-       return (new);
-}
-
-static void
-evFreeWaitList(evContext_p *ctx, evWaitList *this) {
-
-       INSIST(this != NULL);
-
-       if (this->prev != NULL)
-               this->prev->next = this->next;
-       else
-               ctx->waitLists = this->next;
-       if (this->next != NULL)
-               this->next->prev = this->prev;
-       FREE(this);
-}
-
-static evWaitList *
-evGetWaitList(evContext_p *ctx, const void *tag, int should_create) {
-       evWaitList *this;
-
-       for (this = ctx->waitLists; this != NULL; this = this->next) {
-               if (this->first != NULL && this->first->tag == tag)
-                       break;
-       }
-       if (this == NULL && should_create)
-               this = evNewWaitList(ctx);
-       return (this);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/eventlib.c b/lib/bind/isc/eventlib.c
deleted file mode 100644 (file)
index be4a784..0000000
+++ /dev/null
@@ -1,933 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* eventlib.c - implement glue for the eventlib
- * vix 09sep95 [initial]
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: eventlib.c,v 1.10 2006/03/09 23:57:56 marka Exp $";
-#endif
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#ifdef SOLARIS2
-#include <limits.h>
-#endif /* SOLARIS2 */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <isc/eventlib.h>
-#include <isc/assertions.h>
-#include "eventlib_p.h"
-
-#include "port_after.h"
-
-int      __evOptMonoTime;
-
-#ifdef USE_POLL
-#define        pselect Pselect
-#endif /* USE_POLL */
-
-/* Forward. */
-
-#if defined(NEED_PSELECT) || defined(USE_POLL)
-static int             pselect(int, void *, void *, void *,
-                               struct timespec *,
-                               const sigset_t *);
-#endif
-
-int    __evOptMonoTime;
-
-/* Public. */
-
-int
-evCreate(evContext *opaqueCtx) {
-       evContext_p *ctx;
-
-       /* Make sure the memory heap is initialized. */
-       if (meminit(0, 0) < 0 && errno != EEXIST)
-               return (-1);
-
-       OKNEW(ctx);
-
-       /* Global. */
-       ctx->cur = NULL;
-
-       /* Debugging. */
-       ctx->debug = 0;
-       ctx->output = NULL;
-
-       /* Connections. */
-       ctx->conns = NULL;
-       INIT_LIST(ctx->accepts);
-
-       /* Files. */
-       ctx->files = NULL;
-#ifdef USE_POLL
-        ctx->pollfds = NULL;
-       ctx->maxnfds = 0;
-       ctx->firstfd = 0;
-       emulMaskInit(ctx, rdLast, EV_READ, 1);
-       emulMaskInit(ctx, rdNext, EV_READ, 0);
-       emulMaskInit(ctx, wrLast, EV_WRITE, 1);
-       emulMaskInit(ctx, wrNext, EV_WRITE, 0);
-       emulMaskInit(ctx, exLast, EV_EXCEPT, 1);
-       emulMaskInit(ctx, exNext, EV_EXCEPT, 0);
-       emulMaskInit(ctx, nonblockBefore, EV_WASNONBLOCKING, 0);
-#endif /* USE_POLL */
-       FD_ZERO(&ctx->rdNext);
-       FD_ZERO(&ctx->wrNext);
-       FD_ZERO(&ctx->exNext);
-       FD_ZERO(&ctx->nonblockBefore);
-       ctx->fdMax = -1;
-       ctx->fdNext = NULL;
-       ctx->fdCount = 0;       /*%< Invalidate {rd,wr,ex}Last. */
-#ifndef USE_POLL
-       ctx->highestFD = FD_SETSIZE - 1;
-       memset(ctx->fdTable, 0, sizeof ctx->fdTable);
-#else   
-       ctx->highestFD = INT_MAX / sizeof(struct pollfd);
-       ctx->fdTable = NULL;
-#endif /* USE_POLL */
-#ifdef EVENTLIB_TIME_CHECKS
-       ctx->lastFdCount = 0;
-#endif
-
-       /* Streams. */
-       ctx->streams = NULL;
-       ctx->strDone = NULL;
-       ctx->strLast = NULL;
-
-       /* Timers. */
-       ctx->lastEventTime = evNowTime();
-#ifdef EVENTLIB_TIME_CHECKS
-       ctx->lastSelectTime = ctx->lastEventTime;
-#endif
-       ctx->timers = evCreateTimers(ctx);
-       if (ctx->timers == NULL)
-               return (-1);
-
-       /* Waits. */
-       ctx->waitLists = NULL;
-       ctx->waitDone.first = ctx->waitDone.last = NULL;
-       ctx->waitDone.prev = ctx->waitDone.next = NULL;
-
-       opaqueCtx->opaque = ctx;
-       return (0);
-}
-
-void
-evSetDebug(evContext opaqueCtx, int level, FILE *output) {
-       evContext_p *ctx = opaqueCtx.opaque;
-
-       ctx->debug = level;
-       ctx->output = output;
-}
-
-int
-evDestroy(evContext opaqueCtx) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       int revs = 424242;      /*%< Doug Adams. */
-       evWaitList *this_wl, *next_wl;
-       evWait *this_wait, *next_wait;
-
-       /* Connections. */
-       while (revs-- > 0 && ctx->conns != NULL) {
-               evConnID id;
-
-               id.opaque = ctx->conns;
-               (void) evCancelConn(opaqueCtx, id);
-       }
-       INSIST(revs >= 0);
-
-       /* Streams. */
-       while (revs-- > 0 && ctx->streams != NULL) {
-               evStreamID id;
-
-               id.opaque = ctx->streams;
-               (void) evCancelRW(opaqueCtx, id);
-       }
-
-       /* Files. */
-       while (revs-- > 0 && ctx->files != NULL) {
-               evFileID id;
-
-               id.opaque = ctx->files;
-               (void) evDeselectFD(opaqueCtx, id);
-       }
-       INSIST(revs >= 0);
-
-       /* Timers. */
-       evDestroyTimers(ctx);
-
-       /* Waits. */
-       for (this_wl = ctx->waitLists;
-            revs-- > 0 && this_wl != NULL;
-            this_wl = next_wl) {
-               next_wl = this_wl->next;
-               for (this_wait = this_wl->first;
-                    revs-- > 0 && this_wait != NULL;
-                    this_wait = next_wait) {
-                       next_wait = this_wait->next;
-                       FREE(this_wait);
-               }
-               FREE(this_wl);
-       }
-       for (this_wait = ctx->waitDone.first;
-            revs-- > 0 && this_wait != NULL;
-            this_wait = next_wait) {
-               next_wait = this_wait->next;
-               FREE(this_wait);
-       }
-
-       FREE(ctx);
-       return (0);
-}
-
-int
-evGetNext(evContext opaqueCtx, evEvent *opaqueEv, int options) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       struct timespec nextTime;
-       evTimer *nextTimer;
-       evEvent_p *new;
-       int x, pselect_errno, timerPast;
-#ifdef EVENTLIB_TIME_CHECKS
-       struct timespec interval;
-#endif
-
-       /* Ensure that exactly one of EV_POLL or EV_WAIT was specified. */
-       x = ((options & EV_POLL) != 0) + ((options & EV_WAIT) != 0);
-       if (x != 1)
-               EV_ERR(EINVAL);
-
-       /* Get the time of day.  We'll do this again after select() blocks. */
-       ctx->lastEventTime = evNowTime();
-
- again:
-       /* Finished accept()'s do not require a select(). */
-       if (!EMPTY(ctx->accepts)) {
-               OKNEW(new);
-               new->type = Accept;
-               new->u.accept.this = HEAD(ctx->accepts);
-               UNLINK(ctx->accepts, HEAD(ctx->accepts), link);
-               opaqueEv->opaque = new;
-               return (0);
-       }
-
-       /* Stream IO does not require a select(). */
-       if (ctx->strDone != NULL) {
-               OKNEW(new);
-               new->type = Stream;
-               new->u.stream.this = ctx->strDone;
-               ctx->strDone = ctx->strDone->nextDone;
-               if (ctx->strDone == NULL)
-                       ctx->strLast = NULL;
-               opaqueEv->opaque = new;
-               return (0);
-       }
-
-       /* Waits do not require a select(). */
-       if (ctx->waitDone.first != NULL) {
-               OKNEW(new);
-               new->type = Wait;
-               new->u.wait.this = ctx->waitDone.first;
-               ctx->waitDone.first = ctx->waitDone.first->next;
-               if (ctx->waitDone.first == NULL)
-                       ctx->waitDone.last = NULL;
-               opaqueEv->opaque = new;
-               return (0);
-       }
-
-       /* Get the status and content of the next timer. */
-       if ((nextTimer = heap_element(ctx->timers, 1)) != NULL) {
-               nextTime = nextTimer->due;
-               timerPast = (evCmpTime(nextTime, ctx->lastEventTime) <= 0);
-       } else
-               timerPast = 0;  /*%< Make gcc happy. */
-       evPrintf(ctx, 9, "evGetNext: fdCount %d\n", ctx->fdCount);
-       if (ctx->fdCount == 0) {
-               static const struct timespec NoTime = {0, 0L};
-               enum { JustPoll, Block, Timer } m;
-               struct timespec t, *tp;
-
-               /* Are there any events at all? */
-               if ((options & EV_WAIT) != 0 && !nextTimer && ctx->fdMax == -1)
-                       EV_ERR(ENOENT);
-
-               /* Figure out what select()'s timeout parameter should be. */
-               if ((options & EV_POLL) != 0) {
-                       m = JustPoll;
-                       t = NoTime;
-                       tp = &t;
-               } else if (nextTimer == NULL) {
-                       m = Block;
-                       /* ``t'' unused. */
-                       tp = NULL;
-               } else if (timerPast) {
-                       m = JustPoll;
-                       t = NoTime;
-                       tp = &t;
-               } else {
-                       m = Timer;
-                       /* ``t'' filled in later. */
-                       tp = &t;
-               }
-#ifdef EVENTLIB_TIME_CHECKS
-               if (ctx->debug > 0) {
-                       interval = evSubTime(ctx->lastEventTime,
-                                            ctx->lastSelectTime);
-                       if (interval.tv_sec > 0 || interval.tv_nsec > 0)
-                               evPrintf(ctx, 1,
-                                  "time between pselect() %u.%09u count %d\n",
-                                        interval.tv_sec, interval.tv_nsec,
-                                        ctx->lastFdCount);
-               }
-#endif
-               do {
-#ifndef USE_POLL
-                        /* XXX need to copy only the bits we are using. */
-                        ctx->rdLast = ctx->rdNext;
-                        ctx->wrLast = ctx->wrNext;
-                        ctx->exLast = ctx->exNext;
-#else
-                       /*
-                        * The pollfd structure uses separate fields for
-                        * the input and output events (corresponding to
-                        * the ??Next and ??Last fd sets), so there's no
-                        * need to copy one to the other.
-                        */
-#endif /* USE_POLL */
-                       if (m == Timer) {
-                               INSIST(tp == &t);
-                               t = evSubTime(nextTime, ctx->lastEventTime);
-                       }
-
-                       /* XXX should predict system's earliness and adjust. */
-                       x = pselect(ctx->fdMax+1,
-                                   &ctx->rdLast, &ctx->wrLast, &ctx->exLast,
-                                   tp, NULL);
-                       pselect_errno = errno;
-
-#ifndef USE_POLL
-                       evPrintf(ctx, 4, "select() returns %d (err: %s)\n",
-                                x, (x == -1) ? strerror(errno) : "none");
-#else
-                       evPrintf(ctx, 4, "poll() returns %d (err: %s)\n",
-                               x, (x == -1) ? strerror(errno) : "none");
-#endif /* USE_POLL */
-                       /* Anything but a poll can change the time. */
-                       if (m != JustPoll)
-                               ctx->lastEventTime = evNowTime();
-
-                       /* Select() likes to finish about 10ms early. */
-               } while (x == 0 && m == Timer &&
-                        evCmpTime(ctx->lastEventTime, nextTime) < 0);
-#ifdef EVENTLIB_TIME_CHECKS
-               ctx->lastSelectTime = ctx->lastEventTime;
-#endif
-               if (x < 0) {
-                       if (pselect_errno == EINTR) {
-                               if ((options & EV_NULL) != 0)
-                                       goto again;
-                               OKNEW(new);
-                               new->type = Null;
-                               /* No data. */
-                               opaqueEv->opaque = new;
-                               return (0);
-                       }
-                       if (pselect_errno == EBADF) {
-                               for (x = 0; x <= ctx->fdMax; x++) {
-                                       struct stat sb;
-
-                                       if (FD_ISSET(x, &ctx->rdNext) == 0 &&
-                                           FD_ISSET(x, &ctx->wrNext) == 0 &&
-                                           FD_ISSET(x, &ctx->exNext) == 0)
-                                               continue;
-                                       if (fstat(x, &sb) == -1 &&
-                                           errno == EBADF)
-                                               evPrintf(ctx, 1, "EBADF: %d\n",
-                                                        x);
-                               }
-                               abort();
-                       }
-                       EV_ERR(pselect_errno);
-               }
-               if (x == 0 && (nextTimer == NULL || !timerPast) &&
-                   (options & EV_POLL))
-                       EV_ERR(EWOULDBLOCK);
-               ctx->fdCount = x;
-#ifdef EVENTLIB_TIME_CHECKS
-               ctx->lastFdCount = x;
-#endif
-       }
-       INSIST(nextTimer || ctx->fdCount);
-
-       /* Timers go first since we'd like them to be accurate. */
-       if (nextTimer && !timerPast) {
-               /* Has anything happened since we blocked? */
-               timerPast = (evCmpTime(nextTime, ctx->lastEventTime) <= 0);
-       }
-       if (nextTimer && timerPast) {
-               OKNEW(new);
-               new->type = Timer;
-               new->u.timer.this = nextTimer;
-               opaqueEv->opaque = new;
-               return (0);
-       }
-
-       /* No timers, so there should be a ready file descriptor. */
-       x = 0;
-       while (ctx->fdCount > 0) {
-               evFile *fid;
-               int fd, eventmask;
-
-               if (ctx->fdNext == NULL) {
-                       if (++x == 2) {
-                               /*
-                                * Hitting the end twice means that the last
-                                * select() found some FD's which have since
-                                * been deselected.
-                                *
-                                * On some systems, the count returned by
-                                * selects is the total number of bits in
-                                * all masks that are set, and on others it's
-                                * the number of fd's that have some bit set,
-                                * and on others, it's just broken.  We 
-                                * always assume that it's the number of
-                                * bits set in all masks, because that's what
-                                * the man page says it should do, and
-                                * the worst that can happen is we do an
-                                * extra select().
-                                */
-                               ctx->fdCount = 0;
-                               break;
-                       }
-                       ctx->fdNext = ctx->files;
-               }
-               fid = ctx->fdNext;
-               ctx->fdNext = fid->next;
-
-               fd = fid->fd;
-               eventmask = 0;
-               if (FD_ISSET(fd, &ctx->rdLast))
-                       eventmask |= EV_READ;
-               if (FD_ISSET(fd, &ctx->wrLast))
-                       eventmask |= EV_WRITE;
-               if (FD_ISSET(fd, &ctx->exLast))
-                       eventmask |= EV_EXCEPT;
-               eventmask &= fid->eventmask;
-               if (eventmask != 0) {
-                       if ((eventmask & EV_READ) != 0) {
-                               FD_CLR(fd, &ctx->rdLast);
-                               ctx->fdCount--;
-                       }
-                       if ((eventmask & EV_WRITE) != 0) {
-                               FD_CLR(fd, &ctx->wrLast);
-                               ctx->fdCount--;
-                       }
-                       if ((eventmask & EV_EXCEPT) != 0) {
-                               FD_CLR(fd, &ctx->exLast);
-                               ctx->fdCount--;
-                       }
-                       OKNEW(new);
-                       new->type = File;
-                       new->u.file.this = fid;
-                       new->u.file.eventmask = eventmask;
-                       opaqueEv->opaque = new;
-                       return (0);
-               }
-       }
-       if (ctx->fdCount < 0) {
-               /*
-                * select()'s count is off on a number of systems, and
-                * can result in fdCount < 0.
-                */
-               evPrintf(ctx, 4, "fdCount < 0 (%d)\n", ctx->fdCount);
-               ctx->fdCount = 0;
-       }
-
-       /* We get here if the caller deselect()'s an FD. Gag me with a goto. */
-       goto again;
-}
-
-int
-evDispatch(evContext opaqueCtx, evEvent opaqueEv) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evEvent_p *ev = opaqueEv.opaque;
-#ifdef EVENTLIB_TIME_CHECKS
-       void *func;
-       struct timespec start_time;
-       struct timespec interval;
-#endif
-
-#ifdef EVENTLIB_TIME_CHECKS
-       if (ctx->debug > 0)
-               start_time = evNowTime();
-#endif
-       ctx->cur = ev;
-       switch (ev->type) {
-           case Accept: {
-               evAccept *this = ev->u.accept.this;
-
-               evPrintf(ctx, 5,
-                       "Dispatch.Accept: fd %d -> %d, func %p, uap %p\n",
-                        this->conn->fd, this->fd,
-                        this->conn->func, this->conn->uap);
-               errno = this->ioErrno;
-               (this->conn->func)(opaqueCtx, this->conn->uap, this->fd,
-                                  &this->la, this->lalen,
-                                  &this->ra, this->ralen);
-#ifdef EVENTLIB_TIME_CHECKS
-               func = this->conn->func;
-#endif
-               break;
-           }
-           case File: {
-               evFile *this = ev->u.file.this;
-               int eventmask = ev->u.file.eventmask;
-
-               evPrintf(ctx, 5,
-                       "Dispatch.File: fd %d, mask 0x%x, func %p, uap %p\n",
-                        this->fd, this->eventmask, this->func, this->uap);
-               (this->func)(opaqueCtx, this->uap, this->fd, eventmask);
-#ifdef EVENTLIB_TIME_CHECKS
-               func = this->func;
-#endif
-               break;
-           }
-           case Stream: {
-               evStream *this = ev->u.stream.this;
-
-               evPrintf(ctx, 5,
-                        "Dispatch.Stream: fd %d, func %p, uap %p\n",
-                        this->fd, this->func, this->uap);
-               errno = this->ioErrno;
-               (this->func)(opaqueCtx, this->uap, this->fd, this->ioDone);
-#ifdef EVENTLIB_TIME_CHECKS
-               func = this->func;
-#endif
-               break;
-           }
-           case Timer: {
-               evTimer *this = ev->u.timer.this;
-
-               evPrintf(ctx, 5, "Dispatch.Timer: func %p, uap %p\n",
-                        this->func, this->uap);
-               (this->func)(opaqueCtx, this->uap, this->due, this->inter);
-#ifdef EVENTLIB_TIME_CHECKS
-               func = this->func;
-#endif
-               break;
-           }
-           case Wait: {
-               evWait *this = ev->u.wait.this;
-
-               evPrintf(ctx, 5,
-                        "Dispatch.Wait: tag %p, func %p, uap %p\n",
-                        this->tag, this->func, this->uap);
-               (this->func)(opaqueCtx, this->uap, this->tag);
-#ifdef EVENTLIB_TIME_CHECKS
-               func = this->func;
-#endif
-               break;
-           }
-           case Null: {
-               /* No work. */
-#ifdef EVENTLIB_TIME_CHECKS
-               func = NULL;
-#endif
-               break;
-           }
-           default: {
-               abort();
-           }
-       }
-#ifdef EVENTLIB_TIME_CHECKS
-       if (ctx->debug > 0) {
-               interval = evSubTime(evNowTime(), start_time);
-               /* 
-                * Complain if it took longer than 50 milliseconds.
-                *
-                * We call getuid() to make an easy to find mark in a kernel
-                * trace.
-                */
-               if (interval.tv_sec > 0 || interval.tv_nsec > 50000000)
-                       evPrintf(ctx, 1,
-                        "dispatch interval %u.%09u uid %d type %d func %p\n",
-                                interval.tv_sec, interval.tv_nsec,
-                                getuid(), ev->type, func);
-       }
-#endif
-       ctx->cur = NULL;
-       evDrop(opaqueCtx, opaqueEv);
-       return (0);
-}
-
-void
-evDrop(evContext opaqueCtx, evEvent opaqueEv) {
-       evContext_p *ctx = opaqueCtx.opaque;
-       evEvent_p *ev = opaqueEv.opaque;
-
-       switch (ev->type) {
-           case Accept: {
-               FREE(ev->u.accept.this);
-               break;
-           }
-           case File: {
-               /* No work. */
-               break;
-           }
-           case Stream: {
-               evStreamID id;
-
-               id.opaque = ev->u.stream.this;
-               (void) evCancelRW(opaqueCtx, id);
-               break;
-           }
-           case Timer: {
-               evTimer *this = ev->u.timer.this;
-               evTimerID opaque;
-
-               /* Check to see whether the user func cleared the timer. */
-               if (heap_element(ctx->timers, this->index) != this) {
-                       evPrintf(ctx, 5, "Dispatch.Timer: timer rm'd?\n");
-                       break;
-               }
-               /*
-                * Timer is still there.  Delete it if it has expired,
-                * otherwise set it according to its next interval.
-                */
-               if (this->inter.tv_sec == (time_t)0 &&
-                   this->inter.tv_nsec == 0L) {
-                       opaque.opaque = this;                   
-                       (void) evClearTimer(opaqueCtx, opaque);
-               } else {
-                       opaque.opaque = this;
-                       (void) evResetTimer(opaqueCtx, opaque, this->func,
-                                           this->uap,
-                                           evAddTime((this->mode & EV_TMR_RATE) ?
-                                                     this->due :
-                                                     ctx->lastEventTime,
-                                                     this->inter),
-                                           this->inter);
-               }
-               break;
-           }
-           case Wait: {
-               FREE(ev->u.wait.this);
-               break;
-           }
-           case Null: {
-               /* No work. */
-               break;
-           }
-           default: {
-               abort();
-           }
-       }
-       FREE(ev);
-}
-
-int
-evMainLoop(evContext opaqueCtx) {
-       evEvent event;
-       int x;
-
-       while ((x = evGetNext(opaqueCtx, &event, EV_WAIT)) == 0)
-               if ((x = evDispatch(opaqueCtx, event)) < 0)
-                       break;
-       return (x);
-}
-
-int
-evHighestFD(evContext opaqueCtx) {
-       evContext_p *ctx = opaqueCtx.opaque;
-
-       return (ctx->highestFD);
-}
-
-void
-evPrintf(const evContext_p *ctx, int level, const char *fmt, ...) {
-       va_list ap;
-
-       va_start(ap, fmt);
-       if (ctx->output != NULL && ctx->debug >= level) {
-               vfprintf(ctx->output, fmt, ap);
-               fflush(ctx->output);
-       }
-       va_end(ap);
-}
-
-int
-evSetOption(evContext *opaqueCtx, const char *option, int value) {
-       /* evContext_p *ctx = opaqueCtx->opaque; */
-
-       UNUSED(opaqueCtx);
-       UNUSED(value);
-#ifndef CLOCK_MONOTONIC
-       UNUSED(option);
-#endif 
-
-#ifdef CLOCK_MONOTONIC
-       if (strcmp(option, "monotime") == 0) {
-               if (opaqueCtx  != NULL)
-                       errno = EINVAL;
-               if (value == 0 || value == 1) {
-                       __evOptMonoTime = value;
-                       return (0);
-               } else {
-                       errno = EINVAL;
-                       return (-1);
-               }
-       } 
-#endif
-       errno = ENOENT;
-       return (-1);
-}
-
-int
-evGetOption(evContext *opaqueCtx, const char *option, int *value) {
-       /* evContext_p *ctx = opaqueCtx->opaque; */
-
-       UNUSED(opaqueCtx);
-#ifndef CLOCK_MONOTONIC
-       UNUSED(value);
-       UNUSED(option);
-#endif 
-
-#ifdef CLOCK_MONOTONIC
-       if (strcmp(option, "monotime") == 0) {
-               if (opaqueCtx  != NULL)
-                       errno = EINVAL;
-               *value = __evOptMonoTime;
-               return (0);
-       }
-#endif
-       errno = ENOENT;
-       return (-1);
-}
-
-#if defined(NEED_PSELECT) || defined(USE_POLL)
-/* XXX needs to move to the porting library. */
-static int
-pselect(int nfds, void *rfds, void *wfds, void *efds,
-       struct timespec *tsp,
-       const sigset_t *sigmask)
-{
-       struct timeval tv, *tvp;
-       sigset_t sigs;
-       int n;
-#ifdef USE_POLL
-       int     polltimeout = INFTIM;
-       evContext_p     *ctx;
-       struct pollfd   *fds;
-       nfds_t          pnfds;
-
-       UNUSED(nfds);
-#endif /* USE_POLL */
-
-       if (tsp) {
-               tvp = &tv;
-               tv = evTimeVal(*tsp);
-#ifdef USE_POLL
-               polltimeout = 1000 * tv.tv_sec + tv.tv_usec / 1000;
-#endif /* USE_POLL */
-       } else
-               tvp = NULL;
-       if (sigmask)
-               sigprocmask(SIG_SETMASK, sigmask, &sigs);
-#ifndef USE_POLL
-        n = select(nfds, rfds, wfds, efds, tvp);
-#else
-        /*
-        * rfds, wfds, and efds should all be from the same evContext_p,
-        * so any of them will do. If they're all NULL, the caller is
-        * presumably calling us to block.
-        */
-       if (rfds != NULL)
-               ctx = ((__evEmulMask *)rfds)->ctx;
-       else if (wfds != NULL)
-               ctx = ((__evEmulMask *)wfds)->ctx;
-       else if (efds != NULL)
-               ctx = ((__evEmulMask *)efds)->ctx;
-       else
-               ctx = NULL;
-       if (ctx != NULL && ctx->fdMax != -1) {
-               fds = &(ctx->pollfds[ctx->firstfd]);
-               pnfds = ctx->fdMax - ctx->firstfd + 1;
-       } else {
-               fds = NULL;
-               pnfds = 0;
-       }
-       n = poll(fds, pnfds, polltimeout);
-       if (n > 0) {
-               int     i, e;
-
-               INSIST(ctx != NULL);
-               for (e = 0, i = ctx->firstfd; i <= ctx->fdMax; i++) {
-                       if (ctx->pollfds[i].fd < 0)
-                               continue;
-                       if (FD_ISSET(i, &ctx->rdLast))
-                               e++;
-                       if (FD_ISSET(i, &ctx->wrLast))
-                               e++;
-                       if (FD_ISSET(i, &ctx->exLast))
-                               e++;
-               }
-               n = e;
-       }
-#endif /* USE_POLL */
-       if (sigmask)
-               sigprocmask(SIG_SETMASK, &sigs, NULL);
-       if (tsp)
-               *tsp = evTimeSpec(tv);
-       return (n);
-}
-#endif
-
-#ifdef USE_POLL
-int
-evPollfdRealloc(evContext_p *ctx, int pollfd_chunk_size, int fd) {
-       int     i, maxnfds;
-       void    *pollfds, *fdTable;
-       if (fd < ctx->maxnfds)
-               return (0);
-       /* Don't allow ridiculously small values for pollfd_chunk_size */
-       if (pollfd_chunk_size < 20)
-               pollfd_chunk_size = 20;
-       maxnfds = (1 + (fd/pollfd_chunk_size)) * pollfd_chunk_size;
-       pollfds = realloc(ctx->pollfds, maxnfds * sizeof(*ctx->pollfds));
-       if (pollfds != NULL)
-               ctx->pollfds = pollfds;
-       fdTable = realloc(ctx->fdTable, maxnfds * sizeof(*ctx->fdTable));
-       if (fdTable != NULL)
-               ctx->fdTable = fdTable;
-       if (pollfds == NULL || fdTable == NULL) {
-               evPrintf(ctx, 2, "pollfd() realloc (%ld) failed\n",
-                        (long)maxnfds*sizeof(struct pollfd));
-               return (-1);
-       }
-       for (i = ctx->maxnfds; i < maxnfds; i++) {
-               ctx->pollfds[i].fd = -1;
-               ctx->pollfds[i].events = 0;
-               ctx->fdTable[i] = 0;
-       }
-
-       ctx->maxnfds = maxnfds;
-
-       return (0);
-}
-/* Find the appropriate 'events' or 'revents' field in the pollfds array */
-short *
-__fd_eventfield(int fd, __evEmulMask *maskp) {
-       evContext_p     *ctx = (evContext_p *)maskp->ctx;
-       if (!maskp->result || maskp->type == EV_WASNONBLOCKING)
-               return (&(ctx->pollfds[fd].events));
-       else
-               return (&(ctx->pollfds[fd].revents));
-}
-/* Translate to poll(2) event */
-short
-__poll_event(__evEmulMask *maskp) {
-       switch ((maskp)->type) {
-       case EV_READ:
-               return (POLLRDNORM);
-       case EV_WRITE:
-               return (POLLWRNORM);
-       case EV_EXCEPT:
-               return (POLLRDBAND | POLLPRI | POLLWRBAND);
-       case EV_WASNONBLOCKING:
-               return (POLLHUP);
-       default:
-               return (0);
-       }
-}
-/*
- * Clear the events corresponding to the specified mask. If this leaves
- * the events mask empty (apart from the POLLHUP bit), set the fd field
- * to -1 so that poll(2) will ignore this fd.
- */
-void
-__fd_clr(int fd, __evEmulMask *maskp) {
-       evContext_p     *ctx = maskp->ctx;
-       *__fd_eventfield(fd, maskp) &= ~__poll_event(maskp);
-       if ((ctx->pollfds[fd].events & ~POLLHUP) == 0) {
-               ctx->pollfds[fd].fd = -1;
-               if (fd == ctx->fdMax)
-                       while (ctx->fdMax > ctx->firstfd &&
-                              ctx->pollfds[ctx->fdMax].fd < 0)
-                               ctx->fdMax--;
-               if (fd == ctx->firstfd)
-                       while (ctx->firstfd <= ctx->fdMax &&
-                              ctx->pollfds[ctx->firstfd].fd < 0)
-                               ctx->firstfd++;
-               /*
-                * Do we have a empty set of descriptors?
-                */
-               if (ctx->firstfd > ctx->fdMax) {
-                       ctx->fdMax = -1;
-                       ctx->firstfd = 0;
-               }
-       }
-}
-/*
- * Set the events bit(s) corresponding to the specified mask. If the events
- * field has any other bits than POLLHUP set, also set the fd field so that
- * poll(2) will watch this fd.
- */
-void
-__fd_set(int fd, __evEmulMask *maskp) {
-       evContext_p     *ctx = maskp->ctx;
-
-       *__fd_eventfield(fd, maskp) |= __poll_event(maskp);
-       if ((ctx->pollfds[fd].events & ~POLLHUP) != 0) {
-               ctx->pollfds[fd].fd = fd;
-               if (fd < ctx->firstfd || ctx->fdMax == -1)
-                       ctx->firstfd = fd;
-               if (fd > ctx->fdMax)
-                       ctx->fdMax = fd;
-       }
-}
-#endif /* USE_POLL */
-
-/*! \file */
diff --git a/lib/bind/isc/eventlib.mdoc b/lib/bind/isc/eventlib.mdoc
deleted file mode 100644 (file)
index 5e9cd85..0000000
+++ /dev/null
@@ -1,918 +0,0 @@
-.\" $Id: eventlib.mdoc,v 1.3 2004/03/09 06:30:08 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.Dd March 6, 1996
-.Dt EVENTLIB 3
-.Os BSD 4
-.Sh NAME
-.Nm evConnFunc ,
-.Nm evFileFunc ,
-.Nm evStreamFunc ,
-.Nm evTimerFunc ,
-.Nm evWaitFunc ,
-.Nm evCreate ,
-.Nm evDestroy ,
-.Nm evGetNext ,
-.Nm evDispatch ,
-.Nm evDrop ,
-.Nm evMainLoop ,
-.Nm evConsTime ,
-.Nm evTimeSpec ,
-.Nm evTimeVal ,
-.Nm evAddTime ,
-.Nm evSubTime ,
-.Nm evCmpTime ,
-.Nm evNowTime ,
-.Nm evUTCTime ,
-.Nm evLastEventTime ,
-.Nm evSetTimer ,
-.Nm evResetTimer ,
-.Nm evConfigTimer ,
-.Nm evClearTimer ,
-.Nm evSetIdleTimer ,
-.Nm evTouchIdleTimer ,
-.Nm evClearIdleTimer ,
-.Nm evWaitFor ,
-.Nm evDo ,
-.Nm evUnwait ,
-.Nm evDefer ,
-.Nm evSelectFD ,
-.Nm evDeselectFD ,
-.Nm evWrite ,
-.Nm evRead ,
-.Nm evCancelRW ,
-.Nm evTimeRW ,
-.Nm evUntimeRW ,
-.Nm evListen ,
-.Nm evConnect ,
-.Nm evCancelConn ,
-.Nm evHold ,
-.Nm evUnhold ,
-.Nm evTryAccept ,
-.Nm evConsIovec ,
-.Nm evSetDebug ,
-.Nm evPrintf ,
-.Nm evInitID ,
-.Nm evTestID ,
-.Nm evGetOption ,
-.Nm evSetOption
-.Nd event handling library
-.Sh SYNOPSIS
-.Fd #include <isc/eventlib.h>
-.Ft typedef void
-.Fn \*(lp*evConnFunc\*(rp "evContext ctx" "void *uap" "int fd" \
-"const void *la" "int lalen" "const void *ra" "int ralen"
-.Ft typedef void
-.Fn \*(lp*evTimerFunc\*(rp "evContext ctx" "void *uap" \
-"struct timespec due" "struct timespec inter"
-.Ft typedef void
-.Fn \*(lp*evFileFunc\*(rp "evContext ctx" "void *uap" "int fd" "int eventmask"
-.Ft typedef void
-.Fn \*(lp*evStreamFunc\*(rp "evContext ctx" "void *uap" "int fd" "int bytes"
-.Ft typedef void
-.Fn \*(lp*evWaitFunc\*(rp "evContext ctx" "void *uap" "const void *tag"
-.Ft int
-.Fn evCreate "evContext *ctx"
-.Ft int
-.Fn evDestroy "evContext ctx"
-.Ft int
-.Fn evGetNext "evContext ctx" "evEvent *ev" "int options"
-.Ft int
-.Fn evDispatch "evContext ctx" "evEvent ev"
-.Ft void
-.Fn evDrop "evContext ctx" "evEvent ev"
-.Ft int
-.Fn evMainLoop "evContext ctx"
-.Ft struct timespec
-.Fn evConsTime "int sec" "int usec"
-.Ft struct timespec
-.Fn evTimeSpec "struct timeval tv"
-.Ft struct timeval
-.Fn evTimeVal "struct timespec ts"
-.Ft struct timespec
-.Fn evAddTime "struct timespec addend1" "struct timespec addend2"
-.Ft struct timespec
-.Fn evSubTime "struct timespec minuend" "struct timespec subtrahend"
-.Ft struct timespec
-.Fn evCmpTime "struct timespec a" "struct timespec b"
-.Ft struct timespec
-.Fn evNowTime "void"
-.Ft struct timespec
-.Fn evUTCTime "void"
-.Ft struct timespec
-.Fn evLastEventTime "evContext opaqueCtx"
-.Ft int
-.Fn evSetTimer "evContext ctx" "evTimerFunc func" "void *uap" \
-"struct timespec due" "struct timespec inter" "evTimerID *id"
-.Ft int
-.Fn evResetTimer "evContext ctx" "evTimerID id" "evTimerFunc func" \
-"void *uap" "struct timespec due" "struct timespec inter"
-.Ft int
-.Fn evConfigTimer "evContext ctx" "evTimerID id" "const char *param" \
-"int value"
-.Ft int
-.Fn evClearTimer "evContext ctx" "evTimerID id"
-.Ft int
-.Fn evSetIdleTimer "evContext opaqueCtx" "evTimerFunc func" "void *uap" \
-"struct timespec max_idle" "evTimerID *opaqueID"
-.Ft int 
-.Fn evTouchIdleTimer "evContext opaqueCtx" "evTimerID id"
-.Ft int 
-.Fn evResetIdleTimer "evContext opaqueCtx" "evTimerID id" "evTimerFunc func" \
-"void *uap" "struct timespec max_idle"
-.Ft int
-.Fn evClearIdleTimer "evContext opaqueCtx" "evTimerID id"
-.Ft int
-.Fn evWaitFor "evContext opaqueCtx" "const void *tag" \
-"evWaitFunc func" "void *uap" "evWaitID *id"
-.Ft int
-.Fn evDo "evContext opaqueCtx" "const void *tag"
-.Ft int
-.Fn evUnwait "evContext opaqueCtx" "evWaitID id"
-.Ft int
-.Fn evDefer "evContext opaqueCtx" "evWaitFunc func" "void *uap"
-.Ft int
-.Fn evSelectFD "evContext ctx" "int fd" "int eventmask" \
-"evFileFunc func" "void *uap" "evFileID *id"
-.Ft int
-.Fn evDeselectFD "evContext ctx" "evFileID id"
-.Ft struct iovec
-.Fn evConsIovec "void *buf" "size_t cnt"
-.Ft int
-.Fn evWrite "evContext ctx" "int fd" "const struct iovec *iov" "int cnt" \
-"evStreamFunc func" "void *uap" "evStreamID *id"
-.Ft int
-.Fn evRead "evContext ctx" "int fd" "const struct iovec *iov" "int cnt" \
-"evStreamFunc func" "void *uap" "evStreamID *id"
-.Ft int
-.Fn evCancelRW "evContext ctx" "evStreamID id"
-.Ft int
-.Fn evTimeRW "evContext opaqueCtx" "evStreamID id" "evTimerID timer"
-.Ft int
-.Fn evUntimeRW "evContext opaqueCtx" "evStreamID id"
-.Ft int
-.Fn evListen "evContext ctx" "int fd" "int maxconn" \
-"evConnFunc func" "void *uap" "evConnID *id"
-.Ft int
-.Fn evConnect "evContext ctx" "int fd" "void *ra" "int ralen" \
-"evConnFunc func" "void *uap" "evConnID *id"
-.Ft int
-.Fn evCancelConn "evContext ctx" "evConnID id"
-.Ft int
-.Fn evHold "evContext ctx" "evConnID id"
-.Ft int
-.Fn evUnhold "evContext ctx" "evConnID id"
-.Ft int
-.Fn evTryAccept "evContext ctx" "evConnID id" "int *sys_errno"
-.Ft void
-.Fn evSetDebug "evContext ctx" "int level" "FILE *output"
-.Ft void
-.Fn evPrintf "const evContext_p *ctx" "int level" "const char *fmt" "..."
-.Ft void
-.Fn evInitID "*\s-1ID\s+1"
-.Ft int
-.Fn evTestID "\s-1ID\s+1"
-.Ft int
-.Fn evGetOption "evContext *ctx" "const char *option" "int *ret"
-.Ft int
-.Fn evSetOption "evContext *ctx" "const char *option" "int val"
-.Sh DESCRIPTION
-This library provides multiple outstanding asynchronous timers and I/O
-to a cooperating application.  The model is similar to that of the X
-Toolkit, in that events are registered with the library and the application
-spends most of its time in the
-.Fn evMainLoop
-function.  If an application already has a main loop, it can safely register
-events with this library as long as it periodically calls the
-.Fn evGetNext
-and
-.Fn evDispatch
-functions.  (Note that
-.Fn evGetNext
-has both polling and blocking modes.)
-.Pp
-The function
-.Fn evCreate
-creates an event context which is needed by all the other functions in this
-library.  All information used internally by this library is bound to this
-context, rather than to static storage.  This makes the library 
-.Dq thread safe ,
-and permits other library functions to use events without
-disrupting the application's use of events.
-.Pp
-The function
-.Fn evDestroy
-destroys a context that has been created by
-.Fn evCreate .
-All dynamic memory bound to this context will be freed.  An implicit
-.Fn evTimerClear
-will be done on all timers set in this event context.  An implicit
-.Fn evDeselectFD
-will be done on all file descriptors selected in this event context.
-.Pp
-The function
-.Fn evGetNext
-potentially waits for and then retrieves the next asynchronous event,
-placing it in the object of the
-.Fa ev
-pointer argument.  The following
-.Fa options
-are available:
-.Fa EV_POLL ,
-meaning that
-.Fn evGetNext
-should not block, but rather return
-.Dq Fa -1
-with
-.Fa errno
-set to
-.Fa EWOULDBLOCK
-if no events have occurred;
-.Fa EV_WAIT ,
-which tells
-.Fn evGetNext
-to block internally until the next event occurs; and
-.Fa EV_NULL ,
-which tells
-.Fn evGetNext
-that it should return a special 
-.Dq no-op 
-event, which is ignored by
-.Fn evDispatch
-but handled correctly by
-.Fn evDrop .
-.Fa EV_NULL
-can be necessary to the correct functioning of a caller\-written equivilent to
-.Fn evMainLoop ,
-wherein perterbations caused by external system events must be polled for, and
-the default behaviour of internally ignoring such events is undesirable.
-Note that
-.Fa EV_POLL
-and
-.Fa EV_WAIT
-are mutually exclusive.
-.Pp
-The function
-.Fn evDispatch
-dispatches an event retrieved by
-.Fn evGetNext .
-This usually involves calling the function that was associated with the event
-when the event was registered with
-.Fn evSetTimer ,
-.Fn evResetTimer ,
-or
-.Fn evSelectFD .
-All events retrieved by
-.Fn evGetNext
-must be given over to
-.Fn evDispatch
-at some point, since there is some dynamic memory associated with each event.
-.Pp
-The function
-.Fn evDrop
-deallocates dynamic memory that has been allocated by
-.Fn evGetNext .
-Calling
-.Fn evDispatch
-has the side effect of calling
-.Fn evDrop ,
-but if you are going to drop the event rather than dispatch it, you will have
-to call
-.Fn evDrop
-directly.
-.Pp
-The function
-.Fn evMainLoop
-is just:
-.Bd -literal -offset indent
-while ((x = evGetNext(opaqueCtx, &event, EV_WAIT)) == 0)
-       if ((x = evDispatch(opaqueCtx, event)) < 0)
-               break;
-return (x);
-.Ed
-.Pp
-In other words, get events and dispatch them until an error occurs.  One such
-error would be that all the events under this context become unregistered; in
-that event, there will be nothing to wait for and
-.Fn evGetNext
-becomes an undefined operation.
-.Pp
-The function
-.Fn evConsTime
-is a constructor for
-.Dq Fa struct timespec
-which allows these structures to be created and then passed as arguments to
-other functions without the use of temporary variables.  (If C had inline
-constructors, there would be no need for this function.)
-.Pp
-The functions
-.Fn evTimeSpec
-and
-.Fn evTimeVal 
-are utilities which allow the caller to convert a
-.Dq Fa struct timeval
-to a 
-.Dq Fa struct timespec
-(the function of
-.Fn evTimeSpec )
-or vice versa (the function of
-.Fn evTimeVal ) .
-Note that the name of the function indicates the type of the return value.
-.Pp
-The function
-.Fn evAddTime
-adds two
-.Dq Fa struct timespec
-values and returns the result as a
-.Dq Fa struct timespec .
-.Pp
-The function
-.Fn evSubTime
-subtracts its second
-.Dq Fa struct timespec
-argument from its first
-.Dq Fa struct timespec
-argument and returns the result as a
-.Dq Fa struct timespec .
-.Pp
-The function
-.Fn evCmpTime
-compares its two
-.Dq Fa struct timespec
-arguments and returns an
-.Dq Fa int
-that is less than zero if the first argument specifies an earlier time than
-the second, or more than zero if the first argument specifies a later time
-than the second, or equal to zero if both arguments specify the same time.
-.Pp
-The function
-.Fn evNowTime
-returns a
-.Dq Fa struct timespec
-which either describes the current time
-(using
-.Xr clock_gettime 2 or
-.Xr gettimeofday 2 ) ,
-if successful, or has its fields set to zero, if there is an error.
-(In the latter case, the caller can check
-.Va errno ,
-since it will be set by
-.Xr gettimeofday 2 . )
-The timestamp returned may not be UTC time if
-the "monotime" option has been enabled with
-.Fn evSetOption .
-.Pp
-The function 
-.Fn evUTCTime
-is like 
-.Fn evNowTime
-except the result is always on the UTC timescale.
-.Pp
-The function
-.Fn evLastEventTime 
-returns the
-.Dq Fa struct timespec
-which describes the last time that certain events happened to the 
-event context indicated by 
-.Fa opaqueCtx .
-This value is updated by
-.Fn evCreate 
-and
-.Fn evGetNext 
-(upon entry and after
-.Xr select 2
-returns); it is routinely compared with other times in the internal handling
-of, e.g., timers.
-.Pp
-The function
-.Fn evSetTimer
-registers a timer event, which will be delivered as a function call to the
-function specified by the
-.Fa func
-argument.  The event will be delivered at absolute time
-.Fa due ,
-and then if time
-.Fa inter
-is not equal to
-.Dq Fn evConsTime 0 0 ,
-subsequently at intervals equal to time
-.Fa inter .
-As a special case, specifying a
-.Fa due
-argument equal to
-.Dq Fn evConsTime 0 0
-means 
-.Dq due immediately .
-The
-.Fa opaqueID
-argument, if specified as a value other than
-.Fa NULL ,
-will be used to store the resulting 
-.Dq timer \s-1ID\s+1 , 
-useful as an argument to
-.Fn evClearTimer .
-Note that in a 
-.Dq one\-shot 
-timer (which has an
-.Fa inter
-argument equal to
-.Dq Fa evConsTime(0,0) )
-the user function
-.Fa func
-should deallocate any dynamic memory that is uniquely bound to the
-.Fa uap ,
-since no handles to this memory will exist within the event library
-after a one\-shot timer has been delivered.
-.Pp
-The function
-.Fn evResetTimer
-resets the values of the timer specified by
-.Fa id
-to the given arguments.  The arguments are the same as in the description of
-.Fn evSetTimer
-above.
-.Pp
-The function
-.Fn evClearTimer
-will unregister the timer event specified by
-.Fa id .
-Note that if the
-.Fa uap
-specified in the corresponding
-.Fn evSetTimer
-call is uniquely bound to any dynamic memory, then that dynamic memory should
-be freed by the caller before the handle is lost.  After a call to
-.Fn evClearTimer ,
-no handles to this
-.Fa uap
-will exist within the event library.
-.Pp
-The function
-.Fn evConfigTimer
-can be used to manipulate other aspects of a timer.
-Currently two modes are defined "rate" and "interval" which affect the
-way recurrent timers are scheduled.
-The default mode is "interval" where the event gets scheduled
-.Fa inter
-after last time it was run.
-If mode "rate" is selected the event gets scheduled
-.Fa inter
-after last time it was scheduled.
-For both "rate" and "interval" the numerical argument
-.Fa value
-is ignored.
-.Pp
-The function
-.Fn evSetIdleTimer 
-is similar to (and built on)
-.Fn evSetTimer ;
-it registers an idle timer event which provides for the function call to
-.Fa func
-to occur.  However, for an
-.Em idle
-timer, the call will occur after at least
-.Dq Fa max_idle
-time has passed since the time the idle timer was
-.Dq last touched ;
-originally, this is set to the time returned by
-.Fn evLastEventTime 
-(described above) for the event context specified by 
-.Fa opaqueCtx .  
-This is a 
-.Dq one\-shot 
-timer, but the time at which the
-.Fa func
-is actually called can be changed by recourse to
-.Fn evTouchIdleTimer
-(described below).  The pointer to the underlying 
-.Dq timer \s-1ID\s+1 
-is returned in
-.Fa opaqueID ,
-if it is
-.No non- Ns Dv NULL .
-.Pp
-The
-.Fn evTouchIdleTimer 
-function updates the idle timer associated with
-.Fa id ,
-setting its idea of the time it was last accessed to the value returned by
-.Fn evLastEventTime
-(described above) for the event context specified by
-.Fa opaqueCtx .
-This means that the idle timer will expire after at least
-.Fa max_idle
-time has passed since this (possibly new) time, providing a caller mechanism
-for resetting the call to the
-.Fa func
-associated with the idle timer.  (See the description of
-.Fn evSetIdleTimer ,
-above, for information about
-.Fa func
-and
-.Fa max_idle . )
-.Pp
-The
-.Fn evResetIdleTimer
-function reschedules a timer and resets the callback function and its argument.
-Note that resetting a timer also ``touches'' it.
-.Pp
-The
-.Fn evClearIdleTimer
-function unregisters the idle timer associated with
-.Fa id .
-See the discussion under
-.Fn evClearTimer , 
-above, for information regarding caller handling of the
-.Fa uap
-associated with the corresponding
-.Fn evSetIdleTimer
-call.
-.Pp
-The function
-.Fn evWaitFor
-places the function
-.Fa func
-on the given event context's wait queue with the associated (possibly
-.Dv NULL )
-.Dq Fa tag ;
-if 
-.Fa id
-is 
-.No non- Ns Dv NULL ,
-then it will contain the 
-.Dq wait \s-1ID\s+1 
-associated with the created queue element.
-.Pp
-The function
-.Fn evDo 
-marks 
-.Em all
-of the 
-.Dq waiting 
-functions in the given event context's wait queue with the associated (possibly
-.Dv NULL )
-.Dq Fa tag
-as runnable.  This places these functions in a
-.Dq done
-queue which will be read by
-.Fn evGetNext .
-.Pp
-The function
-.Fn evUnwait 
-will search for the
-.Dq wait \s-1ID\s+1 
-.Fa id
-in the wait queue of the given event context; if an element with the given
-.Fa id 
-is not found, then the
-.Dq done
-queue of that context is searched.  If found, the queue element is removed
-from the appropriate list.
-.Pp
-The function
-.Fn evDefer
-causes a function (specified as
-.Fa func ,
-with argument
-.Fa uap )
-to be dispatched at some later time.  Note that the
-.Fa tag
-argument to
-.Fa func
-will always be
-.Fa NULL
-when dispatched.
-.Pp
-The function
-.Fn evSelectFD
-registers a file I/O event for the file descriptor specified by
-.Fa fd .
-Bits in the
-.Fa eventmask
-argument are named
-.Fa EV_READ ,
-.Fa EV_WRITE ,
-and
-.Fa EV_EXCEPT .
-At least one of these bits must be specified.  If the
-.Fa id
-argument is not equal to
-.Fa NULL ,
-it will be used to store a unique ``file event \s-1ID\s+1'' for this event,
-which is useful in subsequent calls to
-.Fn evDeselectFD .
-A file descriptor will be made nonblocking using the
-.Fa O_NONBLOCK
-flag with
-.Xr fcntl 2
-on its first concurrent registration via
-.Fn evSelectFD .
-An
-.Fn evSelectFD
-remains in effect until cancelled via
-.Fn evDeselectFD .
-.Pp
-The function
-.Fn evDeselectFD
-unregisters the ``file event'' specified by the
-.Fa id
-argument.  If the corresponding
-.Fa uap
-uniquely points to dynamic memory, that memory should be freed before its
-handle is lost, since after a call to
-.Fn evDeselectFD ,
-no handles to this event's
-.Fa uap
-will remain within the event library.  A file descriptor will be taken out of
-nonblocking mode (see
-.Fa O_NONBLOCK
-and
-.Xr fcntl 2 )
-when its last event registration is removed via
-.Fn evDeselectFD ,
-if it was in blocking mode before the first registration via
-.Fn evSelectFD .
-.Pp
-The function
-.Fn evConsIovec
-is a constructor for a single
-.Ft struct iovec
-structure, which is useful for
-.Fn evWrite
-and
-.Fn evRead .
-.Pp
-The functions
-.Fn evWrite
-and
-.Fn evRead
-start asynchronous stream I/O operations on file descriptor
-.Fa fd .
-The data to be written or read is in the scatter/gather descriptor specified by
-.Fa iov
-and
-.Fa cnt .
-The supplied function
-.Fa func
-will be called with argument
-.Fa uap
-when the I/O operation is complete.  If
-.Fa id
-is not
-.Fa NULL ,
-it will be filled a with the stream event identifier suitable for use with
-.Fn evCancelRW .
-.Pp
-The function
-.Fn evCancelRW
-extinguishes an outstanding
-.Fn evWrite
-or
-.Fn evRead
-call.  System I/O calls cannot always be cancelled, but you are guaranteed
-that the
-.Fa func
-function supplied to
-.Fn evWrite
-or
-.Fn evRead
-will not be called after a call to
-.Fn evCancelRW .
-Care should be taken not to deallocate or otherwise reuse the space pointed
-to by the segment descriptors in
-.Fa iov
-unless the underlying file descriptor is closed first.
-.Pp
-The function
-.Fn evTimeRW
-sets the stream associated with the given stream \s-1ID\s+1 
-.Dq Fa id
-to have the idle timer associated with the timer \s-1ID\s+1 
-.Dq Fa timer .
-.Pp
-The function
-.Fn evUntimeRW
-says that the stream associated with the given stream \s-1ID\s+1
-.Dq Fa id
-should ignore its idle timer, if present.
-.Pp
-The functions
-.Fn evListen ,
-.Fn evConnect ,
-and
-.Fn evCancelConn
-can be used to manage asynchronous incoming and outgoing socket connections.
-Sockets to be used with these functions should first be created with
-.Xr socket 2
-and given a local name with
-.Xr bind 2 .
-It is extremely unlikely that the same socket will ever be
-useful for both incoming and outgoing connections.  The
-.Fa id
-argument to
-.Fn evListen
-and
-.Fn evConnect
-is either
-.Fa NULL
-or the address of a
-.Ft evFileID
-variable which can then be used in a subsequent call to
-.Fn evCancelConn .
-.Pp
-After a call to
-.Fn evListen ,
-each incoming connection arriving on
-.Fa fd
-will cause
-.Fa func
-to be called with
-.Fa uap
-as one of its arguments.
-.Fn evConnect
-initiates an outgoing connection on
-.Fa fd
-to destination address
-.Fa ra
-(whose length is
-.Fa ralen ) .
-When the connection is complete,
-.Fa func
-will be called with
-.Fa uap
-as one of its arguments.  The argument
-.Fa fd
-to
-.Fn \*(lp*func\*(rp
-will be
-.Fa -1
-if an error occurred that prevented this connection from completing 
-successfully.  In this case
-.Fn errno
-will have been set and the socket described by
-.Fa fd
-will have been closed.  The
-.Fn evCancelConn
-function will prevent delivery of all pending and subsequent
-events for the outstanding connection.  The
-.Fn evHold
-function will suspend the acceptance of new connections on the listener
-specified by
-.Fa id .
-Connections will be queued by the protocol stack up to the system's limit.  The
-.Fn evUnhold
-function will reverse the effects of
-.Fn evHold ,
-allowing incoming connections to be delivered for listener
-.Fa id .
-The
-.Fn evTryAccept
-function will poll the listener specified by
-.Fa id ,
-accepting a new connection if one is available, and queuing a connection event
-for later retrieval by
-.Fn evGetNext .
-If the connection event queued is an accept error(), sys_errno will contain
-the error code; otherwise it will be zero.  All connection events queued by
-.Fn evTryAccept
-will be delivered by
-.Fn evGetNext
-before a new select is done on the listener.
-.Pp
-The function
-.Fn evSetDebug
-sets the debugging
-.Fa level
-and diagnostic
-.Fa output
-file handle for an event context.  Greater numeric levels will
-result in more verbose output being sent to the output FILE during program
-execution.
-.Pp
-The function
-.Fn evPrintf
-prints a message with the format
-.Dq Fa fmt
-and the following arguments (if any), on the output stream associated
-with the event context pointed to by
-.Fa ctx .
-The message is output if the event context's debug level is greater than
-or equal to the indicated
-.Fa level .
-.Pp
-The function
-.Fn evInitID
-will initialize an opaque 
-.Dq evConn \s-1ID\s+1 , 
-.Dq evFile \s-1ID\s+1 , 
-.Dq evStream \s-1ID\s+1 , 
-.Dq evTimer \s-1ID\s+1 , 
-.Dq evWait \s-1ID\s+1 , 
-.Dq evContext , 
-or
-.Dq evEvent ,
-which is passed by reference to a state which
-.Fn evTestID
-will recognize.
-This is useful to make a handle as "not in use".
-.Pp
-The function
-.Fn evTestID
-will examine an opaque \s-1ID\s+1 and return
-.Dq TRUE
-only if it is not in its initialized state.
-.Pp
-The functions
-.Fn evGetOption
-and 
-.Fn evSetOption
-can be used to inspect and modify options.
-Currently there is only one option,  "monotime" and it is global for all 
-instances of eventlib so the ctx argument must be passed as NULL.
-.Pp
-The default value for the "monotime" option is zero which selects
-the UTC timescale.
-When set to a value of one, eventlib will use the
-CLOCK_MONOTONIC timescale from
-.Xr clock_gettime
-instead.
-The CLOCK_MONOTONIC timescale is never stepped and should
-run at a rate as close to TAI as possible, so it is unaffected
-when the system clock is set.
-If timerevents should run at a predictable rate, set the value
-to one, of they should run at a predictable time of day, leave
-it at zero.
-If the CLOCK_MONOTONIC timescale is not available on the system,
-attempts to set/get this option will fail.
-.Sh RETURN VALUES
-All the functions whose return type is
-.Dq Fa int
-use the standard convention of returning zero (0) to indicate success, or
-returning
-.Dq Fa -1
-and setting
-.Fa errno
-to indicate failure.
-.Sh FILE
-.Pa heap.h ,
-which is in the 
-.Pa src/lib/isc
-directory of the current 
-.Sy BIND
-distribution.
-.Sh ERRORS
-The possible values for
-.Fa errno
-when one of the
-.Dq Fa int
-functions in this library returns
-.Dq Fa -1
-include those of the Standard C Library and also:
-.Bl -tag -width EWOULDBLOCKAA
-.It Bq Er EINVAL
-Some function argument has an unreasonable value.
-.It Bq Er EINVAL
-The specified file descriptor has an integer value greater than the default
-.Fa FD_SETSIZE ,
-meaning that the application's limit is higher than the library's.
-.It Bq Er ENOENT
-The specified 
-.Dq event \s-1ID\s+1 
-does not exist.
-.It Bq Er EWOULDBLOCK
-No events have occurred and the
-.Fa EV_POLL
-option was specified.
-.It Bq Er EBADF
-The specified signal was unblocked outside the library.
-.El
-.Sh SEE ALSO
-.Xr gettimeofday 2 ,
-.Xr select 2 ,
-.Xr fcntl 3 ,
-.Xr malloc 3 ,
-.Xr @INDOT@named @SYS_OPS_EXT@ ,
-.Xr readv 3 ,
-.Xr writev 3 .
-.Sh BUGS
-This huge man page needs to be broken up into a handful of smaller ones.
-.Sh HISTORY
-The
-.Nm eventlib
-library was designed by Paul Vixie with excellent advice from his friends
-and with tips 'o the cap to the X Consortium and the implementors of DEC SRC
-Modula-3.
diff --git a/lib/bind/isc/eventlib_p.h b/lib/bind/isc/eventlib_p.h
deleted file mode 100644 (file)
index 0a3614a..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*! \file 
- * \brief private interfaces for eventlib
- * \author vix 09sep95 [initial]
- *
- * $Id: eventlib_p.h,v 1.9 2006/03/09 23:57:56 marka Exp $
- */
-
-#ifndef _EVENTLIB_P_H
-#define _EVENTLIB_P_H
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <sys/un.h>
-
-#define EVENTLIB_DEBUG 1
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/heap.h>
-#include <isc/list.h>
-#include <isc/memcluster.h>
-
-#define        EV_MASK_ALL     (EV_READ | EV_WRITE | EV_EXCEPT)
-#define EV_ERR(e)              return (errno = (e), -1)
-#define OK(x)          if ((x) < 0) EV_ERR(errno); else (void)NULL
-#define OKFREE(x, y)   if ((x) < 0) { FREE((y)); EV_ERR(errno); } \
-                       else (void)NULL
-
-#define        NEW(p)          if (((p) = memget(sizeof *(p))) != NULL) \
-                               FILL(p); \
-                       else \
-                               (void)NULL;
-#define OKNEW(p)       if (!((p) = memget(sizeof *(p)))) { \
-                               errno = ENOMEM; \
-                               return (-1); \
-                       } else \
-                               FILL(p)
-#define FREE(p)                memput((p), sizeof *(p))
-
-#if EVENTLIB_DEBUG
-#define FILL(p)                memset((p), 0xF5, sizeof *(p))
-#else
-#define FILL(p)
-#endif
-
-#ifdef USE_POLL
-#ifdef HAVE_STROPTS_H
-#include <stropts.h>
-#endif
-#include <poll.h>
-#endif /* USE_POLL */
-
-typedef struct evConn {
-       evConnFunc      func;
-       void *          uap;
-       int             fd;
-       int             flags;
-#define EV_CONN_LISTEN         0x0001          /*%< Connection is a listener. */
-#define EV_CONN_SELECTED       0x0002          /*%< evSelectFD(conn->file). */
-#define EV_CONN_BLOCK          0x0004          /*%< Listener fd was blocking. */
-       evFileID        file;
-       struct evConn * prev;
-       struct evConn * next;
-} evConn;
-
-typedef struct evAccept {
-       int             fd;
-       union {
-               struct sockaddr         sa;
-               struct sockaddr_in      in;
-#ifndef NO_SOCKADDR_UN
-               struct sockaddr_un      un;
-#endif
-       }               la;
-       ISC_SOCKLEN_T   lalen;
-       union {
-               struct sockaddr         sa;
-               struct sockaddr_in      in;
-#ifndef NO_SOCKADDR_UN
-               struct sockaddr_un      un;
-#endif
-       }               ra;
-       ISC_SOCKLEN_T   ralen;
-       int             ioErrno;
-       evConn *        conn;
-       LINK(struct evAccept) link;
-} evAccept;
-
-typedef struct evFile {
-       evFileFunc      func;
-       void *          uap;
-       int             fd;
-       int             eventmask;
-       int             preemptive;
-       struct evFile * prev;
-       struct evFile * next;
-       struct evFile * fdprev;
-       struct evFile * fdnext;
-} evFile;
-
-typedef struct evStream {
-       evStreamFunc    func;
-       void *          uap;
-       evFileID        file;
-       evTimerID       timer;
-       int             flags;
-#define EV_STR_TIMEROK 0x0001  /*%< IFF timer valid. */
-       int             fd;
-       struct iovec *  iovOrig;
-       int             iovOrigCount;
-       struct iovec *  iovCur;
-       int             iovCurCount;
-       int             ioTotal;
-       int             ioDone;
-       int             ioErrno;
-       struct evStream *prevDone, *nextDone;
-       struct evStream *prev, *next;
-} evStream;
-
-typedef struct evTimer {
-       evTimerFunc     func;
-       void *          uap;
-       struct timespec due, inter;
-       int             index;
-       int             mode;
-#define EV_TMR_RATE    1
-} evTimer;
-
-typedef struct evWait {
-       evWaitFunc      func;
-       void *          uap;
-       const void *    tag;
-       struct evWait * next;
-} evWait;
-
-typedef struct evWaitList {
-       evWait *                first;
-       evWait *                last;
-       struct evWaitList *     prev;
-       struct evWaitList *     next;
-} evWaitList;
-
-typedef struct evEvent_p {
-       enum {  Accept, File, Stream, Timer, Wait, Free, Null  } type;
-       union {
-               struct {  evAccept *this;  }                    accept;
-               struct {  evFile *this; int eventmask;  }       file;
-               struct {  evStream *this;  }                    stream;
-               struct {  evTimer *this;  }                     timer;
-               struct {  evWait *this;  }                      wait;
-               struct {  struct evEvent_p *next;  }            free;
-               struct {  const void *placeholder;  }           null;
-       } u;
-} evEvent_p;
-
-#ifdef USE_POLL
-typedef struct { 
-       void            *ctx;   /* pointer to the evContext_p   */ 
-       uint32_t        type;   /* READ, WRITE, EXCEPT, nonblk  */ 
-       uint32_t        result; /* 1 => revents, 0 => events    */ 
-} __evEmulMask; 
-
-#define emulMaskInit(ctx, field, ev, lastnext) \
-       ctx->field.ctx = ctx; \
-       ctx->field.type = ev; \
-       ctx->field.result = lastnext; 
-  
-extern short   *__fd_eventfield(int fd, __evEmulMask *maskp); 
-extern short   __poll_event(__evEmulMask *maskp); 
-extern void            __fd_clr(int fd, __evEmulMask *maskp); 
-extern void            __fd_set(int fd, __evEmulMask *maskp); 
-
-#undef  FD_ZERO 
-#define FD_ZERO(maskp) 
-  
-#undef  FD_SET 
-#define FD_SET(fd, maskp) \
-       __fd_set(fd, maskp) 
-
-#undef  FD_CLR 
-#define FD_CLR(fd, maskp) \
-       __fd_clr(fd, maskp) 
-
-#undef  FD_ISSET 
-#define FD_ISSET(fd, maskp) \
-       ((*__fd_eventfield(fd, maskp) & __poll_event(maskp)) != 0) 
-
-#endif /* USE_POLL */
-
-typedef struct {
-       /* Global. */
-       const evEvent_p *cur;
-       /* Debugging. */
-       int             debug;
-       FILE            *output;
-       /* Connections. */
-       evConn          *conns;
-       LIST(evAccept)  accepts;
-       /* Files. */
-       evFile          *files, *fdNext;
-#ifndef USE_POLL
-       fd_set          rdLast, rdNext;
-       fd_set          wrLast, wrNext;
-       fd_set          exLast, exNext;
-       fd_set          nonblockBefore;
-       int             fdMax, fdCount, highestFD;
-       evFile          *fdTable[FD_SETSIZE];
-#else
-       struct pollfd   *pollfds;       /* Allocated as needed  */ 
-       evFile          **fdTable;      /* Ditto                */ 
-       int             maxnfds;        /* # elements in above  */ 
-       int             firstfd;        /* First active fd      */ 
-       int             fdMax;          /* Last active fd       */ 
-       int             fdCount;        /* # fd:s with I/O      */ 
-       int             highestFD;      /* max fd allowed by OS */ 
-       __evEmulMask    rdLast, rdNext; 
-       __evEmulMask    wrLast, wrNext; 
-       __evEmulMask    exLast, exNext; 
-       __evEmulMask    nonblockBefore; 
-#endif /* USE_POLL */
-#ifdef EVENTLIB_TIME_CHECKS
-       struct timespec lastSelectTime;
-       int             lastFdCount;
-#endif
-       /* Streams. */
-       evStream        *streams;
-       evStream        *strDone, *strLast;
-       /* Timers. */
-       struct timespec lastEventTime;
-       heap_context    timers;
-       /* Waits. */
-       evWaitList      *waitLists;
-       evWaitList      waitDone;
-} evContext_p;
-
-/* eventlib.c */
-#define evPrintf __evPrintf
-void evPrintf(const evContext_p *ctx, int level, const char *fmt, ...)
-     ISC_FORMAT_PRINTF(3, 4);
-
-#ifdef USE_POLL
-extern int evPollfdRealloc(evContext_p *ctx, int pollfd_chunk_size, int fd);
-#endif /* USE_POLL */
-
-/* ev_timers.c */
-#define evCreateTimers __evCreateTimers
-heap_context evCreateTimers(const evContext_p *);
-#define evDestroyTimers __evDestroyTimers
-void evDestroyTimers(const evContext_p *);
-
-/* ev_waits.c */
-#define evFreeWait __evFreeWait
-evWait *evFreeWait(evContext_p *ctx, evWait *old);
-
-/* Global options */
-extern int     __evOptMonoTime;
-
-#endif /*_EVENTLIB_P_H*/
diff --git a/lib/bind/isc/heap.c b/lib/bind/isc/heap.c
deleted file mode 100644 (file)
index 3d22b6f..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*%
- * Heap implementation of priority queues adapted from the following:
- *
- *     _Introduction to Algorithms_, Cormen, Leiserson, and Rivest,
- *     MIT Press / McGraw Hill, 1990, ISBN 0-262-03141-8, chapter 7.
- *
- *     _Algorithms_, Second Edition, Sedgewick, Addison-Wesley, 1988,
- *     ISBN 0-201-06673-4, chapter 11.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: heap.c,v 1.4 2006/03/09 23:57:56 marka Exp $";
-#endif /* not lint */
-
-#include "port_before.h"
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include "port_after.h"
-
-#include <isc/heap.h>
-
-/*%
- * Note: to make heap_parent and heap_left easy to compute, the first
- * element of the heap array is not used; i.e. heap subscripts are 1-based,
- * not 0-based.
- */
-#define heap_parent(i) ((i) >> 1)
-#define heap_left(i) ((i) << 1)
-
-#define ARRAY_SIZE_INCREMENT 512
-
-heap_context
-heap_new(heap_higher_priority_func higher_priority, heap_index_func index,
-        int array_size_increment) {
-       heap_context ctx;
-
-       if (higher_priority == NULL)
-               return (NULL);
-
-       ctx = (heap_context)malloc(sizeof (struct heap_context));
-       if (ctx == NULL)
-               return (NULL);
-
-       ctx->array_size = 0;
-       if (array_size_increment == 0)
-               ctx->array_size_increment = ARRAY_SIZE_INCREMENT;
-       else
-               ctx->array_size_increment = array_size_increment;
-       ctx->heap_size = 0;
-       ctx->heap = NULL;
-       ctx->higher_priority = higher_priority;
-       ctx->index = index;
-       return (ctx);
-}
-
-int
-heap_free(heap_context ctx) {
-       if (ctx == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (ctx->heap != NULL)
-               free(ctx->heap);
-       free(ctx);
-
-       return (0);
-}
-
-static int
-heap_resize(heap_context ctx) {
-       void **new_heap;
-
-       ctx->array_size += ctx->array_size_increment;
-       new_heap = (void **)realloc(ctx->heap,
-                                   (ctx->array_size) * (sizeof (void *)));
-       if (new_heap == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       ctx->heap = new_heap;
-       return (0);
-}
-
-static void
-float_up(heap_context ctx, int i, void *elt) {
-       int p;
-
-       for ( p = heap_parent(i); 
-             i > 1 && ctx->higher_priority(elt, ctx->heap[p]);
-             i = p, p = heap_parent(i) ) {
-               ctx->heap[i] = ctx->heap[p];
-               if (ctx->index != NULL)
-                       (ctx->index)(ctx->heap[i], i);
-       }
-       ctx->heap[i] = elt;
-       if (ctx->index != NULL)
-               (ctx->index)(ctx->heap[i], i);
-}
-
-static void
-sink_down(heap_context ctx, int i, void *elt) {
-       int j, size, half_size;
-
-       size = ctx->heap_size;
-       half_size = size / 2;
-       while (i <= half_size) {
-               /* find smallest of the (at most) two children */
-               j = heap_left(i);
-               if (j < size && ctx->higher_priority(ctx->heap[j+1],
-                                                    ctx->heap[j]))
-                       j++;
-               if (ctx->higher_priority(elt, ctx->heap[j]))
-                       break;
-               ctx->heap[i] = ctx->heap[j];
-               if (ctx->index != NULL)
-                       (ctx->index)(ctx->heap[i], i);
-               i = j;
-       }
-       ctx->heap[i] = elt;
-       if (ctx->index != NULL)
-               (ctx->index)(ctx->heap[i], i);
-}
-
-int
-heap_insert(heap_context ctx, void *elt) {
-       int i;
-
-       if (ctx == NULL || elt == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       i = ++ctx->heap_size;
-       if (ctx->heap_size >= ctx->array_size && heap_resize(ctx) < 0)
-               return (-1);
-       
-       float_up(ctx, i, elt);
-
-       return (0);
-}
-
-int
-heap_delete(heap_context ctx, int i) {
-       void *elt;
-       int less;
-
-       if (ctx == NULL || i < 1 || i > ctx->heap_size) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       if (i == ctx->heap_size) {
-               ctx->heap_size--;
-       } else {
-               elt = ctx->heap[ctx->heap_size--];
-               less = ctx->higher_priority(elt, ctx->heap[i]);
-               ctx->heap[i] = elt;
-               if (less)
-                       float_up(ctx, i, ctx->heap[i]);
-               else
-                       sink_down(ctx, i, ctx->heap[i]);
-       }
-
-       return (0);
-}
-
-int
-heap_increased(heap_context ctx, int i) {
-       if (ctx == NULL || i < 1 || i > ctx->heap_size) {
-               errno = EINVAL;
-               return (-1);
-       }
-       
-       float_up(ctx, i, ctx->heap[i]);
-
-       return (0);
-}
-
-int
-heap_decreased(heap_context ctx, int i) {
-       if (ctx == NULL || i < 1 || i > ctx->heap_size) {
-               errno = EINVAL;
-               return (-1);
-       }
-       
-       sink_down(ctx, i, ctx->heap[i]);
-
-       return (0);
-}
-
-void *
-heap_element(heap_context ctx, int i) {
-       if (ctx == NULL || i < 1 || i > ctx->heap_size) {
-               errno = EINVAL;
-               return (NULL);
-       }
-
-       return (ctx->heap[i]);
-}
-
-int
-heap_for_each(heap_context ctx, heap_for_each_func action, void *uap) {
-       int i;
-
-       if (ctx == NULL || action == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       for (i = 1; i <= ctx->heap_size; i++)
-               (action)(ctx->heap[i], uap);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/heap.mdoc b/lib/bind/isc/heap.mdoc
deleted file mode 100644 (file)
index 332a6ec..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-.\" $Id: heap.mdoc,v 1.3 2004/03/09 06:30:08 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.Dd January 1, 1997
-.\"Os OPERATING_SYSTEM [version/release]
-.Os BSD 4
-.Dt HEAP @SYSCALL_EXT@
-.Sh NAME
-.Nm heap_new ,
-.Nm heap_free ,
-.Nm heap_insert ,
-.Nm heap_delete ,
-.Nm heap_increased ,
-.Nm heap_decreased ,
-.Nm heap_element ,
-.Nm heap_for_each 
-.Nd heap implementation of priority queues
-.Sh SYNOPSIS
-.Fd #include \&"heap.h\&"
-.Ft heap_context    
-.Fn heap_new "heap_higher_priority_func higher_priority" \
-"heap_index_func index" "int array_size_increment"
-.Ft int
-.Fn heap_free "heap_context ctx"
-.Ft int
-.Fn heap_insert "heap_context ctx" "void *elt"
-.Ft int
-.Fn heap_delete "heap_context ctx" "int i"
-.Ft int
-.Fn heap_increased "heap_context ctx" "int i"
-.Ft int
-.Fn heap_decreased "heap_context ctx" "int i"
-.Ft void *
-.Fn heap_element "heap_context ctx" "int i"
-.Ft int 
-.Fn heap_for_each "heap_context ctx" "heap_for_each_func action" "void *uap"
-.Sh DESCRIPTION
-These functions implement heap\-based priority queues.  The user defines a
-priority scheme, and provides a function for comparison of the priority
-of heap elements
-(see the description of the
-.Ft heap_higher_priority_func
-function pointer, below).
-.Pp
-Each of the functions depends upon the
-.Ft heap_context
-type, which is a pointer to a
-.Ft struct heap_context 
-.Pq see Pa heap.h No for more information .
-.Pp
-The
-.Pa heap.h
-header file also defines the following set of function
-function pointers:
-.Bd -literal -offset indent
-typedef int (*heap_higher_priority_func)(void *, void *);
-typedef void (*heap_index_func)(void *, int);
-typedef void (*heap_for_each_func)(void *, void *);
-.Ed
-.Pp
-These are pointers to user-defined functions.
-The 
-.Ft heap_higher_priority_func
-type is a pointer to a function which compares two
-different heap (queue) elements and returns an
-.Ft int
-which answers the question, "Does the first queue element 
-have a higher priority than the second?"  In other words, 
-a function pointer of this type 
-.Em must 
-return a number greater than zero
-if the element indicated by the first argument is of a higher priority than 
-that indicated by the second element, and zero otherwise.  
-.Pp
-The other two function pointers are documented in the descriptions
-of 
-.Fn heap_new
-.Pq Va heap_index_func
-and
-.Fn heap_for_each
-.Pq Va heap_for_each_func ,
-below.
-.Pp
-The function
-.Fn heap_new
-initializes a 
-.Ft struct heap_context
-and returns a pointer to it.  The
-.Fa higher_priority
-function pointer 
-.Em must 
-be 
-.No non\- Ns Dv NULL .
-As explained above, this refers to a 
-function supplied by the user which compares the priority of two different
-queue or heap elements; see above for more information. 
-The second argument, 
-.Fa index ,
-is a pointer to a user-defined function whose arguments are
-a heap element and its index in the heap.
-.Fa Index 
-is intended to provide the user a means of knowing the internal index
-of an element in the heap while maintaining the opacity of the implementation;
-since the user has to know the actual indexes of heap elements in order to use,
-e.g., 
-.Fn heap_delete
-or
-.Fn heap_element ,
-the user 
-.Fa index
-function could store the index in the heap element, itself.  If 
-.Fa index
-is 
-.No non\- Ns Dv NULL ,
-then it is called 
-.Em whenever 
-the index of an element changes, allowing the user to stay up\-to\-date
-with index changes.
-The last argument, 
-.Fa array_size_increment
-will be used, as its name suggests, by
-.Xr malloc 3
-or
-.Xr realloc 3
-to increment the array which implements the heap; if zero, a default value 
-will be used.
-.Pp
-The
-.Fn heap_free
-function frees the given
-.Ft heap_context
-argument 
-.Pq Fa ctx ,
-which also frees the entire
-.Nm heap ,
-if it is
-.No non\- Ns Dv NULL .
-The argument
-.Fa ctx
-should be
-.No non\- Ns Dv NULL .
-.Pp
-The 
-.Fn heap_insert
-function is used to insert the new heap element
-.Fa elt
-into the appropriate place (priority\-wise) in the
-.Ft heap
-indicated by 
-.Fa ctx
-(a pointer to a
-.Ft heap_context ) .
-If 
-.No non\- Ns Dv NULL ,
-the user-defined
-.Ft higher_priority
-function pointer associated with the indicated 
-.Nm heap
-is used to determine that
-.Dq appropriate place ;
-the highest\-priority elements are at the front of the queue (top of
-the heap).
-(See the description of 
-.Fn heap_new , 
-above, for more information.)
-.Pp
-The function
-.Fn heap_delete
-is used to delete the 
-.Fa i\- Ns th
-element of the queue (heap), and fixing up the queue (heap) from that
-element onward via the priority as determined by the user function
-pointed to by
-.Ft higher_priority 
-function pointer
-(see description of
-.Fn heap_new ,
-above).
-.Pp
-.Fn heap_increased
-.Pp
-.Fn heap_decreased
-.Pp
-The 
-.Fn heap_element
-function returns the
-.Fa i\- Ns th
-element of the queue/heap indicated by
-.Fa ctx ,
-if possible.
-.Pp
-The
-.Fn heap_for_each
-function provides a mechanism for the user to increment through the entire
-queue (heap) and perform some
-.Fa action 
-upon each of the queue elements.  This
-.Fa action 
-is pointer to a user\-defined function with two arguments, the first of
-which should be interpreted by the user's function as a heap element.  The 
-second value passed to the user function is just the
-.Fa uap
-argument to 
-.Fn heap_for_each ;
-this allows the user to specify additional arguments, if necessary, to
-the function pointed to by 
-.Fa action .
-.\" The following requests should be uncommented and
-.\" used where appropriate.  This next request is
-.\" for sections 2 and 3 function return values only.
-.Sh RETURN VALUES
-.Bl -tag -width "heap_decreased()"
-.It Fn heap_new
-.Dv NULL
-if unable to 
-.Xr malloc 3
-a 
-.Ft struct heap_context
-or if the
-.Fa higher_priority
-function pointer is 
-.Dv NULL ;
-otherwise, a valid
-.Ft heap_context 
-.Ns .
-.It Fn heap_free
--1 if 
-.Fa ctx
-is 
-.Dv NULL 
-(with 
-.Va errno
-set to
-.Dv EINVAL ) ;
-otherwise, 0.
-.It Fn heap_insert
--1 
-if either
-.Fa ctx
-or 
-.Fa elt
-is 
-.Dv NULL ,
-or if an attempt to 
-.Xr malloc 3
-or 
-.Xr realloc 3
-the heap array fails (with
-.Va errno
-set to 
-.Dv EINVAL
-or 
-.Dv ENOMEM ,
-respectively).
-Otherwise, 0.
-.It Fn heap_delete
--1 if 
-.Fa ctx
-is 
-.Dv NULL
-or 
-.Fa i 
-is out\-of\-range (with
-.Va errno
-set to
-.Dv EINVAL ) ;
-0 otherwise.
-.It Fn heap_increased
-As for
-.Fn heap_delete .
-.It Fn heap_decreased
-As for
-.Fn heap_delete .
-.It Fn heap_element
-NULL if 
-.Fa ctx 
-is 
-.Dv NULL
-or
-.Fa i
-out\-of-bounds (with
-.Va errno
-set to
-.Dv EINVAL ) ;
-otherwise, a pointer to the
-.Fa i\- Ns th
-queue element.
-.It Fn heap_for_each
--1 if either
-.Fa ctx
-or 
-.Fa action
-is 
-.Dv NULL
-(with 
-.Va errno
-set to
-.Dv EINVAL ) ;
-0 otherwise.
-.El
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\" .Sh ENVIRONMENT
-.Sh FILES
-.Bl -tag -width "heap.h000"
-.It Pa heap.h
- heap library header file
-.El
-.\" .Sh EXAMPLES
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\"     (command return values (to shell) and
-.\"    fprintf/stderr type diagnostics)
-.Sh DIAGNOSTICS
-Please refer to
-.Sx RETURN VALUES .
-.\" The next request is for sections 2 and 3 error
-.\" and signal handling only.
-.Sh ERRORS
-The variable
-.Va errno
-is set by
-.Fn heap_free , 
-.Fn heap_insert , 
-.Fn heap_delete , 
-.Fn heap_increased , 
-and
-.Fn heap_decreased 
-under the conditions of invalid input
-.Pq Dv EINVAL
-or lack of memory
-.Pq Dv ENOMEM ;
-please refer to
-.Sx RETURN VALUES .
-.Sh SEE ALSO
-.Xr malloc 3 ,
-.Xr realloc 3 .
-.Rs
-.%A Cormen
-.%A Leiserson
-.%A Rivest
-.%B Introduction to Algorithms
-.%Q "MIT Press / McGraw Hill"
-.%D 1990
-.%O ISBN 0\-262\-03141\-8
-.%P chapter 7
-.Re
-.Rs
-.%A Sedgewick
-.%B Algorithms, 2nd ed'n
-.%Q Addison\-Wesley
-.%D 1988
-.%O ISBN 0\-201\-06673\-4
-.%P chapter 11
-.Re
-.\" .Sh STANDARDS
-.\" .Sh HISTORY
-.Sh AUTHORS
-The
-.Nm heap
-library was implemented by Bob Halley (halley@vix.com) of Vixie Enterprises, 
-Inc., for the Internet Software consortium, and was adapted from
-the two books listed in the 
-.Sx SEE ALSO
-section, above.
-.\" .Sh BUGS
diff --git a/lib/bind/isc/hex.c b/lib/bind/isc/hex.c
deleted file mode 100644 (file)
index e43be4f..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 2001 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#include <port_before.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#include <isc/misc.h>
-#include <port_after.h>
-
-static const char hex[17] = "0123456789abcdef";
-
-int
-isc_gethexstring(unsigned char *buf, size_t len, int count, FILE *fp,
-                int *multiline)
-{
-       int c, n;
-       unsigned char x;
-       char *s;
-       int result = count;
-       
-       x = 0; /*%< silence compiler */
-       n = 0;
-       while (count > 0) {
-               c = fgetc(fp);
-
-               if ((c == EOF) ||
-                   (c == '\n' && !*multiline) ||
-                   (c == '(' && *multiline) ||
-                   (c == ')' && !*multiline))
-                       goto formerr;
-               /* comment */
-               if (c == ';') {
-                       do {
-                               c = fgetc(fp);
-                       } while (c != EOF && c != '\n');
-                       if (c == '\n' && *multiline)
-                               continue;
-                       goto formerr;
-               }
-               /* white space */
-               if (c == ' ' || c == '\t' || c == '\n' || c == '\r')
-                       continue;
-               /* multiline */
-               if ('(' == c || c == ')') {
-                       *multiline = (c == '(' /*)*/);
-                       continue;
-               }
-               if ((s = strchr(hex, tolower(c))) == NULL)
-                       goto formerr;
-               x = (x<<4) | (s - hex);
-               if (++n == 2) {
-                       if (len > 0U) {
-                               *buf++ = x;
-                               len--;
-                       } else
-                               result = -1;
-                       count--;
-                       n = 0;
-               }
-       }
-       return (result);
-
- formerr:
-       if (c == '\n')
-               ungetc(c, fp);
-       return (-1);
-}
-
-void
-isc_puthexstring(FILE *fp, const unsigned char *buf, size_t buflen,
-                size_t len1, size_t len2, const char *sep)
-{
-       size_t i = 0;
-
-       if (len1 < 4U)
-               len1 = 4;
-       if (len2 < 4U)
-               len2 = 4;
-       while (buflen > 0U) {
-               fputc(hex[(buf[0]>>4)&0xf], fp);
-               fputc(hex[buf[0]&0xf], fp);
-               i += 2;
-               buflen--;
-               buf++;
-               if (i >= len1 && sep != NULL) {
-                       fputs(sep, fp);
-                       i = 0;
-                       len1 = len2;
-               }
-       }
-}
-
-void
-isc_tohex(const unsigned char *buf, size_t buflen, char *t) {
-       while (buflen > 0U) {
-               *t++ = hex[(buf[0]>>4)&0xf];
-               *t++ = hex[buf[0]&0xf];
-               buf++;
-               buflen--;
-       }
-       *t = '\0';
-}
-
-/*! \file */
diff --git a/lib/bind/isc/logging.c b/lib/bind/isc/logging.c
deleted file mode 100644 (file)
index 4204114..0000000
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: logging.c,v 1.8 2008/02/28 05:36:10 marka Exp $";
-#endif /* not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <syslog.h>
-#include <errno.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <isc/assertions.h>
-#include <isc/logging.h>
-#include <isc/memcluster.h>
-#include <isc/misc.h>
-
-#include "port_after.h"
-
-#include "logging_p.h"
-
-static const int syslog_priority[] = { LOG_DEBUG, LOG_INFO, LOG_NOTICE,
-                                      LOG_WARNING, LOG_ERR, LOG_CRIT };
-
-static const char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-                               "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-
-static const char *level_text[] = {
-       "info: ", "notice: ", "warning: ", "error: ", "critical: "
-};
-
-static void
-version_rename(log_channel chan) {
-       unsigned int ver;
-       char old_name[PATH_MAX+1];
-       char new_name[PATH_MAX+1];
-       
-       ver = chan->out.file.versions;
-       if (ver < 1)
-               return;
-       if (ver > LOG_MAX_VERSIONS)
-               ver = LOG_MAX_VERSIONS;
-       /*
-        * Need to have room for '.nn' (XXX assumes LOG_MAX_VERSIONS < 100)
-        */
-       if (strlen(chan->out.file.name) > (size_t)(PATH_MAX-3))
-               return;
-       for (ver--; ver > 0; ver--) {
-               sprintf(old_name, "%s.%d", chan->out.file.name, ver-1);
-               sprintf(new_name, "%s.%d", chan->out.file.name, ver);
-               (void)isc_movefile(old_name, new_name);
-       }
-       sprintf(new_name, "%s.0", chan->out.file.name);
-       (void)isc_movefile(chan->out.file.name, new_name);
-}
-
-FILE *
-log_open_stream(log_channel chan) {
-       FILE *stream;
-       int fd, flags;
-       struct stat sb;
-       int regular;
-
-       if (chan == NULL || chan->type != log_file) {
-               errno = EINVAL;
-               return (NULL);
-       }
-       
-       /*
-        * Don't open already open streams
-        */
-       if (chan->out.file.stream != NULL)
-               return (chan->out.file.stream);
-
-       if (stat(chan->out.file.name, &sb) < 0) {
-               if (errno != ENOENT) {
-                       syslog(LOG_ERR,
-                              "log_open_stream: stat of %s failed: %s",
-                              chan->out.file.name, strerror(errno));
-                       chan->flags |= LOG_CHANNEL_BROKEN;
-                       return (NULL);
-               }
-               regular = 1;
-       } else
-               regular = (sb.st_mode & S_IFREG);
-
-       if (chan->out.file.versions) {
-               if (!regular) {
-                       syslog(LOG_ERR,
-       "log_open_stream: want versions but %s isn't a regular file",
-                              chan->out.file.name);
-                       chan->flags |= LOG_CHANNEL_BROKEN;
-                       errno = EINVAL;
-                       return (NULL);
-               }
-       }
-
-       flags = O_WRONLY|O_CREAT|O_APPEND;
-
-       if ((chan->flags & LOG_TRUNCATE) != 0) {
-               if (regular) {
-                       (void)unlink(chan->out.file.name);
-                       flags |= O_EXCL;
-               } else {
-                       syslog(LOG_ERR,
-       "log_open_stream: want truncation but %s isn't a regular file",
-                              chan->out.file.name);
-                       chan->flags |= LOG_CHANNEL_BROKEN;
-                       errno = EINVAL;
-                       return (NULL);
-               }
-       }
-
-       fd = open(chan->out.file.name, flags,
-                 S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
-       if (fd < 0) {
-               syslog(LOG_ERR, "log_open_stream: open(%s) failed: %s",
-                      chan->out.file.name, strerror(errno));
-               chan->flags |= LOG_CHANNEL_BROKEN;
-               return (NULL);
-       }
-       stream = fdopen(fd, "a");
-       if (stream == NULL) {
-               syslog(LOG_ERR, "log_open_stream: fdopen() failed");
-               chan->flags |= LOG_CHANNEL_BROKEN;
-               return (NULL);
-       }
-       (void) fchown(fd, chan->out.file.owner, chan->out.file.group);
-
-       chan->out.file.stream = stream;
-       return (stream);
-}
-
-int
-log_close_stream(log_channel chan) {
-       FILE *stream;
-
-       if (chan == NULL || chan->type != log_file) {
-               errno = EINVAL;
-               return (0);
-       }
-       stream = chan->out.file.stream;
-       chan->out.file.stream = NULL;
-       if (stream != NULL && fclose(stream) == EOF)
-               return (-1);
-       return (0);
-}
-
-void
-log_close_debug_channels(log_context lc) {
-       log_channel_list lcl;
-       int i;
-
-       for (i = 0; i < lc->num_categories; i++)
-               for (lcl = lc->categories[i]; lcl != NULL; lcl = lcl->next)
-                       if (lcl->channel->type == log_file &&
-                           lcl->channel->out.file.stream != NULL &&
-                           lcl->channel->flags & LOG_REQUIRE_DEBUG)
-                               (void)log_close_stream(lcl->channel);
-}
-
-FILE *
-log_get_stream(log_channel chan) {
-       if (chan == NULL || chan->type != log_file) {
-               errno = EINVAL;
-               return (NULL);
-       }
-       return (chan->out.file.stream);
-}
-
-char *
-log_get_filename(log_channel chan) {
-       if (chan == NULL || chan->type != log_file) {
-               errno = EINVAL;
-               return (NULL);
-       }
-       return (chan->out.file.name);
-}
-
-int
-log_check_channel(log_context lc, int level, log_channel chan) {
-       int debugging, chan_level;
-
-       REQUIRE(lc != NULL);
-
-       debugging = ((lc->flags & LOG_OPTION_DEBUG) != 0);
-
-       /*
-        * If not debugging, short circuit debugging messages very early.
-        */
-       if (level > 0 && !debugging)
-               return (0);
-
-       if ((chan->flags & (LOG_CHANNEL_BROKEN|LOG_CHANNEL_OFF)) != 0)
-               return (0);
-
-       /* Some channels only log when debugging is on. */
-       if ((chan->flags & LOG_REQUIRE_DEBUG) && !debugging)
-               return (0);
-
-       /* Some channels use the global level. */
-       if ((chan->flags & LOG_USE_CONTEXT_LEVEL) != 0) {
-               chan_level = lc->level;
-       } else
-               chan_level = chan->level;
-
-       if (level > chan_level)
-               return (0);
-
-       return (1);
-}
-
-int 
-log_check(log_context lc, int category, int level) {
-       log_channel_list lcl;
-       int debugging;
-
-       REQUIRE(lc != NULL);
-
-       debugging = ((lc->flags & LOG_OPTION_DEBUG) != 0);
-
-       /*
-        * If not debugging, short circuit debugging messages very early.
-        */
-       if (level > 0 && !debugging)
-               return (0);
-
-       if (category < 0 || category > lc->num_categories)
-               category = 0;           /*%< use default */
-       lcl = lc->categories[category];
-       if (lcl == NULL) {
-               category = 0;
-               lcl = lc->categories[0];
-       }
-
-       for ( /* nothing */; lcl != NULL; lcl = lcl->next) {
-               if (log_check_channel(lc, level, lcl->channel))
-                       return (1);
-       }
-       return (0);
-}
-
-void
-log_vwrite(log_context lc, int category, int level, const char *format, 
-          va_list args) {
-       log_channel_list lcl;
-       int pri, debugging, did_vsprintf = 0;
-       int original_category;
-       FILE *stream;
-       log_channel chan;
-       struct timeval tv;
-       struct tm *local_tm;
-#ifdef HAVE_TIME_R
-       struct tm tm_tmp;
-#endif
-       time_t tt;
-       const char *category_name;
-       const char *level_str;
-       char time_buf[256];
-       char level_buf[256];
-
-       REQUIRE(lc != NULL);
-
-       debugging = (lc->flags & LOG_OPTION_DEBUG);
-
-       /*
-        * If not debugging, short circuit debugging messages very early.
-        */
-       if (level > 0 && !debugging)
-               return;
-
-       if (category < 0 || category > lc->num_categories)
-               category = 0;           /*%< use default */
-       original_category = category;
-       lcl = lc->categories[category];
-       if (lcl == NULL) {
-               category = 0;
-               lcl = lc->categories[0];
-       }
-
-       /*
-        * Get the current time and format it.
-        */
-       time_buf[0]='\0';
-       if (gettimeofday(&tv, NULL) < 0) {
-               syslog(LOG_INFO, "gettimeofday failed in log_vwrite()");
-       } else {
-               tt = tv.tv_sec;
-#ifdef HAVE_TIME_R
-               local_tm = localtime_r(&tt, &tm_tmp);
-#else
-               local_tm = localtime(&tt);
-#endif
-               if (local_tm != NULL) {
-                       sprintf(time_buf, "%02d-%s-%4d %02d:%02d:%02d.%03ld ",
-                               local_tm->tm_mday, months[local_tm->tm_mon],
-                               local_tm->tm_year+1900, local_tm->tm_hour,
-                               local_tm->tm_min, local_tm->tm_sec,
-                               (long)tv.tv_usec/1000);
-               }
-       }
-
-       /*
-        * Make a string representation of the current category and level
-        */
-
-       if (lc->category_names != NULL &&
-           lc->category_names[original_category] != NULL)
-               category_name = lc->category_names[original_category];
-       else
-               category_name = "";
-
-       if (level >= log_critical) {
-               if (level >= 0) {
-                       sprintf(level_buf, "debug %d: ", level);
-                       level_str = level_buf;
-               } else
-                       level_str = level_text[-level-1];
-       } else {
-               sprintf(level_buf, "level %d: ", level);
-               level_str = level_buf;
-       }
-
-       /*
-        * Write the message to channels.
-        */
-       for ( /* nothing */; lcl != NULL; lcl = lcl->next) {
-               chan = lcl->channel;
-
-               if (!log_check_channel(lc, level, chan))
-                       continue;
-
-               if (!did_vsprintf) {
-                       (void)vsprintf(lc->buffer, format, args);
-                       if (strlen(lc->buffer) > (size_t)LOG_BUFFER_SIZE) {
-                               syslog(LOG_CRIT,
-                                      "memory overrun in log_vwrite()");
-                               exit(1);
-                       }
-                       did_vsprintf = 1;
-               }
-
-               switch (chan->type) {
-               case log_syslog:
-                       if (level >= log_critical)
-                               pri = (level >= 0) ? 0 : -level;
-                       else
-                               pri = -log_critical;
-                       syslog(chan->out.facility|syslog_priority[pri],
-                              "%s%s%s%s",
-                              (chan->flags & LOG_TIMESTAMP) ?  time_buf : "",
-                              (chan->flags & LOG_PRINT_CATEGORY) ?
-                              category_name : "",
-                              (chan->flags & LOG_PRINT_LEVEL) ?
-                              level_str : "",
-                              lc->buffer);
-                       break;
-               case log_file:
-                       stream = chan->out.file.stream;
-                       if (stream == NULL) {
-                               stream = log_open_stream(chan);
-                               if (stream == NULL)
-                                       break;
-                       }
-                       if (chan->out.file.max_size != ULONG_MAX) {
-                               long pos;
-                               
-                               pos = ftell(stream);
-                               if (pos >= 0 &&
-                                   (unsigned long)pos >
-                                   chan->out.file.max_size) {
-                                       /*
-                                        * try to roll over the log files,
-                                        * ignoring all all return codes
-                                        * except the open (we don't want
-                                        * to write any more anyway)
-                                        */
-                                       log_close_stream(chan);
-                                       version_rename(chan);
-                                       stream = log_open_stream(chan);
-                                       if (stream == NULL)
-                                               break;
-                               }
-                       }
-                       fprintf(stream, "%s%s%s%s\n", 
-                               (chan->flags & LOG_TIMESTAMP) ? time_buf : "",
-                               (chan->flags & LOG_PRINT_CATEGORY) ?
-                               category_name : "",
-                               (chan->flags & LOG_PRINT_LEVEL) ?
-                               level_str : "",
-                               lc->buffer);
-                       fflush(stream);
-                       break;
-               case log_null:
-                       break;
-               default:
-                       syslog(LOG_ERR,
-                              "unknown channel type in log_vwrite()");
-               }
-       }
-}
-
-void
-log_write(log_context lc, int category, int level, const char *format, ...) {
-       va_list args;
-
-       va_start(args, format);
-       log_vwrite(lc, category, level, format, args);
-       va_end(args);
-}
-
-/*%
- * Functions to create, set, or destroy contexts
- */
-
-int
-log_new_context(int num_categories, char **category_names, log_context *lc) {
-       log_context nlc;
-
-       nlc = memget(sizeof (struct log_context));
-       if (nlc == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       nlc->num_categories = num_categories;
-       nlc->category_names = category_names;
-       nlc->categories = memget(num_categories * sizeof (log_channel_list));
-       if (nlc->categories == NULL) {
-               memput(nlc, sizeof (struct log_context));
-               errno = ENOMEM;
-               return (-1);
-       }
-       memset(nlc->categories, '\0',
-              num_categories * sizeof (log_channel_list));
-       nlc->flags = 0U;
-       nlc->level = 0;
-       *lc = nlc;
-       return (0);
-}
-
-void
-log_free_context(log_context lc) {
-       log_channel_list lcl, lcl_next;
-       log_channel chan;
-       int i;
-
-       REQUIRE(lc != NULL);
-
-       for (i = 0; i < lc->num_categories; i++)
-               for (lcl = lc->categories[i]; lcl != NULL; lcl = lcl_next) {
-                       lcl_next = lcl->next;
-                       chan = lcl->channel;
-                       (void)log_free_channel(chan);
-                       memput(lcl, sizeof (struct log_channel_list));
-               }
-       memput(lc->categories,
-              lc->num_categories * sizeof (log_channel_list));
-       memput(lc, sizeof (struct log_context));
-}
-
-int
-log_add_channel(log_context lc, int category, log_channel chan) {
-       log_channel_list lcl;
-
-       if (lc == NULL || category < 0 || category >= lc->num_categories) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       lcl = memget(sizeof (struct log_channel_list));
-       if (lcl == NULL) {
-               errno = ENOMEM;
-               return(-1);
-       }
-       lcl->channel = chan;
-       lcl->next = lc->categories[category];
-       lc->categories[category] = lcl;
-       chan->references++;
-       return (0);
-}
-
-int
-log_remove_channel(log_context lc, int category, log_channel chan) {
-       log_channel_list lcl, prev_lcl, next_lcl;
-       int found = 0;
-
-       if (lc == NULL || category < 0 || category >= lc->num_categories) {
-               errno = EINVAL;
-               return (-1);
-       }
-
-       for (prev_lcl = NULL, lcl = lc->categories[category];
-            lcl != NULL;
-            lcl = next_lcl) {
-               next_lcl = lcl->next;
-               if (lcl->channel == chan) {
-                       log_free_channel(chan);
-                       if (prev_lcl != NULL)
-                               prev_lcl->next = next_lcl;
-                       else
-                               lc->categories[category] = next_lcl;
-                       memput(lcl, sizeof (struct log_channel_list));
-                       /*
-                        * We just set found instead of returning because
-                        * the channel might be on the list more than once.
-                        */
-                       found = 1;
-               } else
-                       prev_lcl = lcl;
-       }
-       if (!found) {
-               errno = ENOENT;
-               return (-1);
-       }
-       return (0);
-}
-
-int
-log_option(log_context lc, int option, int value) {
-       if (lc == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-       switch (option) {
-       case LOG_OPTION_DEBUG:
-               if (value)
-                       lc->flags |= option;
-               else
-                       lc->flags &= ~option;
-               break;
-       case LOG_OPTION_LEVEL:
-               lc->level = value;
-               break;
-       default:
-               errno = EINVAL;
-               return (-1);
-       }
-       return (0);
-}
-
-int
-log_category_is_active(log_context lc, int category) {
-       if (lc == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-       if (category >= 0 && category < lc->num_categories &&
-           lc->categories[category] != NULL)
-               return (1);
-       return (0);
-}
-
-log_channel
-log_new_syslog_channel(unsigned int flags, int level, int facility) {
-       log_channel chan;
-
-       chan = memget(sizeof (struct log_channel));
-       if (chan == NULL) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       chan->type = log_syslog;
-       chan->flags = flags;
-       chan->level = level;
-       chan->out.facility = facility;
-       chan->references = 0;
-       return (chan);
-}
-
-log_channel
-log_new_file_channel(unsigned int flags, int level,
-                    const char *name, FILE *stream, unsigned int versions,
-                    unsigned long max_size) {
-       log_channel chan;
-
-       chan = memget(sizeof (struct log_channel));
-       if (chan == NULL) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       chan->type = log_file;
-       chan->flags = flags;
-       chan->level = level;
-       if (name != NULL) {
-               size_t len;
-               
-               len = strlen(name);
-               /* 
-                * Quantize length to a multiple of 256.  There's space for the
-                * NUL, since if len is a multiple of 256, the size chosen will
-                * be the next multiple.
-                */
-               chan->out.file.name_size = ((len / 256) + 1) * 256;
-               chan->out.file.name = memget(chan->out.file.name_size);
-               if (chan->out.file.name == NULL) {
-                       memput(chan, sizeof (struct log_channel));
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               /* This is safe. */
-               strcpy(chan->out.file.name, name);
-       } else {
-               chan->out.file.name_size = 0;
-               chan->out.file.name = NULL;
-       }
-       chan->out.file.stream = stream;
-       chan->out.file.versions = versions;
-       chan->out.file.max_size = max_size;
-       chan->out.file.owner = getuid();
-       chan->out.file.group = getgid();
-       chan->references = 0;
-       return (chan);
-}
-
-int
-log_set_file_owner(log_channel chan, uid_t owner, gid_t group) {
-       if (chan->type != log_file) {
-               errno = EBADF;
-               return (-1);
-       }
-       chan->out.file.owner = owner;
-       chan->out.file.group = group;
-       return (0);
-}
-
-log_channel
-log_new_null_channel() {
-       log_channel chan;
-
-       chan = memget(sizeof (struct log_channel));
-       if (chan == NULL) {
-               errno = ENOMEM;
-               return (NULL);
-       }
-       chan->type = log_null;
-       chan->flags = LOG_CHANNEL_OFF;
-       chan->level = log_info;
-       chan->references = 0;
-       return (chan);
-}
-
-int
-log_inc_references(log_channel chan) {
-       if (chan == NULL) {
-               errno = EINVAL;
-               return (-1);
-       }
-       chan->references++;
-       return (0);
-}
-
-int
-log_dec_references(log_channel chan) {
-       if (chan == NULL || chan->references <= 0) {
-               errno = EINVAL;
-               return (-1);
-       }
-       chan->references--;
-       return (0);
-}
-
-log_channel_type
-log_get_channel_type(log_channel chan) {
-       REQUIRE(chan != NULL);
-       
-       return (chan->type);
-}
-
-int
-log_free_channel(log_channel chan) {
-       if (chan == NULL || chan->references <= 0) {
-               errno = EINVAL;
-               return (-1);
-       }
-       chan->references--;
-       if (chan->references == 0) {
-               if (chan->type == log_file) {
-                       if ((chan->flags & LOG_CLOSE_STREAM) &&
-                           chan->out.file.stream != NULL)
-                               (void)fclose(chan->out.file.stream);
-                       if (chan->out.file.name != NULL)
-                               memput(chan->out.file.name,
-                                      chan->out.file.name_size);
-               }
-               memput(chan, sizeof (struct log_channel));
-       }
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/isc/logging.mdoc b/lib/bind/isc/logging.mdoc
deleted file mode 100644 (file)
index 98b2aed..0000000
+++ /dev/null
@@ -1,1056 +0,0 @@
-.\" $Id: logging.mdoc,v 1.3 2004/03/09 06:30:08 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.\" The following six UNCOMMENTED lines are required.
-.Dd January 1, 1996
-.\"Os OPERATING_SYSTEM [version/release]
-.Os BSD 4
-.\"Dt DOCUMENT_TITLE [section number] [volume]
-.Dt LOGGING @SYSCALL_EXT@
-.Sh NAME
-.Nm log_open_stream ,
-.Nm log_close_stream ,
-.Nm log_get_stream ,
-.Nm log_get_filename ,
-.Nm log_vwrite ,
-.Nm log_write ,
-.Nm log_new_context ,
-.Nm log_free_context ,
-.Nm log_add_channel ,
-.Nm log_remove_channel ,
-.Nm log_option ,
-.Nm log_category_is_active ,
-.Nm log_new_syslog_channel ,
-.Nm log_new_file_channel ,
-.Nm log_set_file_owner ,
-.Nm log_new_null_channel ,
-.Nm log_inc_references ,
-.Nm log_dec_references ,
-.Nm log_free_channel
-.Nd logging system
-.Sh SYNOPSIS
-.Fd #include <isc/logging.h>
-.Ft FILE *
-.Fn log_open_stream "log_channel chan"
-.Ft int
-.Fn log_close_stream "log_channel chan"
-.Ft FILE * 
-.Fn log_get_stream "log_channel chan"
-.Ft char * 
-.Fn log_get_filename "log_channel chan"
-.Ft void 
-.Fn log_vwrite "log_context lc" "int category" "int level" \
-    "const char *format" va_list args"
-.Ft void 
-.Fn log_write "log_context lc" "int category" "int level" \
-    "const char *format" "..."
-.Ft int
-.Fn log_check_channel "log_context lc" "int level" "log_channel chan"
-.Ft int
-.Fn log_check "log_context lc" "int category" "int level"
-.Ft int 
-.Fn log_new_context "int num_categories" "char **category_names" \
-    "log_context *lc"
-.Ft void 
-.Fn log_free_context "log_context lc"
-.Ft int 
-.Fn log_add_channel "log_context lc" "int category" "log_channel chan"
-.Ft int 
-.Fn log_remove_channel "log_context lc" "int category" "log_channel chan"
-.Ft int 
-.Fn log_option "log_context lc" "int option" "int value"
-.Ft int 
-.Fn log_category_is_active "log_context lc" "int category"
-.Ft log_channel 
-.Fn log_new_syslog_channel "unsigned int flags" "int level" "int facility"
-.Ft log_channel 
-.Fn log_new_file_channel "unsigned int flags" "int level" \
-    "char *name" "FILE *stream" "unsigned int versions" \
-    "unsigned long max_size"
-.Ft int
-.Fn log_set_file_owner "log_channel chan" "uid_t owner" "gid_t group"
-.Ft log_channel 
-.Fn log_new_null_channel "void"
-.Ft int 
-.Fn log_inc_references "log_channel chan"
-.Ft int 
-.Fn log_dec_references "log_channel chan"
-.Ft int 
-.Fn log_free_channel "log_channel chan"
-.Sh DESCRIPTION
-The
-.Sy ISC
-.Nm logging library
-is flexible logging system which is based upon a set of concepts:
-.Nm logging channels ,
-.Nm categories ,
-and 
-.Nm logging contexts .
-.Pp
-The basic building block is the
-.Dq Nm logging channel , 
-which includes a 
-.Nm priority 
-(logging level), which type of logging is to occur, and other
-flags and information associated with technical aspects of the logging.  
-The set of priorities which are supported is shown below, in the section
-.Sx Message Priorities .
-A priority sets a threshold for message logging; a logging channel will
-.Em only
-log those messages which are 
-.Em at least as important
-as its priority indicates.  (The fact that 
-.Dq more important
-means 
-.Dq more negative ,
-under the current scheme, is an implementation detail; if a channel has
-a priority of
-.Dv log_error ,
-then it will
-.Em not
-log messages with the
-.Dv log_warning
-priority, but it
-.Em will
-log messages with the
-.Dv log_error
-or 
-.Dv log_critical
-priority.)
-.Pp
-The
-.Nm logging channel
-also has an indication of the type of logging performed.  Currently, 
-the supported
-.Nm logging types 
-include (see also 
-.Sx Logging Types ,
-below):
-.Bl -tag -width "log_syslog" -compact -offset indent
-.It Dv log_syslog
-for 
-.Xr syslog 3 Ns -style
-logging
-.It Dv log_file
-for use of a file
-.It Dv log_null
-for 
-.Em no
-logging
-.El
-A new logging channel is created by calling either
-.Fn log_new_syslog_channel ,
-.Fn log_new_file_channel ,
-or
-.Fn log_new_null_channel ,
-respectively.  
-When a channel is no longer to be used, it can be freed using
-.Fn log_free_channel .
-.Pp
-Both 
-.Dv log_syslog
-and
-.Dv log_file
-channel types can include more information; for instance, a
-.Dv log_syslog Ns -type 
-channel allows the specification of a 
-.Xr syslog 3 Ns -style
-.Dq facility , 
-and a
-.Dv log_file Ns -type
-channels allows the caller to set a maximum file size and number
-of versions.  (See 
-.Fn log_new_syslog_channel
-or
-.Fn log_new_file_channel ,
-below.)
-Additionally, once a logging channel of type
-.Dv log_file
-is defined, the functions
-.Fn log_open_stream
-and 
-.Fn log_close_stream
-can open or close the stream associated with the logging channel's logging
-filename.  The
-.Fn log_get_stream
-and
-.Fn log_get_filename
-functions return the stream or filename, respectively, of such a logging 
-channel.  Also unique to logging channels of type
-.Dv log_file
-is the
-.Fn log_set_file_owner
-function, which tells the logging system what user and group ought to own
-newly created files (which is only effective if the caller is privileged.)
-.Pp
-Callers provide
-.Dq Nm categories ,
-determining both the number of such categories and any (optional) names.
-Categories are like array indexes in C; if the caller declares 
-.Dq Va n
-categories, then they are considered to run from 0 to
-.Va n-1 ;
-with this scheme, a category number would be invalid if it were negative or 
-greater than/equal to 
-.Va n .
-Each category can have its own list of 
-.Nm logging channels 
-associated with it; we say that such a channel is 
-.Dq in 
-the particular category.
-.Sy NOTE :
-Individual logging channels can appear in more than one category.
-.Pp
-A
-.Dq Nm logging context
-is the set of all 
-.Nm logging channels 
-associated with the context's
-.Nm categories ;
-thus, a particular 
-.Nm category 
-scheme is associated with a particular
-.Nm logging context .
-.Sy NOTE :
-A logging channel may appear in more than one logging context, and in 
-multiple categories within each logging context.
-.Pp
-Use 
-.Fn log_add_channel
-and
-.Fn log_remove_channel
-to add or remove a logging channel to some category in a logging context.
-To see if a given category in a logging context is being used, use the
-Boolean test
-.Fn log_category_is_active .
-.Pp
-A 
-.Nm logging context
-can also have a 
-.Nm priority
-(logging level)
-and various flags associated with the whole context; in order to alter the
-flags or change the priority of a context, use
-.Fn log_option .
-.Ss Message Priorities
-Currently, five 
-.Nm priorities
-(logging levels) are supported (they can also be found in the header file):
-.Bd -literal -offset indent
-#define log_critical            (-5)
-#define log_error               (-4)
-#define log_warning             (-3)
-#define log_notice              (-2)
-#define log_info                (-1)
-.Ed
-.Pp
-In the current implementation, logging messages which have a level greater
-than 0 are considered to be debugging messages.
-.Ss Logging Types
-The three different
-.Nm logging types 
-currently supported are different values of the enumerated type
-.Ft log_output_type 
-(these are also listed in the header file): 
-.Bd -literal -offset indent
-typedef enum { log_syslog, log_file, log_null } log_output_type;
-.Ed
-.Ss Logging Channel Flags 
-There are several flags which can be set on a logging channel; the flags 
-and their meanings are as follows (they are also found in the header file):
-.Bl -tag -width "LOG_USE_CONTEXT_LEVEL  " -offset indent
-.It Dv LOG_CHANNEL_BROKEN
-This is set only when some portion of 
-.Fn log_open_stream
-fails:
-.Xr open 2 
-or
-.Xr fdopen 3  
-fail;
-.Xr stat 2
-fails in a
-.Dq bad
-way; versioning or truncation is requested on a non-normal file.
-.It Dv LOG_CHANNEL_OFF
-This is set for channels opened by 
-.Fn log_new_null_channel .
-.It Dv LOG_CLOSE_STREAM
-If this flag is set, then 
-.Fn log_free_channel
-will free a 
-.No non- Dv NULL
-stream of a logging channel which is being
-.Xr free 3 Ns -d 
-(if the logging channel is of type
-.Dv log_file ,
-of course).
-.It Dv LOG_PRINT_CATEGORY
-If set, 
-.Fn log_vwrite
-will insert the category name, if available, into logging messages which are 
-logged to channels of type
-.Dv log_syslog
-or 
-.Dv log_file .
-.It Dv LOG_PRINT_LEVEL
-If set, 
-.Fn log_vwrite
-will insert a string identifying the message priority level into the 
-information logged to channels of type
-.Dv log_syslog
-or 
-.Dv log_file .
-.It Dv LOG_REQUIRE_DEBUG
-Only log debugging messages (i.e., those with a priority greater than zero).
-.It Dv LOG_TIMESTAMP
-If set, 
-.Fn log_vwrite
-will insert a timestamp into logging messages which are logged to channels of
-type
-.Dv log_syslog
-or 
-.Dv log_file .
-.It Dv LOG_TRUNCATE
-Truncate logging file when re-opened
-.Fn ( log_open_stream 
-will
-.Xr unlink 2
-the file and then 
-.Xr open 2
-a new file of the same name with the
-.Dv O_EXCL
-bit set).
-.It Dv LOG_USE_CONTEXT_LEVEL
-Use the logging context's priority or logging level, rather than the logging 
-channel's own priority.  This can be useful for those channels which are 
-included in multiple logging contexts.
-.El
-.Ss FUNCTION DESCRIPTIONS
-The function
-.Fn log_open_stream 
-is for use with channels which log to a file; i.e., logging channels with a
-.Va type 
-field set to
-.Dq Dv log_file .
-If the logging channel pointed to by 
-.Dq Fa chan
-is valid, it attempts to open (and return) the stream associated with that
-channel.  If the stream is already opened, then it is returned; otherwise,
-.Xr stat 2
-is used to test the filename for the stream.
-.Pp
-At this point, if the logging file is supposed to have different
-.Va versions 
-(i.e., incremented version numbers; higher numbers indicate older versions
-of the logging file).  If so, then any existing versions are
-.Xr rename 2 Ns -d
-to have one version-number higher than previously, and the
-.Dq current
-filename for the stream is set to the
-.Dq \&.0
-form of the name.  Next, if the logging file is supposed to be truncated
-(i.e., the
-.Dv LOG_TRUNCATE
-bit of the
-.Va flags
-field of the logging channel structure is set), then any file with the
-.Dq current
-filename for the stream is
-.Xr unlink 2 Ns -d .
-.Sy NOTE :
-If the logging file is 
-.Em not 
-a regular file, and either of the above operations (version numbering
-or truncation) is supposed to take place, a
-.Dv NULL
-file pointer is returned.
-.Pp
-Finally, the filename associated with the logging channel is
-.Xr open 2 Ns -d
-using the appropriate flags and a mode which sets the read/write permissions
-for the user, group, and others.  The file descriptor returned by 
-.Xr open 2
-is then passed to
-.Xr fopen 3 ,
-with the append mode set, and the stream returned by this call is stored
-in the 
-.Fa chan
-structure and returned.
-.Pp
-If 
-.Fn log_open_stream
-fails at any point, then the 
-.Dv LOG_CHANNEL_BROKEN 
-bit of the
-.Va flags 
-field of the logging channel pointed to by
-.Fa chan
-is set, a 
-.Dv NULL
-is returned, and 
-.Va errno
-contains pertinent information.
-.Pp
-The
-.Fn log_close_stream
-function closes the stream associated with the logging channel pointed to by
-.Dq Fa chan 
-(if
-.Fa chan 
-is valid and the stream exists and can be closed properly by
-.Xr fclose 3 ) .  
-The stream is set to 
-.Dv NULL
-even if the call to 
-.Xr fclose 3
-fails.
-.Pp
-The function
-.Fn log_get_stream
-returns the stream associated with the logging channel pointed to by
-.Dq Fa chan ,
-if it is 
-.No non- Ns Dv NULL
-and specifies a logging channel which has a 
-.Dv FILE *
-or stream associated with it.
-.Pp
-The
-.Fn log_get_filename
-function returns the name of the file associated with the logging channel 
-pointed to by
-.Dq Fa chan ,
-if it is 
-.No non- Ns Dv NULL
-and specifies a logging channel which has a file associated with it.
-.Pp
-The
-.Fn log_vwrite 
-function performs the actual logging of a message to the various logging
-channels of a logging context
-.Fa lc .
-The message consists of an
-.Xr fprint 3 Ns -style
-.Fa format 
-and its associated
-.Fa args 
-(if any); it will be written to all logging channels in the given
-.Fa category
-which have a priority set to
-.Fa level
-or any 
-.Em less important
-priority value.  If the
-.Fa category
-is not valid or has no logging channels, then the category defaults to 0.
-.Pp
-There are a number of conditions under which a call to 
-.Fn log_vwrite
-will not result in actually logging the message: if there is no logging channel 
-at even the default category (0), or if a given channel is either 
-.Dq broken
-or
-.Dq off
-(i.e., its flags have 
-.Dv LOG_CHANNEL_BROKEN
-or
-.Dv LOG_CHANNEL_OFF
-set, respectively), or if the logging channel channel is of type
-.Dv log_null .
-Additionally, if the logging channel's flag has
-.Dv LOG_REQUIRE_DEBUG
-set and the message is not a debugging message (i.e., has a level greater
-than 0), then it will not be logged.
-Finally, if the message's priority is less important than the
-channel's logging level (the priority threshold), will not be logged.
-.Sy NOTE :
-If a logging channel's flag has
-.Dv LOG_USE_CONTEXT_LEVEL
-set, it will use the logging context's priority, rather than its own.
-.Pp
-If all of these hurdles are passed, then only
-.Dv log_syslog
-and
-.Dv log_file
-channels actually can have logging.  For channels which use
-.Xr syslog 3 ,
-the channel's 
-.Xr syslog 3
-facility is used in conjunction with a potentially modified form of the
-message's priority level, since 
-.Xr syslog 3
-has its own system of priorities
-.Pq Pa /usr/include/syslog.h . 
-All debug messages (priority >= 0) are mapped to 
-.Xr syslog 3 Ns 's
-.Dv LOG_DEBUG
-priority, all messages 
-.Dq more important
-than
-.Dv log_critical
-are mapped to
-.Dv LOG_CRIT ,
-and the priorities corresponding to the ones listed in the section
-.Sx Message Priorities
-are given the obvious corresponding 
-.Xr syslog 3
-priority.
-.Pp
-For 
-.Dv log_file
-type logging channels, if the file size is greater than the maximum file 
-size, then no logging occurs.  (The same thing happens if a 
-.Dv NULL
-stream is encountered and
-.Fn log_open_stream
-fails to open the channel's stream.)
-.Pp
-For both logging to normal files and logging via
-.Xr syslog 3 ,
-the value of the flags
-.Dv LOG_TIMESTAMP ,
-.Dv LOG_PRINT_CATEGORY , 
-and
-.Dv LOG_PRINT_LEVEL 
-are used in determining whether or not these items are included in the logged 
-information.
-.Pp
-The 
-.Fn log_write 
-function is merely a front-end to a call to 
-.Fn log_vwrite ;
-see the description of that function, above, for more information.
-.Pp
-.Fn log_check
-and
-.Fn log_check_channel
-are used to see if a contemplated logging call will actually generate any
-output, which is useful when creating a log message involves non-trivial
-work.
-.Fn log_check
-will return non-zero if a call to
-.Fn log_vwrite
-with the given 
-.Fa category
-and
-.Fa level
-would generate output on any channels, and zero otherwise.
-.Fn log_check_channel
-will return non-zero if writing to the
-.Fa chan
-at the given
-.Fa level
-would generate output.
-.Pp
-The function
-.Fn log_new_context 
-creates a new 
-.Nm logging context ,
-and stores this in the
-.Dq Va opaque
-field of the argument
-.Dq Fa lc , 
-and opaque structure used internally.  This new 
-.Nm context 
-will include the
-.Dq Fa num_categories
-and
-.Dq Fa category_names
-which are supplied; the latter can be
-.Dv NULL .
-.Sy NOTE :
-Since 
-.Dq Fa category_names
-is used directly, it 
-.Em must not 
-be freed by the caller, if it is 
-.No non- Ns Dv NULL .
-The initial logging flags and priority are both set to zero.
-.Pp
-The
-.Fn log_free_context 
-function is used to free the opaque structure 
-.Dq Va lc.opaque
-and its components.
-.Sy NOTE :
-The
-.Dq Va opaque
-field of 
-.Dq Fa lc
-.Em must 
-be
-.No non- Ns Dv NULL .
-For each of the various
-.Dq categories
-(indicated by the
-.Dq Va num_categories
-which were in the corresponding call to
-.Fn log_new_context ) 
-associated with the given 
-.Nm logging context ,
-.Em all 
-of the 
-.Nm logging channels
-are 
-.Xr free 3 Ns -d .
-The opaque structure itself is then
-.Xr free 3 Ns -d ,
-and 
-.Dq Va lc.opaque
-is set to
-.Dv NULL .
-.Pp
-.Sy NOTE :
-The function 
-.Fn log_free_context 
-does
-.Em not
-free the memory associated with 
-.Fa category_names ,
-since the logging library did not allocate the memory for it, originally;
-it was supplied in the call to
-.Fn log_new_context .
-.Pp
-The function
-.Fn log_add_channel 
-adds the 
-.Nm logging channel
-.Dq Fa chan
-to the list of logging channels in the given 
-.Fa category
-of the 
-.Nm logging context
-.Dq Fa lc .
-No checking is performed to see whether or not
-.Fa chan
-is already present in the given
-.Fa category ,
-so multiple instances in a single 
-.Fa category 
-can occur (but see
-.Fn log_remove_channel ,
-below).
-.Pp
-The
-.Fn log_remove_channel 
-function
-removes 
-.Em all
-occurrences of the
-.Nm logging channel
-.Dq Fa chan
-from the list of logging channels in the given 
-.Fa category
-of the 
-.Nm logging context
-.Dq Fa lc .
-It also attempts to free the channel by calling
-.Fn log_free_channel 
-(see its description, below).
-.Pp
-The
-.Fn log_option 
-function is used to change the
-.Fa option 
-of the indicated logging context
-.Fa lc
-to the given
-.Fa value .
-The 
-.Fa option
-can be either
-.Dv LOG_OPTION_LEVEL
-or
-.Dv LOG_OPTION_DEBUG ;
-in the first case, the log context's debugging level is reset to the
-indicated level.  If the
-.Fa option 
-is 
-.Dv LOG_OPTION_DEBUG , 
-then a non-zero
-.Fa value
-results in setting the debug flag of the logging context, while a zero
-.Fa value
-means that the debug flag is reset.
-.Pp
-The
-.Fn log_category_is_active 
-test returns a 1 if the given
-.Fa category
-of the indicated logging context
-.Fa lc
-has at least one logging channel, and 0, otherwise.
-.Pp
-The functions
-.Fn log_new_syslog_channel ,
-.Fn log_new_file_channel ,
-and 
-.Fn log_new_null_channel
-create a new channel of the type specified (thus, the difference in arguments);
-the 
-.Dq Va type
-field of the new
-.Do
-.Ft struct log_channel
-.Dc
-is always set to the appropriate value.
-.Pp
-The 
-.Fn log_new_syslog_channel
-function 
-.Xr malloc 3 Ns -s
-a new
-.Ft struct log_channel
-of
-.Va type
-.Dv log_syslog ,
-i.e., a logging channel which will use
-.Xr syslog 3 .
-The new structure is filled out with the 
-.Dq Fa flags ,
-.Dq Fa level , 
-and 
-.Dq Fa facility 
-which are given; the 
-.Va references
-field is initialized to zero.
-See 
-.Sx Logging Channel Flags
-and
-.Sx Message Priorities ,
-above, or the header file for information about acceptable values for
-.Dq Fa flags ,
-and 
-.Dq Fa level .
-The
-.Dq Fa facility .
-can be any valid
-.Xr syslog 3
-facility; see the appropriate system header file or manpage for more 
-information.
-.Pp
-.Ft log_channel 
-.Fn log_new_file_channel "unsigned int flags" "int level" \
-    "char *name" "FILE *stream" "unsigned int versions" \
-    "unsigned long max_size"
-.Pp
-.Fn log_new_null_channel 
-.Pp
-The functions
-.Fn log_inc_references 
-and
-.Fn log_dec_references 
-increment or decrements, respectively, the
-.Va references 
-field of the logging channel pointed to by
-.Dq Fa chan ,
-if it is a valid channel (and if the 
-.Va references
-field is strictly positive, in the case of
-.Fn log_dec_references ) .
-These functions are meant to track changes in the number of different clients
-which refer to the given logging channel.
-.Pp
-The 
-.Fn log_free_channel
-function frees the 
-field of the logging channel pointed to by
-.Dq Fa chan 
-if there are no more outstanding references to it.  If the channel uses a file, 
-the stream is 
-.Xr fclose 3 Ns -d 
-(if the
-.Dv LOG_CLOSE_STREAM
-flag is set), and the filename, if 
-.No non- Ns Dv NULL ,
-is 
-.Xr free 3 Ns -d 
-before 
-.Dq Fa chan
-is 
-.Xr free 3 Ns -d .
-.Pp
-.\" The following requests should be uncommented and
-.\" used where appropriate.  This next request is
-.\" for sections 2 and 3 function return values only.
-.Sh RETURN VALUES
-.\" This next request is for sections 1, 6, 7 & 8 only
-.Bl -tag -width "log_category_is_active()"
-.It Fn log_open_stream
-.Dv NULL 
-is returned under any of several error conditions:
-a) if 
-.Dq Fa chan
-is either
-.Dv NULL
-or a 
-.No non- Ns Dv log_file
-channel
-.Pq Va errno No is set to Dv EINVAL ;
-b) if either versioning or truncation is requested for a non-normal file
-.Pq Va errno No is set to Dv EINVAL ;
-c) if any of
-.Xr stat 2 , 
-.Xr open 2 , 
-or
-.Xr fdopen 3
-fails
-.Po
-.Va errno 
-is set by the call which failed 
-.Pc .
-If some value other than
-.Dv NULL
-is returned, then it is a valid logging stream (either newly-opened or 
-already-open).
-.It Fn log_close_stream
--1 if the stream associated with
-.Dq Fa chan
-is 
-.No non- Ns Dv NULL
-and the call to
-.Xr fclose 3
-fails.
-0 if successful or the logging channel pointed to by
-.Dq Fa chan
-is invalid (i.e.,
-.Dv NULL
-or not a logging channel which has uses a file); in the latter case, 
-.Va errno
-is set to 
-.Dv EINVAL .  
-.It Fn log_get_stream
-.Dv NULL 
-under the same conditions as those under which
-.Fn log_close_stream ,
-above, returns 0 (including the setting of 
-.Va errno ) .
-Otherwise, the stream associated with the logging channel is returned.
-.It Fn log_get_filename
-.Dv NULL 
-under the same conditions as those under which
-.Fn log_close_stream ,
-above, returns 0 (including the setting of 
-.Va errno ) .
-Otherwise, the name of the file associated with the logging channel is 
-returned.
-.It Fn log_new_context
--1 if 
-.Xr malloc 3
-fails
-.Pq with Va errno No set to Dv ENOMEM .
-Otherwise, 0, with 
-.Dq Va lc->opaque
-containing the new structures and information.
-.It Fn log_add_channel
--1 if
-a) either
-.Dq Va lc.opaque
-is
-.Dv NULL 
-or 
-.Fa category
-is invalid (negative or greater than or equal to 
-.Va lcp->num_categories ) ,
-with
-.Va errno 
-set to 
-.Dv EINVAL ;
-b) 
-.Xr malloc 3
-fails
-.Pq with Va errno No set to Dv ENOMEM .
-Otherwise, 0.
-.It Fn log_remove_channel
--1 if
-a) either
-.Dq Va lc.opaque
-is 
-.Dv NULL
-or 
-.Fa category
-is invalid, as under failure condition a) for
-.Fn log_add_channel ,
-above, including the setting of
-.Va errno ;
-b) no channel numbered
-.Fa chan
-is found in the logging context indicated by
-.Fa lc 
-.Pq with Va errno No set to Dv ENOENT .
-Otherwise, 0.
-.It Fn log_option
--1 if
-a) 
-.Dq Va lc.opaque
-is
-.Dv NULL , 
-b)
-.Fa option
-specifies an unknown logging option;
-in either case, 
-.Va errno 
-is set to 
-.Dv EINVAL .
-Otherwise, 0.
-.It Fn log_category_is_active
--1 if
-.Dq Va lc.opaque
-is
-.Dv NULL 
-.Pq with Va errno No set to Dv EINVAL ;
-1 if the
-.Fa category
-number is valid and there are logging channels in this 
-.Fa category
-within the indicated logging context; 0 if the
-.Fa category
-number is invalid or there are no logging channels in this
-.Fa category
-within the indicated logging context.
-.It Fn log_new_syslog_channel
-.Dv NULL
-if
-.Xr malloc 3
-fails
-.Pq with Va errno No set to ENOMEM ;
-otherwise, a valid 
-.Dv log_syslog Ns -type
-.Ft log_channel .
-.It Fn log_new_file_channel
-.Dv NULL
-if
-.Xr malloc 3
-fails
-.Pq with Va errno No set to ENOMEM ;
-otherwise, a valid
-.Dv log_file Ns -type
-.Ft log_channel .
-.It Fn log_new_null_channel
-.Dv NULL
-if
-.Xr malloc 3
-fails
-.Pq with Va errno No set to ENOMEM ;
-otherwise, a valid 
-.Dv log_null Ns -type
-.Ft log_channel .
-.It Fn log_inc_references
--1 if 
-.Dq Fa chan
-is 
-.Dv NULL 
-.Pq with Va errno set to Dv EINVAL .
-Otherwise, 0.
-.It Fn log_dec_references
--1 if 
-.Dq Fa chan
-is 
-.Dv NULL 
-or its
-.Va references
-field is already <= 0
-.Pq with Va errno set to Dv EINVAL .
-Otherwise, 0.
-.It Fn log_free_channel
--1 under the same conditions as
-.Fn log_dec_references ,
-above, including the setting of 
-.Va errno ;
-0 otherwise.
-.El
-.\" .Sh ENVIRONMENT
-.Sh FILES
-.Bl -tag -width "isc/logging.h"
-.It Pa isc/logging.h
-include file for logging library
-.It Pa syslog.h
-.Xr syslog 3 Ns -style
-priorities
-.El
-.\" .Sh EXAMPLES
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\"     (command return values (to shell) and
-.\"    fprintf/stderr type diagnostics)
-.\" .Sh DIAGNOSTICS
-.\" The next request is for sections 2 and 3 error
-.\" and signal handling only.
-.Sh ERRORS
-This table shows which functions can return the indicated error in the
-.Va errno
-variable; see the
-.Sx RETURN VALUES
-section, above, for more information.
-.Bl -tag -width "(any0other0value)0"
-.It Dv EINVAL
-.Fn log_open_stream ,
-.Fn log_close_stream ,
-.Fn log_get_stream ,
-.Fn log_get_filename ,
-.Fn log_add_channel ,
-.Fn log_remove_channel ,
-.Fn log_option ,
-.Fn log_category_is_active ,
-.Fn log_inc_references ,
-.Fn log_dec_references ,
-.Fn log_free_channel .
-.It Dv ENOENT
-.Fn log_remove_channel .
-.It Dv ENOMEM
-.Fn log_new_context ,
-.Fn log_add_channel ,
-.Fn log_new_syslog_channel ,
-.Fn log_new_file_channel ,
-.Fn log_new_null_channel .
-.It (any other value)
-returned via a pass-through of an error code from
-.Xr stat 2 , 
-.Xr open 2 , 
-or
-.Xr fdopen 3 ,
-which can occur in 
-.Fn log_open_stream
-and functions which call it
-.Pq currently, only Fn log_vwrite .
-.El
-.Pp
-Additionally, 
-.Fn log_vwrite
-and
-.Fn log_free_context
-will fail via 
-.Fn assert
-if 
-.Dq Va lc.opaque
-is
-.Dv NULL .
-The function
-.Fn log_vwrite
-can also exit with a critical error logged via
-.Xr syslog 3
-indicating a memory overrun
-.Sh SEE ALSO
-.Xr @INDOT@named @SYS_OPS_EXT@ ,
-.Xr syslog 3 .
-The HTML documentation includes a file,
-.Pa logging.html ,
-which has more information about this logging system.
-.\" .Sh STANDARDS
-.\" .Sh HISTORY
-.Sh AUTHORS
-Bob Halley...TODO
-.\" .Sh BUGS
diff --git a/lib/bind/isc/logging_p.h b/lib/bind/isc/logging_p.h
deleted file mode 100644 (file)
index 5e6314f..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 LOGGING_P_H
-#define LOGGING_P_H
-
-typedef struct log_file_desc {
-       char *name;
-       size_t name_size;
-       FILE *stream;
-       unsigned int versions;
-       unsigned long max_size;
-       uid_t owner;
-       gid_t group;
-} log_file_desc;
-
-typedef union log_output {
-       int facility;
-       log_file_desc file;
-} log_output;
-
-struct log_channel {
-       int level;                      /*%< don't log messages > level */
-       log_channel_type type;
-       log_output out;
-       unsigned int flags;
-       int references;
-};
-
-typedef struct log_channel_list {
-       log_channel channel;
-       struct log_channel_list *next;
-} *log_channel_list;
-
-#define LOG_BUFFER_SIZE 20480
-
-struct log_context {
-       int num_categories;
-       char **category_names;
-       log_channel_list *categories;
-       int flags;
-       int level;
-       char buffer[LOG_BUFFER_SIZE];
-};
-
-#endif /* !LOGGING_P_H */
-/*! \file */
diff --git a/lib/bind/isc/memcluster.c b/lib/bind/isc/memcluster.c
deleted file mode 100644 (file)
index 515793f..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- * Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-
-/* When this symbol is defined allocations via memget are made slightly 
-   bigger and some debugging info stuck before and after the region given 
-   back to the caller. */
-/* #define DEBUGGING_MEMCLUSTER */
-#define MEMCLUSTER_ATEND
-
-
-#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: memcluster.c,v 1.11 2006/08/30 23:34:38 marka Exp $";
-#endif /* not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <isc/memcluster.h>
-#include <isc/assertions.h>
-
-#include "port_after.h"
-
-#ifdef MEMCLUSTER_RECORD
-#ifndef DEBUGGING_MEMCLUSTER
-#define DEBUGGING_MEMCLUSTER
-#endif
-#endif
-
-#define DEF_MAX_SIZE           1100
-#define DEF_MEM_TARGET         4096
-
-typedef u_int32_t fence_t;
-
-typedef struct {
-       void *                  next;
-#if defined(DEBUGGING_MEMCLUSTER)
-#if defined(MEMCLUSTER_RECORD)
-       const char *            file;
-       int                     line;
-#endif
-       size_t                  size;
-       fence_t                 fencepost;
-#endif
-} memcluster_element;
-
-#define SMALL_SIZE_LIMIT sizeof(memcluster_element)
-#define P_SIZE sizeof(void *)
-#define FRONT_FENCEPOST 0xfebafeba
-#define BACK_FENCEPOST 0xabefabef
-#define FENCEPOST_SIZE 4
-
-#ifndef MEMCLUSTER_LITTLE_MALLOC
-#define MEMCLUSTER_BIG_MALLOC 1
-#define NUM_BASIC_BLOCKS 64
-#endif
-
-struct stats {
-       u_long                  gets;
-       u_long                  totalgets;
-       u_long                  blocks;
-       u_long                  freefrags;
-};
-
-#ifdef DO_PTHREADS
-#include <pthread.h>
-static pthread_mutex_t memlock = PTHREAD_MUTEX_INITIALIZER;
-#define MEMLOCK                (void)pthread_mutex_lock(&memlock)
-#define MEMUNLOCK      (void)pthread_mutex_unlock(&memlock)
-#else
-/*
- * Catch bad lock usage in non threaded build.
- */
-static unsigned int    memlock = 0;
-#define MEMLOCK                do { INSIST(memlock == 0); memlock = 1; } while (0)
-#define MEMUNLOCK      do { INSIST(memlock == 1); memlock = 0; } while (0)
-#endif  /* DO_PTHEADS */
-
-/* Private data. */
-
-static size_t                  max_size;
-static size_t                  mem_target;
-#ifndef MEMCLUSTER_BIG_MALLOC
-static size_t                  mem_target_half;
-static size_t                  mem_target_fudge;
-#endif
-static memcluster_element **   freelists;
-#ifdef MEMCLUSTER_RECORD
-static memcluster_element **   activelists;
-#endif
-#ifdef MEMCLUSTER_BIG_MALLOC
-static memcluster_element *    basic_blocks;
-#endif
-static struct stats *          stats;
-
-/* Forward. */
-
-static size_t                  quantize(size_t);
-#if defined(DEBUGGING_MEMCLUSTER)
-static void                    check(unsigned char *, int, size_t);
-#endif
-
-/* Public. */
-
-int
-meminit(size_t init_max_size, size_t target_size) {
-
-#if defined(DEBUGGING_MEMCLUSTER)
-       INSIST(sizeof(fence_t) == FENCEPOST_SIZE);
-#endif
-       if (freelists != NULL) {
-               errno = EEXIST;
-               return (-1);
-       }
-       if (init_max_size == 0U)
-               max_size = DEF_MAX_SIZE;
-       else
-               max_size = init_max_size;
-       if (target_size == 0U)
-               mem_target = DEF_MEM_TARGET;
-       else
-               mem_target = target_size;
-#ifndef MEMCLUSTER_BIG_MALLOC
-       mem_target_half = mem_target / 2;
-       mem_target_fudge = mem_target + mem_target / 4;
-#endif
-       freelists = malloc(max_size * sizeof (memcluster_element *));
-       stats = malloc((max_size+1) * sizeof (struct stats));
-       if (freelists == NULL || stats == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       memset(freelists, 0,
-              max_size * sizeof (memcluster_element *));
-       memset(stats, 0, (max_size + 1) * sizeof (struct stats));
-#ifdef MEMCLUSTER_RECORD
-       activelists = malloc((max_size + 1) * sizeof (memcluster_element *));
-       if (activelists == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       memset(activelists, 0,
-              (max_size + 1) * sizeof (memcluster_element *));
-#endif
-#ifdef MEMCLUSTER_BIG_MALLOC
-       basic_blocks = NULL;
-#endif
-       return (0);
-}
-
-void *
-__memget(size_t size) {
-       return (__memget_record(size, NULL, 0));
-}
-
-void *
-__memget_record(size_t size, const char *file, int line) {
-       size_t new_size = quantize(size);
-#if defined(DEBUGGING_MEMCLUSTER)
-       memcluster_element *e;
-       char *p;
-       fence_t fp = BACK_FENCEPOST;
-#endif
-       void *ret;
-
-       MEMLOCK;
-
-#if !defined(MEMCLUSTER_RECORD)
-       UNUSED(file);
-       UNUSED(line);
-#endif
-       if (freelists == NULL) {
-               if (meminit(0, 0) == -1) {
-                       MEMUNLOCK;
-                       return (NULL);
-               }
-       }
-       if (size == 0U) {
-               MEMUNLOCK;
-               errno = EINVAL;
-               return (NULL);
-       }
-       if (size >= max_size || new_size >= max_size) {
-               /* memget() was called on something beyond our upper limit. */
-               stats[max_size].gets++;
-               stats[max_size].totalgets++;
-#if defined(DEBUGGING_MEMCLUSTER)
-               e = malloc(new_size);
-               if (e == NULL) {
-                       MEMUNLOCK;
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-               e->next = NULL;
-               e->size = size;
-#ifdef MEMCLUSTER_RECORD
-               e->file = file;
-               e->line = line;
-               e->next = activelists[max_size];
-               activelists[max_size] = e;
-#endif
-               MEMUNLOCK;
-               e->fencepost = FRONT_FENCEPOST;
-               p = (char *)e + sizeof *e + size;
-               memcpy(p, &fp, sizeof fp);
-               return ((char *)e + sizeof *e);
-#else
-               MEMUNLOCK;
-               return (malloc(size));
-#endif
-       }
-
-       /* 
-        * If there are no blocks in the free list for this size, get a chunk
-        * of memory and then break it up into "new_size"-sized blocks, adding
-        * them to the free list.
-        */
-       if (freelists[new_size] == NULL) {
-               int i, frags;
-               size_t total_size;
-               void *new;
-               char *curr, *next;
-
-#ifdef MEMCLUSTER_BIG_MALLOC
-               if (basic_blocks == NULL) {
-                       new = malloc(NUM_BASIC_BLOCKS * mem_target);
-                       if (new == NULL) {
-                               MEMUNLOCK;
-                               errno = ENOMEM;
-                               return (NULL);
-                       }
-                       curr = new;
-                       next = curr + mem_target;
-                       for (i = 0; i < (NUM_BASIC_BLOCKS - 1); i++) {
-                               ((memcluster_element *)curr)->next = next;
-                               curr = next;
-                               next += mem_target;
-                       }
-                       /*
-                        * curr is now pointing at the last block in the
-                        * array.
-                        */
-                       ((memcluster_element *)curr)->next = NULL;
-                       basic_blocks = new;
-               }
-               total_size = mem_target;
-               new = basic_blocks;
-               basic_blocks = basic_blocks->next;
-#else
-               if (new_size > mem_target_half)
-                       total_size = mem_target_fudge;
-               else
-                       total_size = mem_target;
-               new = malloc(total_size);
-               if (new == NULL) {
-                       MEMUNLOCK;
-                       errno = ENOMEM;
-                       return (NULL);
-               }
-#endif
-               frags = total_size / new_size;
-               stats[new_size].blocks++;
-               stats[new_size].freefrags += frags;
-               /* Set up a linked-list of blocks of size "new_size". */
-               curr = new;
-               next = curr + new_size;
-               for (i = 0; i < (frags - 1); i++) {
-#if defined (DEBUGGING_MEMCLUSTER)
-                       memset(curr, 0xa5, new_size);
-#endif
-                       ((memcluster_element *)curr)->next = next;
-                       curr = next;
-                       next += new_size;
-               }
-               /* curr is now pointing at the last block in the array. */
-#if defined (DEBUGGING_MEMCLUSTER)
-               memset(curr, 0xa5, new_size);
-#endif
-               ((memcluster_element *)curr)->next = freelists[new_size];
-               freelists[new_size] = new;
-       }
-
-       /* The free list uses the "rounded-up" size "new_size". */
-#if defined (DEBUGGING_MEMCLUSTER)
-       e = freelists[new_size];
-       ret = (char *)e + sizeof *e;
-       /*
-        * Check to see if this buffer has been written to while on free list.
-        */
-       check(ret, 0xa5, new_size - sizeof *e);
-       /*
-        * Mark memory we are returning.
-        */
-       memset(ret, 0xe5, size);
-#else
-       ret = freelists[new_size];
-#endif
-       freelists[new_size] = freelists[new_size]->next;
-#if defined(DEBUGGING_MEMCLUSTER)
-       e->next = NULL;
-       e->size = size;
-       e->fencepost = FRONT_FENCEPOST;
-#ifdef MEMCLUSTER_RECORD
-       e->file = file;
-       e->line = line;
-       e->next = activelists[size];
-       activelists[size] = e;
-#endif
-       p = (char *)e + sizeof *e + size;
-       memcpy(p, &fp, sizeof fp);
-#endif
-
-       /* 
-        * The stats[] uses the _actual_ "size" requested by the
-        * caller, with the caveat (in the code above) that "size" >= the
-        * max. size (max_size) ends up getting recorded as a call to
-        * max_size.
-        */
-       stats[size].gets++;
-       stats[size].totalgets++;
-       stats[new_size].freefrags--;
-       MEMUNLOCK;
-#if defined(DEBUGGING_MEMCLUSTER)
-       return ((char *)e + sizeof *e);
-#else
-       return (ret);
-#endif
-}
-
-/*%
- * This is a call from an external caller, 
- * so we want to count this as a user "put". 
- */
-void
-__memput(void *mem, size_t size) {
-       __memput_record(mem, size, NULL, 0);
-}
-
-void
-__memput_record(void *mem, size_t size, const char *file, int line) {
-       size_t new_size = quantize(size);
-#if defined (DEBUGGING_MEMCLUSTER)
-       memcluster_element *e;
-       memcluster_element *el;
-#ifdef MEMCLUSTER_RECORD
-       memcluster_element *prev;
-#endif
-       fence_t fp;
-       char *p;
-#endif
-
-       MEMLOCK;
-
-#if !defined (MEMCLUSTER_RECORD)
-       UNUSED(file);
-       UNUSED(line);
-#endif
-
-       REQUIRE(freelists != NULL);
-
-       if (size == 0U) {
-               MEMUNLOCK;
-               errno = EINVAL;
-               return;
-       }
-
-#if defined (DEBUGGING_MEMCLUSTER)
-       e = (memcluster_element *) ((char *)mem - sizeof *e);
-       INSIST(e->fencepost == FRONT_FENCEPOST);
-       INSIST(e->size == size);
-       p = (char *)e + sizeof *e + size;
-       memcpy(&fp, p, sizeof fp);
-       INSIST(fp == BACK_FENCEPOST);
-       INSIST(((u_long)mem % 4) == 0);
-#ifdef MEMCLUSTER_RECORD
-       prev = NULL;
-       if (size == max_size || new_size >= max_size)
-               el = activelists[max_size];
-       else
-               el = activelists[size];
-       while (el != NULL && el != e) {
-               prev = el;
-               el = el->next;
-       }
-       INSIST(el != NULL);     /*%< double free */
-       if (prev == NULL) {
-               if (size == max_size || new_size >= max_size)
-                       activelists[max_size] = el->next;
-               else
-                       activelists[size] = el->next;
-       } else
-               prev->next = el->next;
-#endif
-#endif
-
-       if (size == max_size || new_size >= max_size) {
-               /* memput() called on something beyond our upper limit */
-#if defined(DEBUGGING_MEMCLUSTER)
-               free(e);
-#else
-               free(mem);
-#endif
-
-               INSIST(stats[max_size].gets != 0U);
-               stats[max_size].gets--;
-               MEMUNLOCK;
-               return;
-       }
-
-       /* The free list uses the "rounded-up" size "new_size": */
-#if defined(DEBUGGING_MEMCLUSTER)
-       memset(mem, 0xa5, new_size - sizeof *e); /*%< catch write after free */
-       e->size = 0;    /*%< catch double memput() */
-#ifdef MEMCLUSTER_RECORD
-       e->file = file;
-       e->line = line;
-#endif
-#ifdef MEMCLUSTER_ATEND
-       e->next = NULL;
-       el = freelists[new_size];
-       while (el != NULL && el->next != NULL)
-               el = el->next;
-       if (el)
-               el->next = e;
-       else
-               freelists[new_size] = e;
-#else
-       e->next = freelists[new_size];
-       freelists[new_size] = (void *)e;
-#endif
-#else
-       ((memcluster_element *)mem)->next = freelists[new_size];
-       freelists[new_size] = (memcluster_element *)mem;
-#endif
-
-       /* 
-        * The stats[] uses the _actual_ "size" requested by the
-        * caller, with the caveat (in the code above) that "size" >= the
-        * max. size (max_size) ends up getting recorded as a call to
-        * max_size.
-        */
-       INSIST(stats[size].gets != 0U);
-       stats[size].gets--;
-       stats[new_size].freefrags++;
-       MEMUNLOCK;
-}
-
-void *
-__memget_debug(size_t size, const char *file, int line) {
-       void *ptr;
-       ptr = __memget_record(size, file, line);
-       fprintf(stderr, "%s:%d: memget(%lu) -> %p\n", file, line,
-               (u_long)size, ptr);
-       return (ptr);
-}
-
-void
-__memput_debug(void *ptr, size_t size, const char *file, int line) {
-       fprintf(stderr, "%s:%d: memput(%p, %lu)\n", file, line, ptr,
-               (u_long)size);
-       __memput_record(ptr, size, file, line);
-}
-
-/*%
- * Print the stats[] on the stream "out" with suitable formatting.
- */
-void
-memstats(FILE *out) {
-       size_t i;
-#ifdef MEMCLUSTER_RECORD
-       memcluster_element *e;
-#endif
-
-       MEMLOCK;
-
-       if (freelists == NULL) {
-               MEMUNLOCK;
-               return;
-       }
-       for (i = 1; i <= max_size; i++) {
-               const struct stats *s = &stats[i];
-
-               if (s->totalgets == 0U && s->gets == 0U)
-                       continue;
-               fprintf(out, "%s%5lu: %11lu gets, %11lu rem",
-                       (i == max_size) ? ">=" : "  ",
-                       (unsigned long)i, s->totalgets, s->gets);
-               if (s->blocks != 0U)
-                       fprintf(out, " (%lu bl, %lu ff)",
-                               s->blocks, s->freefrags);
-               fputc('\n', out);
-       }
-#ifdef MEMCLUSTER_RECORD
-       fprintf(out, "Active Memory:\n");
-       for (i = 1; i <= max_size; i++) {
-               if ((e = activelists[i]) != NULL)
-                       while (e != NULL) {
-                               fprintf(out, "%s:%d %p:%lu\n",
-                                       e->file != NULL ? e->file :
-                                               "<UNKNOWN>", e->line,
-                                       (char *)e + sizeof *e,
-                                       (u_long)e->size);
-                               e = e->next;
-                       }
-       }
-#endif
-       MEMUNLOCK;
-}
-
-int
-memactive(void) {
-       size_t i;
-
-       if (stats == NULL)
-               return (0);
-       for (i = 1; i <= max_size; i++)
-               if (stats[i].gets != 0U)
-                       return (1);
-       return (0);
-}
-
-/* Private. */
-
-/*%
- * Round up size to a multiple of sizeof(void *).  This guarantees that a
- * block is at least sizeof void *, and that we won't violate alignment
- * restrictions, both of which are needed to make lists of blocks.
- */
-static size_t
-quantize(size_t size) {
-       int remainder;
-       /*
-        * If there is no remainder for the integer division of 
-        *
-        *      (rightsize/P_SIZE)
-        *
-        * then we already have a good size; if not, then we need
-        * to round up the result in order to get a size big
-        * enough to satisfy the request _and_ aligned on P_SIZE boundaries.
-        */
-       remainder = size % P_SIZE;
-       if (remainder != 0)
-               size += P_SIZE - remainder;
-#if defined(DEBUGGING_MEMCLUSTER)
-       return (size + SMALL_SIZE_LIMIT + sizeof (int));
-#else
-       return (size);
-#endif
-}
-
-#if defined(DEBUGGING_MEMCLUSTER)
-static void
-check(unsigned char *a, int value, size_t len) {
-       size_t i;
-       for (i = 0; i < len; i++)
-               INSIST(a[i] == value);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/isc/memcluster.mdoc b/lib/bind/isc/memcluster.mdoc
deleted file mode 100644 (file)
index 20b39d0..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-.\" $Id: memcluster.mdoc,v 1.3 2004/03/09 06:30:08 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.\" The following six UNCOMMENTED lines are required.
-.Dd Month day, year
-.\"Os OPERATING_SYSTEM [version/release]
-.Os BSD 4
-.\"Dt DOCUMENT_TITLE [section number] [volume]
-.Dt MEMCLUSTER 3
-.Sh NAME
-.Nm meminit ,
-.Nm memget ,
-.Nm memput ,
-.Nm memstats 
-.Nd memory allocation/deallocation system
-.Sh SYNOPSIS
-.Fd #include \&<isc/memcluster.h\&>
-.Ft void * 
-.Fn memget "size_t size"
-.Ft void 
-.Fn memput "void *mem" "size_t size"
-.Ft void 
-.Fn memstats "FILE *out"
-.Sh DESCRIPTION
-These functions access a memory management system which allows callers to not 
-fragment memory to the extent which can ordinarily occur through many random 
-calls to
-.Xr malloc 3 .
-Instead, 
-.Fn memget
-gets a large contiguous chunk of blocks of the requested 
-.Fa size 
-and parcels out these blocks as requested.  The symmetric call is
-.Fn memput ,
-which callers use to return a piece of memory obtained from
-.Fn memget .
-Statistics about memory usage are returned by
-.Fn memstats , 
-which prints a report on the stream
-.Fa out .
-.Ss INTERNALS
-Internally, linked lists of free memory blocks are stored in an array.
-The size of this array is determined by the value
-.Dv MEM_FREECOUNT ,
-currently set to 1100.  In general, for any requested blocksize
-.Dq Fa size ,
-any free blocks will be stored on the linked list at that index.
-No free lists are managed for blocks greater than or equal to
-.Dv MEM_FREECOUNT
-bytes; instead, calls to
-.Xr malloc 3
-or
-.Xr free 3
-are made, directly.
-.Pp
-Since the blocks are actually stored as linked lists, they must at least
-be large enough to hold a pointer to the next block.  This size, which is
-.Dv SMALL_SIZE_LIMIT ,
-is currently defined as
-.Bd -literal -offset indent
-#define SMALL_SIZE_LIMIT sizeof(struct { void *next; })
-.Ed
-.Pp
-Both 
-.Fn memget
-and
-.Fn memput
-enforce this limit; for example, any call to 
-.Fn memget 
-requesting a block smaller than
-.Dv SMALL_SIZE_LIMIT
-bytes will actually be considered to be of size
-.Dv SMALL_SIZE_LIMIT 
-internally.  (Such a caller request will be logged for 
-.Fn memstats
-purposes using the caller-requested
-.Fa size ;
-see the discussion of
-.Fn memstats ,
-below, for more information.)
-.Pp
-Additionally, the requested
-.Fa size
-will be adjusted so that when a large 
-.Xr malloc 3 Ns No -d
-chunk of memory is broken up into a linked list, the blocks will all fall on
-the correct memory alignment boundaries.  Thus, one can conceptualize a call
-which mentions
-.Fa size
-as resulting in a
-.Fa new_size
-which is used internally.
-.Pp
-In order to more efficiently allocate memory, there is a 
-.Dq target
-size for calls to 
-.Xr malloc 3 .
-It is given by the pre-defined value
-.Dv MEM_TARGET , 
-which is currently 4096 bytes.
-For any requested block
-.Fa size ,
-enough memory is 
-.Xr malloc 3 Ns No -d
-in order to fill up a block of about
-.Dv MEM_TARGET
-bytes.  
-.No [ Ns Sy NOTE :
-For allocations larger than
-.Dv MEM_TARGET Ns No /2
-bytes, there is a 
-.Dq fudge factor
-introduced which boosts the target size by 25% of
-.Dv MEM_TARGET .
-This means that enough memory for two blocks
-will actually be allocated for any 
-.Fa size
-such that
-.Pq Dv MEM_TARGET Ns No / 3 
-.No < Fa size No < 
-.Pq Dv MEM_TARGET Ns No *5/8 ,
-provided that the value of
-.Dv MEM_FREECOUNT 
-is at least as large as the upper limit shown above.]
-.Pp
-.Ss FUNCTION DESCRIPTIONS
-.Pp
-The function
-.Fn memget
-returns a pointer to a block of memory of at least the requested
-.Fa size .
-After adjusting
-.Fa size
-to the value
-.Va new_size
-as mentioned above in the 
-.Sx INTERNALS
-subsection, the internal array of free lists is checked.
-If there is no block of the needed
-.Va new_size ,
-then
-.Fn memget 
-will 
-.Xr malloc 3
-a chunk of memory which is as many times as 
-.Va new_size
-will fit into the target size.  This memory is then turned into a linked list 
-of 
-.Va new_size Ns No -sized
-blocks which are given out as requested; the last such block is the first one 
-returned by 
-.Fn memget .
-If the requested
-.Fa size
-is zero or negative, then 
-.Dv NULL
-is returned and
-.Va errno
-is set to
-.Dv EINVAL ;
-if 
-.Fa size
-is larger than or equal to the pre-defined maximum size
-.Dv MEM_FREECOUNT ,
-then only a single block of exactly 
-.Fa size
-will be
-.Xr malloc 3 Ns No -d
-and returned.
-.Pp
-The
-.Fn memput
-call is used to return memory once the caller is finished with it.
-After adjusting
-.Fa size
-the the value
-.Va new_size
-as mentioned in the 
-.Sx INTERNALS 
-subsection, above, the block is placed at the head of the free list of 
-.Va new_size Ns -sized
-blocks.
-If the given
-.Fa size
-is zero or negative, then 
-.Va errno
-is set to
-.Dv EINVAL ,
-as for
-.Fn memget .
-If 
-.Fa size
-is larger than or equal to the pre-defined maximum size
-.Dv MEM_FREECOUNT ,
-then the block is immediately
-.Xr free 3 Ns No -d .
-.Pp
-.Sy NOTE :
-It is important that callers give 
-.Fn memput
-.Em only
-blocks of memory which were previously obtained from
-.Fn memget 
-if the block is 
-.Em actually 
-less than
-.Dv SMALL_SIZE_LIMIT
-bytes in size.  Since all blocks will be added to a free list, any block 
-which is not at least
-.Dv SMALL_SIZE_LIMIT
-bytes long will not be able to hold a pointer to the next block in the
-free list.
-.Pp
-The
-.Fn memstats
-function will summarize the number of calls to 
-.Fn memget
-and
-.Fn memput
-for any block size from 1 byte up to
-.Pq Dv MEM_FREECOUNT No - 1  
-bytes, followed by a single line for any calls using a 
-.Fa size
-greater than or equal to 
-.Dv MEM_FREECOUNT ; 
-a brief header with shell-style comment lines prefaces the report and
-explains the information.  The 
-.Dv FILE 
-pointer
-.Fa out
-identifies the stream which is used for this report.  Currently, 
-.Fn memstat
-reports the number of calls to 
-.Fn memget
-and
-.Fn memput
-using the caller-supplied value 
-.Fa size ; 
-the percentage of outstanding blocks of a given size (i.e., the percentage
-by which calls to
-.Fn memget
-exceed 
-.Fn memput )
-are also reported on the line for blocks of the given
-.Fa size .
-However, the percent of blocks used is computed using the number of 
-blocks allocated according to the internal parameter
-.Va new_size ;
-it is the percentage of blocks used to those available at a given
-.Va new_size ,
-and is computed using the
-.Em total
-number of caller 
-.Dq gets
-for any caller
-.Fa size Ns No -s
-which map to the internally-computed
-.Va new_size .
-Keep in mind that
-.Va new_size
-is generally 
-.Em not
-equal to
-.Fa size , 
-which has these implications:
-.Bl -enum -offset indent
-.It
-For
-.Fa size
-smaller than
-.Dv SMALL_SIZE_LIMIT ,
-.Fn memstat
-.Em will 
-show statistics for caller requests under
-.Fa size , 
-but "percent used" information about such blocks will be reported under
-.Dv SMALL_SIZE_LIMIT Ns No -sized
-blocks.  
-.It
-As a general case of point 1, internal statistics are reported on the the
-line corresponding to
-.Va new_size ,
-so that, for a given caller-supplied
-.Fa size ,
-the associated internal information will appear on that line or on the next
-line which shows "percent used" information.
-.El
-.Pp
-.Sy NOTE :
-If the caller returns blocks of a given
-.Fa size
-and requests others of 
-.Fa size Ns No -s 
-which map to the same internal
-.Va new_size ,
-it is possible for
-.Fn memstats
-to report usage of greater than 100% for blocks of size
-.Va new_size .
-This should be viewed as A Good Thing.
-.Sh RETURN VALUES
-The function
-.Fn memget
-returns a 
-.No non- Ns Dv NULL
-pointer to a block of memory of the requested
-.Fa size .
-It returns
-.Dv NULL
-if either the
-.Fa size
-is invalid (less than or equal to zero) or a 
-.Xr malloc 3
-of a new block of memory fails.  In the former case, 
-.Va errno
-is set to 
-.Dv EINVAL ; 
-in the latter, it is set to
-.Dv ENOMEM .
-.Pp
-Neither
-.Fn memput
-nor
-.Fn memstats
-return a value.
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\" .Sh ENVIRONMENT
-.\" .Sh FILES
-.\" .Sh EXAMPLES
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\"     (command return values (to shell) and
-.\"    fprintf/stderr type diagnostics)
-.\" .Sh DIAGNOSTICS
-.\" The next request is for sections 2 and 3 error
-.\" and signal handling only.
-.Sh ERRORS
-.Va errno
-is set as follows:
-.Bl -tag -width "ENOMEM  " -offset indent
-.It Dv EINVAL
-set by both
-.Fn memget
-and
-.Fn memput
-if the 
-.Fa size
-is zero or negative
-.It Dv ENOMEM
-set by 
-.Fn memget
-if a call to
-.Xr malloc 3
-fails
-.El
-.Sh SEE ALSO
-.Xr free 3 ,
-.Xr malloc 3 .
-.\" .Sh STANDARDS
-.\" .Sh HISTORY
-.Sh AUTHORS
-Steven J. Richardson and Paul Vixie, Vixie Enterprises.
-.\" .Sh BUGS
diff --git a/lib/bind/isc/movefile.c b/lib/bind/isc/movefile.c
deleted file mode 100644 (file)
index 191c46e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 2000 by Internet Software Consortium, Inc.
- *
- * 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-
-#include <port_before.h>
-#include <stdio.h>
-#include <isc/misc.h>
-#include <port_after.h>
-#ifndef HAVE_MOVEFILE
-/*
- * rename() is lame (can't overwrite an existing file) on some systems.
- * use movefile() instead, and let lame OS ports do what they need to.
- */
-
-int
-isc_movefile(const char *oldname, const char *newname) {
-       return (rename(oldname, newname));
-}
-#else
-       static int os_port_has_isc_movefile = 1;
-#endif
-
-/*! \file */
diff --git a/lib/bind/isc/tree.c b/lib/bind/isc/tree.c
deleted file mode 100644 (file)
index 8ba675f..0000000
+++ /dev/null
@@ -1,534 +0,0 @@
-#ifndef LINT
-static const char rcsid[] = "$Id: tree.c,v 1.4 2005/04/27 04:56:39 sra Exp $";
-#endif
-
-/*%
- * tree - balanced binary tree library
- *
- * vix 05apr94 [removed vixie.h dependencies; cleaned up formatting, names]
- * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
- * vix 23jun86 [added delete uar to add for replaced nodes]
- * vix 20jun86 [added tree_delete per wirth a+ds (mod2 v.) p. 224]
- * vix 06feb86 [added tree_mung()]
- * vix 02feb86 [added tree balancing from wirth "a+ds=p" p. 220-221]
- * vix 14dec85 [written]
- */
-
-/*%
- * This program text was created by Paul Vixie using examples from the book:
- * "Algorithms & Data Structures," Niklaus Wirth, Prentice-Hall, 1986, ISBN
- * 0-13-022005-1.  Any errors in the conversion from Modula-2 to C are Paul
- * Vixie's.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*#define              DEBUG   "tree"*/
-
-#include "port_before.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "port_after.h"
-
-#include <isc/memcluster.h>
-#include <isc/tree.h>
-
-#ifdef DEBUG
-static int     debugDepth = 0;
-static char    *debugFuncs[256];
-# define ENTER(proc) { \
-                       debugFuncs[debugDepth] = proc; \
-                       fprintf(stderr, "ENTER(%d:%s.%s)\n", \
-                               debugDepth, DEBUG, \
-                               debugFuncs[debugDepth]); \
-                       debugDepth++; \
-               }
-# define RET(value) { \
-                       debugDepth--; \
-                       fprintf(stderr, "RET(%d:%s.%s)\n", \
-                               debugDepth, DEBUG, \
-                               debugFuncs[debugDepth]); \
-                       return (value); \
-               }
-# define RETV { \
-                       debugDepth--; \
-                       fprintf(stderr, "RETV(%d:%s.%s)\n", \
-                               debugDepth, DEBUG, \
-                               debugFuncs[debugDepth]); \
-                       return; \
-               }
-# define MSG(msg)      fprintf(stderr, "MSG(%s)\n", msg);
-#else
-# define ENTER(proc)   ;
-# define RET(value)    return (value);
-# define RETV          return;
-# define MSG(msg)      ;
-#endif
-
-#ifndef TRUE
-# define TRUE          1
-# define FALSE         0
-#endif
-
-static tree *  sprout(tree **, tree_t, int *, int (*)(), void (*)());
-static int     delete(tree **, int (*)(), tree_t, void (*)(), int *, int *);
-static void    del(tree **, int *, tree **, void (*)(), int *);
-static void    bal_L(tree **, int *);
-static void    bal_R(tree **, int *);
-
-void
-tree_init(tree **ppr_tree) {
-       ENTER("tree_init")
-       *ppr_tree = NULL;
-       RETV
-}
-       
-tree_t
-tree_srch(tree **ppr_tree, int (*pfi_compare)(tree_t, tree_t), tree_t  p_user) {
-       ENTER("tree_srch")
-
-       if (*ppr_tree) {
-               int i_comp = (*pfi_compare)(p_user, (**ppr_tree).data);
-
-               if (i_comp > 0)
-                       RET(tree_srch(&(**ppr_tree).right,
-                                     pfi_compare,
-                                     p_user))
-
-               if (i_comp < 0)
-                       RET(tree_srch(&(**ppr_tree).left,
-                                     pfi_compare,
-                                     p_user))
-
-               /* not higher, not lower... this must be the one.
-                */
-               RET((**ppr_tree).data)
-       }
-
-       /* grounded. NOT found.
-        */
-       RET(NULL)
-}
-
-tree_t
-tree_add(tree **ppr_tree, int (*pfi_compare)(tree_t, tree_t),
-        tree_t p_user, void (*pfv_uar)())
-{
-       int i_balance = FALSE;
-
-       ENTER("tree_add")
-       if (!sprout(ppr_tree, p_user, &i_balance, pfi_compare, pfv_uar))
-               RET(NULL)
-       RET(p_user)
-}
-
-int
-tree_delete(tree **ppr_p, int (*pfi_compare)(tree_t, tree_t),
-           tree_t p_user, void (*pfv_uar)())
-{
-       int i_balance = FALSE, i_uar_called = FALSE;
-
-       ENTER("tree_delete");
-       RET(delete(ppr_p, pfi_compare, p_user, pfv_uar,
-                  &i_balance, &i_uar_called))
-}
-
-int
-tree_trav(tree **ppr_tree, int (*pfi_uar)(tree_t)) {
-       ENTER("tree_trav")
-
-       if (!*ppr_tree)
-               RET(TRUE)
-
-       if (!tree_trav(&(**ppr_tree).left, pfi_uar))
-               RET(FALSE)
-       if (!(*pfi_uar)((**ppr_tree).data))
-               RET(FALSE)
-       if (!tree_trav(&(**ppr_tree).right, pfi_uar))
-               RET(FALSE)
-       RET(TRUE)
-}
-
-void
-tree_mung(tree **ppr_tree, void        (*pfv_uar)(tree_t)) {
-       ENTER("tree_mung")
-       if (*ppr_tree) {
-               tree_mung(&(**ppr_tree).left, pfv_uar);
-               tree_mung(&(**ppr_tree).right, pfv_uar);
-               if (pfv_uar)
-                       (*pfv_uar)((**ppr_tree).data);
-               memput(*ppr_tree, sizeof(tree));
-               *ppr_tree = NULL;
-       }
-       RETV
-}
-
-static tree *
-sprout(tree **ppr, tree_t p_data, int *pi_balance,
-       int (*pfi_compare)(tree_t, tree_t), void (*pfv_delete)(tree_t))
-{
-       tree *p1, *p2, *sub;
-       int cmp;
-
-       ENTER("sprout")
-
-       /* are we grounded?  if so, add the node "here" and set the rebalance
-        * flag, then exit.
-        */
-       if (!*ppr) {
-               MSG("grounded. adding new node, setting h=true")
-               *ppr = (tree *) memget(sizeof(tree));
-               if (*ppr) {
-                       (*ppr)->left = NULL;
-                       (*ppr)->right = NULL;
-                       (*ppr)->bal = 0;
-                       (*ppr)->data = p_data;
-                       *pi_balance = TRUE;
-               }
-               RET(*ppr);
-       }
-
-       /* compare the data using routine passed by caller.
-        */
-       cmp = (*pfi_compare)(p_data, (*ppr)->data);
-
-       /* if LESS, prepare to move to the left.
-        */
-       if (cmp < 0) {
-               MSG("LESS. sprouting left.")
-               sub = sprout(&(*ppr)->left, p_data, pi_balance,
-                            pfi_compare, pfv_delete);
-               if (sub && *pi_balance) {       /*%< left branch has grown */
-                       MSG("LESS: left branch has grown")
-                       switch ((*ppr)->bal) {
-                       case 1:
-                               /* right branch WAS longer; bal is ok now */
-                               MSG("LESS: case 1.. bal restored implicitly")
-                               (*ppr)->bal = 0;
-                               *pi_balance = FALSE;
-                               break;
-                       case 0:
-                               /* balance WAS okay; now left branch longer */
-                               MSG("LESS: case 0.. balnce bad but still ok")
-                               (*ppr)->bal = -1;
-                               break;
-                       case -1:
-                               /* left branch was already too long. rebal */
-                               MSG("LESS: case -1: rebalancing")
-                               p1 = (*ppr)->left;
-                               if (p1->bal == -1) {            /*%< LL */
-                                       MSG("LESS: single LL")
-                                       (*ppr)->left = p1->right;
-                                       p1->right = *ppr;
-                                       (*ppr)->bal = 0;
-                                       *ppr = p1;
-                               } else {                        /*%< double LR */
-                                       MSG("LESS: double LR")
-
-                                       p2 = p1->right;
-                                       p1->right = p2->left;
-                                       p2->left = p1;
-
-                                       (*ppr)->left = p2->right;
-                                       p2->right = *ppr;
-
-                                       if (p2->bal == -1)
-                                               (*ppr)->bal = 1;
-                                       else
-                                               (*ppr)->bal = 0;
-
-                                       if (p2->bal == 1)
-                                               p1->bal = -1;
-                                       else
-                                               p1->bal = 0;
-                                       *ppr = p2;
-                               } /*else*/
-                               (*ppr)->bal = 0;
-                               *pi_balance = FALSE;
-                       } /*switch*/
-               } /*if*/
-               RET(sub)
-       } /*if*/
-
-       /* if MORE, prepare to move to the right.
-        */
-       if (cmp > 0) {
-               MSG("MORE: sprouting to the right")
-               sub = sprout(&(*ppr)->right, p_data, pi_balance,
-                            pfi_compare, pfv_delete);
-               if (sub && *pi_balance) {
-                       MSG("MORE: right branch has grown")
-
-                       switch ((*ppr)->bal) {
-                       case -1:
-                               MSG("MORE: balance was off, fixed implicitly")
-                               (*ppr)->bal = 0;
-                               *pi_balance = FALSE;
-                               break;
-                       case 0:
-                               MSG("MORE: balance was okay, now off but ok")
-                               (*ppr)->bal = 1;
-                               break;
-                       case 1:
-                               MSG("MORE: balance was off, need to rebalance")
-                               p1 = (*ppr)->right;
-                               if (p1->bal == 1) {             /*%< RR */
-                                       MSG("MORE: single RR")
-                                       (*ppr)->right = p1->left;
-                                       p1->left = *ppr;
-                                       (*ppr)->bal = 0;
-                                       *ppr = p1;
-                               } else {                        /*%< double RL */
-                                       MSG("MORE: double RL")
-
-                                       p2 = p1->left;
-                                       p1->left = p2->right;
-                                       p2->right = p1;
-
-                                       (*ppr)->right = p2->left;
-                                       p2->left = *ppr;
-
-                                       if (p2->bal == 1)
-                                               (*ppr)->bal = -1;
-                                       else
-                                               (*ppr)->bal = 0;
-
-                                       if (p2->bal == -1)
-                                               p1->bal = 1;
-                                       else
-                                               p1->bal = 0;
-
-                                       *ppr = p2;
-                               } /*else*/
-                               (*ppr)->bal = 0;
-                               *pi_balance = FALSE;
-                       } /*switch*/
-               } /*if*/
-               RET(sub)
-       } /*if*/
-
-       /* not less, not more: this is the same key!  replace...
-        */
-       MSG("FOUND: Replacing data value")
-       *pi_balance = FALSE;
-       if (pfv_delete)
-               (*pfv_delete)((*ppr)->data);
-       (*ppr)->data = p_data;
-       RET(*ppr)
-}
-
-static int
-delete(tree **ppr_p, int (*pfi_compare)(tree_t, tree_t), tree_t p_user,
-       void (*pfv_uar)(tree_t), int *pi_balance, int *pi_uar_called)
-{
-       tree *pr_q;
-       int i_comp, i_ret;
-
-       ENTER("delete")
-
-       if (*ppr_p == NULL) {
-               MSG("key not in tree")
-               RET(FALSE)
-       }
-
-       i_comp = (*pfi_compare)((*ppr_p)->data, p_user);
-       if (i_comp > 0) {
-               MSG("too high - scan left")
-               i_ret = delete(&(*ppr_p)->left, pfi_compare, p_user, pfv_uar,
-                              pi_balance, pi_uar_called);
-               if (*pi_balance)
-                       bal_L(ppr_p, pi_balance);
-       } else if (i_comp < 0) {
-               MSG("too low - scan right")
-               i_ret = delete(&(*ppr_p)->right, pfi_compare, p_user, pfv_uar,
-                              pi_balance, pi_uar_called);
-               if (*pi_balance)
-                       bal_R(ppr_p, pi_balance);
-       } else {
-               MSG("equal")
-               pr_q = *ppr_p;
-               if (pr_q->right == NULL) {
-                       MSG("right subtree null")
-                       *ppr_p = pr_q->left;
-                       *pi_balance = TRUE;
-               } else if (pr_q->left == NULL) {
-                       MSG("right subtree non-null, left subtree null")
-                       *ppr_p = pr_q->right;
-                       *pi_balance = TRUE;
-               } else {
-                       MSG("neither subtree null")
-                       del(&pr_q->left, pi_balance, &pr_q,
-                           pfv_uar, pi_uar_called);
-                       if (*pi_balance)
-                               bal_L(ppr_p, pi_balance);
-               }
-               if (!*pi_uar_called && pfv_uar)
-                       (*pfv_uar)(pr_q->data);
-               /* Thanks to wuth@castrov.cuc.ab.ca for the following stmt. */
-               memput(pr_q, sizeof(tree));
-               i_ret = TRUE;
-       }
-       RET(i_ret)
-}
-
-static void
-del(tree **ppr_r, int *pi_balance, tree **ppr_q,
-    void (*pfv_uar)(tree_t), int *pi_uar_called)
-{
-       ENTER("del")
-
-       if ((*ppr_r)->right != NULL) {
-               del(&(*ppr_r)->right, pi_balance, ppr_q,
-                   pfv_uar, pi_uar_called);
-               if (*pi_balance)
-                       bal_R(ppr_r, pi_balance);
-       } else {
-               if (pfv_uar)
-                       (*pfv_uar)((*ppr_q)->data);
-               *pi_uar_called = TRUE;
-               (*ppr_q)->data = (*ppr_r)->data;
-               *ppr_q = *ppr_r;
-               *ppr_r = (*ppr_r)->left;
-               *pi_balance = TRUE;
-       }
-
-       RETV
-}
-
-static void
-bal_L(tree **ppr_p, int *pi_balance) {
-       tree *p1, *p2;
-       int b1, b2;
-
-       ENTER("bal_L")
-       MSG("left branch has shrunk")
-
-       switch ((*ppr_p)->bal) {
-       case -1:
-               MSG("was imbalanced, fixed implicitly")
-               (*ppr_p)->bal = 0;
-               break;
-       case 0:
-               MSG("was okay, is now one off")
-               (*ppr_p)->bal = 1;
-               *pi_balance = FALSE;
-               break;
-       case 1:
-               MSG("was already off, this is too much")
-               p1 = (*ppr_p)->right;
-               b1 = p1->bal;
-               if (b1 >= 0) {
-                       MSG("single RR")
-                       (*ppr_p)->right = p1->left;
-                       p1->left = *ppr_p;
-                       if (b1 == 0) {
-                               MSG("b1 == 0")
-                               (*ppr_p)->bal = 1;
-                               p1->bal = -1;
-                               *pi_balance = FALSE;
-                       } else {
-                               MSG("b1 != 0")
-                               (*ppr_p)->bal = 0;
-                               p1->bal = 0;
-                       }
-                       *ppr_p = p1;
-               } else {
-                       MSG("double RL")
-                       p2 = p1->left;
-                       b2 = p2->bal;
-                       p1->left = p2->right;
-                       p2->right = p1;
-                       (*ppr_p)->right = p2->left;
-                       p2->left = *ppr_p;
-                       if (b2 == 1)
-                               (*ppr_p)->bal = -1;
-                       else
-                               (*ppr_p)->bal = 0;
-                       if (b2 == -1)
-                               p1->bal = 1;
-                       else
-                               p1->bal = 0;
-                       *ppr_p = p2;
-                       p2->bal = 0;
-               }
-       }
-       RETV
-}
-
-static void
-bal_R(tree **ppr_p, int *pi_balance) {
-       tree *p1, *p2;
-       int b1, b2;
-
-       ENTER("bal_R")
-       MSG("right branch has shrunk")
-       switch ((*ppr_p)->bal) {
-       case 1:
-               MSG("was imbalanced, fixed implicitly")
-               (*ppr_p)->bal = 0;
-               break;
-       case 0:
-               MSG("was okay, is now one off")
-               (*ppr_p)->bal = -1;
-               *pi_balance = FALSE;
-               break;
-       case -1:
-               MSG("was already off, this is too much")
-               p1 = (*ppr_p)->left;
-               b1 = p1->bal;
-               if (b1 <= 0) {
-                       MSG("single LL")
-                       (*ppr_p)->left = p1->right;
-                       p1->right = *ppr_p;
-                       if (b1 == 0) {
-                               MSG("b1 == 0")
-                               (*ppr_p)->bal = -1;
-                               p1->bal = 1;
-                               *pi_balance = FALSE;
-                       } else {
-                               MSG("b1 != 0")
-                               (*ppr_p)->bal = 0;
-                               p1->bal = 0;
-                       }
-                       *ppr_p = p1;
-               } else {
-                       MSG("double LR")
-                       p2 = p1->right;
-                       b2 = p2->bal;
-                       p1->right = p2->left;
-                       p2->left = p1;
-                       (*ppr_p)->left = p2->right;
-                       p2->right = *ppr_p;
-                       if (b2 == -1)
-                               (*ppr_p)->bal = 1;
-                       else
-                               (*ppr_p)->bal = 0;
-                       if (b2 == 1)
-                               p1->bal = -1;
-                       else
-                               p1->bal = 0;
-                       *ppr_p = p2;
-                       p2->bal = 0;
-               }
-       }
-       RETV
-}
-
-/*! \file */
diff --git a/lib/bind/isc/tree.mdoc b/lib/bind/isc/tree.mdoc
deleted file mode 100644 (file)
index 2c24e1f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-.\" $Id: tree.mdoc,v 1.3 2004/03/09 06:30:09 marka Exp $
-.\"
-.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
-.\" Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
-.\"
-.Dd April 5, 1994
-.Dt TREE 3
-.Os BSD 4
-.Sh NAME
-.Nm tree_init ,
-.Nm tree_mung ,
-.Nm tree_srch ,
-.Nm tree_add ,
-.Nm tree_delete ,
-.Nm tree_trav
-.Nd balanced binary tree routines
-.Sh SYNOPSIS
-.Ft void
-.Fn tree_init "void **tree"
-.Ft void *
-.Fn tree_srch "void **tree" "int (*compare)()" "void *data"
-.Ft void
-.Fn tree_add "void **tree" "int (*compare)()" \
-"void *data" "void (*del_uar)()"
-.Ft int
-.Fn tree_delete "void **tree" "int (*compare)()" \
-"void *data" "void (*del_uar)()"
-.Ft int
-.Fn tree_trav "void **tree" "int (*trav_uar)()"
-.Ft void
-.Fn tree_mung "void **tree" "void (*del_uar)()"
-.Sh DESCRIPTION
-These functions create and manipulate a balanced binary (AVL) tree.  Each node
-of the tree contains the expected left & right subtree pointers, a short int
-balance indicator, and a pointer to the user data.  On a 32 bit system, this
-means an overhead of 4+4+2+4 bytes per node (or, on a RISC or otherwise
-alignment constrained system with implied padding, 4+4+4+4 bytes per node).
-There is no key data type enforced by this package; a caller supplied
-compare routine is used to compare user data blocks.
-.Pp
-Balanced binary trees are very fast on searches and replacements, but have a
-moderately high cost for additions and deletions.  If your application does a
-lot more searches and replacements than it does additions and deletions, the
-balanced (AVL) binary tree is a good choice for a data structure.
-.Pp
-.Fn Tree_init
-creates an empty tree and binds it to
-.Dq Fa tree
-(which for this and all other routines in this package should be declared as
-a pointer to void or int, and passed by reference), which can then be used by
-other routines in this package.  Note that more than one
-.Dq Fa tree
-variable can exist at once; thus multiple trees can be manipulated
-simultaneously.
-.Pp
-.Fn Tree_srch
-searches a tree for a specific node and returns either
-.Fa NULL
-if no node was found, or the value of the user data pointer if the node
-was found.
-.Fn compare
-is the address of a function to compare two user data blocks.  This routine
-should work much the way 
-.Xr strcmp 3
-does; in fact,
-.Xr strcmp
-could be used if the user data was a \s-2NUL\s+2 terminated string.
-.Dq Fa Data
-is the address of a user data block to be used by
-.Fn compare
-as the search criteria.  The tree is searched for a node where
-.Fn compare
-returns 0.
-.Pp
-.Fn Tree_add
-inserts or replaces a node in the specified tree.  The tree specified by
-.Dq Fa tree
-is searched as in
-.Fn tree_srch ,
-and if a node is found to match
-.Dq Fa data ,
-then the
-.Fn del_uar
-function, if non\-\s-2NULL\s+2, is called with the address of the user data
-block for the node (this routine should deallocate any dynamic memory which
-is referenced exclusively by the node); the user data pointer for the node
-is then replaced by the value of
-.Dq Fa data .
-If no node is found to match, a new node is added (which may or may not
-cause a transparent rebalance operation), with a user data pointer equal to
-.Dq Fa data .
-A rebalance may or may not occur, depending on where the node is added
-and what the rest of the tree looks like.
-.Fn Tree_add
-will return the
-.Dq Fa data
-pointer unless catastrophe occurs in which case it will return \s-2NULL\s+2.
-.Pp
-.Fn Tree_delete
-deletes a node from
-.Dq Fa tree .
-A rebalance may or may not occur, depending on where the node is removed from
-and what the rest of the tree looks like.
-.Fn Tree_delete
-returns TRUE if a node was deleted, FALSE otherwise.
-.Pp
-.Fn Tree_trav
-traverses all of
-.Dq Fa tree ,
-calling
-.Fn trav_uar
-with the address of each user data block.  If
-.Fn trav_uar
-returns FALSE at any time,
-.Fn tree_trav
-will immediately return FALSE to its caller.  Otherwise all nodes will be 
-reached and
-.Fn tree_trav
-will return TRUE.
-.Pp
-.Fn Tree_mung
-deletes every node in
-.Dq Fa tree ,
-calling
-.Fn del_uar
-(if it is not \s-2NULL\s+2) with the user data address from each node (see
-.Fn tree_add
-and
-.Fn tree_delete
-above).  The tree is left in the same state that
-.Fn tree_init
-leaves it in \- i.e., empty.
-.Sh BUGS
-Should have a way for the caller to specify application-specific
-.Xr malloc
-and
-.Xr free
-functions to be used internally when allocating meta data.
-.Sh AUTHOR
-Paul Vixie, converted and augumented from Modula\-2 examples in
-.Dq Algorithms & Data Structures ,
-Niklaus Wirth, Prentice\-Hall, ISBN 0\-13\-022005\-1.
diff --git a/lib/bind/make/.cvsignore b/lib/bind/make/.cvsignore
deleted file mode 100644 (file)
index 130fa2f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-rules
-mkdep
-includes
diff --git a/lib/bind/make/includes.in b/lib/bind/make/includes.in
deleted file mode 100644 (file)
index 8f51b13..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: includes.in,v 1.4 2007/06/19 23:47:13 tbox Exp $
-
-# Search for machine-generated header files in the build tree,
-# and for normal headers in the source tree (${top_srcdir}).
-# We only need to look in OS-specific subdirectories for the
-# latter case, because there are no machine-generated OS-specific
-# headers.
-
-ISC_INCLUDES = @BIND9_ISC_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/isc \
-       -I${top_srcdir}/lib/isc/include \
-       -I${top_srcdir}/lib/isc/unix/include \
-       -I${top_srcdir}/lib/isc/@ISC_THREAD_DIR@/include
-
-ISCCFG_INCLUDES = @BIND9_ISCCFG_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/isccfg/include
-
-DNS_INCLUDES = @BIND9_DNS_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/dns/include \
-       -I${top_srcdir}/lib/dns/sec/dst/include
-
-OMAPI_INCLUDES = @BIND9_OMAPI_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/omapi/include
-
-LWRES_INCLUDES = @BIND9_LWRES_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/lwres/include
-
-TEST_INCLUDES = \
-       -I${top_srcdir}/lib/tests/include
diff --git a/lib/bind/make/mkdep.in b/lib/bind/make/mkdep.in
deleted file mode 100644 (file)
index 60aea6f..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/sh -
-
-## ++Copyright++ 1987
-## -
-## Copyright (c) 1987 Regents of the University of California.
-## All rights reserved.
-##
-## Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions
-## are met:
-## 1. Redistributions of source code must retain the above copyright
-##    notice, this list of conditions and the following disclaimer.
-## 2. Redistributions in binary form must reproduce the above copyright
-##    notice, this list of conditions and the following disclaimer in the
-##    documentation and/or other materials provided with the distribution.
-## 3. All advertising materials mentioning features or use of this software
-##    must display the following acknowledgement:
-## This product includes software developed by the University of
-## California, Berkeley and its contributors.
-## 4. Neither the name of the University nor the names of its contributors
-##    may be used to endorse or promote products derived from this software
-##    without specific prior written permission.
-## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-## ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-## SUCH DAMAGE.
-## -
-## Portions Copyright (c) 1993 by Digital Equipment Corporation.
-##
-## 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, and that
-## the name of Digital Equipment Corporation not be used in advertising or
-## publicity pertaining to distribution of the document or software without
-## specific, written prior permission.
-##
-## THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-## WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-## OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
-## CORPORATION 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.
-## -
-## --Copyright--
-
-#
-#      @(#)mkdep.sh    5.12 (Berkeley) 6/30/88
-#
-
-MAKE=Makefile                  # default makefile name is "Makefile"
-
-while :
-       do case "$1" in
-               # -f allows you to select a makefile name
-               -f)
-                       MAKE=$2
-                       shift; shift ;;
-
-               # the -p flag produces "program: program.c" style dependencies
-               # so .o's don't get produced
-               -p)
-                       SED='s;\.o;;'
-                       shift ;;
-               *)
-                       break ;;
-       esac
-done
-
-if [ $# = 0 ] ; then
-       echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
-       exit 1
-fi
-
-if [ ! -w $MAKE ]; then
-       echo "mkdep: no writeable file \"$MAKE\""
-       exit 1
-fi
-
-TMP=mkdep$$
-
-trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
-
-cp $MAKE ${MAKE}.bak
-
-sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
-
-cat << _EOF_ >> $TMP
-# DO NOT DELETE THIS LINE -- mkdep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-_EOF_
-
-# If your compiler doesn't have -M, add it.  If you can't, the next two
-# lines will try and replace the "cc -M".  The real problem is that this
-# hack can't deal with anything that requires a search path, and doesn't
-# even try for anything using bracket (<>) syntax.
-#
-# egrep '^#include[    ]*".*"' /dev/null $* |
-# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
-
-MKDEPPROG="@MKDEPPROG@"
-if [ X"${MKDEPPROG}" != X ]; then
-    @SHELL@ -c "${MKDEPPROG} $*"
-else
-    @MKDEPCC@ @MKDEPCFLAGS@ $* |
-    sed "
-       s; \./; ;g
-       $SED" |
-    awk '{
-       if ($1 != prev) {
-               if (rec != "")
-                       print rec;
-               rec = $0;
-               prev = $1;
-       }
-       else {
-               if (length(rec $2) > 78) {
-                       print rec;
-                       rec = $0;
-               }
-               else
-                       rec = rec " " $2
-       }
-    }
-    END {
-       print rec
-    }' >> $TMP
-fi
-
-cat << _EOF_ >> $TMP
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-_EOF_
-
-# copy to preserve permissions
-cp $TMP $MAKE
-rm -f ${MAKE}.bak $TMP
-exit 0
diff --git a/lib/bind/make/rules.in b/lib/bind/make/rules.in
deleted file mode 100644 (file)
index f379980..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001, 2002  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: rules.in,v 1.13 2007/06/18 23:47:34 tbox Exp $
-
-###
-### Common Makefile rules for BIND 9.
-###
-
-###
-### Paths
-###
-### Note: paths that vary by Makefile MUST NOT be listed
-### here, or they won't get expanded correctly.
-
-prefix =       @prefix@
-exec_prefix =  @exec_prefix@
-bindir =       @bindir@
-sbindir =      @sbindir@
-includedir =   @includedir@
-libdir =       @libdir@
-sysconfdir =   @sysconfdir@
-localstatedir =        @localstatedir@
-mandir =       @mandir@
-
-DESTDIR =
-MAKEDEFS= 'DESTDIR=${DESTDIR}'
-
-@SET_MAKE@
-
-top_builddir = @BIND9_TOP_BUILDDIR@
-abs_top_srcdir = @abs_top_srcdir@
-
-###
-### All
-###
-### Makefile may define:
-###    TARGETS
-
-all: subdirs ${TARGETS}
-
-###
-### Subdirectories
-###
-### Makefile may define:
-###    SUBDIRS
-
-ALL_SUBDIRS = ${SUBDIRS} nulldir
-
-#
-# We use a single-colon rule so that additional dependencies of
-# subdirectories can be specified after the inclusion of this file.
-# The "depend" target is treated the same way.
-#
-subdirs:
-       @for i in ${ALL_SUBDIRS}; do \
-               if [ "$$i" != "nulldir" -a -d $$i ]; then \
-                       echo "making all in `pwd`/$$i"; \
-                       (cd $$i; ${MAKE} ${MAKEDEFS} all) || exit 1; \
-               fi; \
-       done
-
-install clean distclean docclean manclean::
-       @for i in ${ALL_SUBDIRS}; do \
-               if [ "$$i" != "nulldir" -a -d $$i ]; then \
-                       echo "making $@ in `pwd`/$$i"; \
-                       (cd $$i; ${MAKE} ${MAKEDEFS} $@) || exit 1; \
-               fi \
-       done
-
-###
-### C Programs
-###
-### Makefile must define
-###    CC
-### Makefile may define
-###    CFLAGS
-###    CINCLUDES
-###    CDEFINES
-###    CWARNINGS
-### User may define externally
-###     EXT_CFLAGS
-
-CC =           @CC@
-CFLAGS =       @CFLAGS@
-STD_CINCLUDES =        @STD_CINCLUDES@
-STD_CDEFINES = @STD_CDEFINES@
-STD_CWARNINGS =        @STD_CWARNINGS@
-
-.SUFFIXES:
-.SUFFIXES: .c .@O@
-
-ALWAYS_INCLUDES = -I${top_builddir} -I${abs_top_srcdir}/@PORT_INCLUDE@
-ALWAYS_DEFINES = @ALWAYS_DEFINES@
-ALWAYS_WARNINGS =
-
-ALL_CPPFLAGS = \
-       ${ALWAYS_INCLUDES} ${CINCLUDES} ${STD_CINCLUDES} \
-       ${ALWAYS_DEFINES} ${CDEFINES} ${STD_CDEFINES}
-
-ALL_CFLAGS = ${EXT_CFLAGS} ${CFLAGS} \
-       ${ALL_CPPFLAGS} \
-       ${ALWAYS_WARNINGS} ${STD_CWARNINGS} ${CWARNINGS}
-
-.c.@O@:
-       ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} -c $<
-
-SHELL = @SHELL@
-LIBTOOL = @LIBTOOL@
-LIBTOOL_MODE_COMPILE = ${LIBTOOL} @LIBTOOL_MODE_COMPILE@
-LIBTOOL_MODE_INSTALL = ${LIBTOOL} @LIBTOOL_MODE_INSTALL@
-LIBTOOL_MODE_LINK = ${LIBTOOL} @LIBTOOL_MODE_LINK@
-PURIFY = @PURIFY@
-
-MKDEP = ${SHELL} ${top_builddir}/make/mkdep
-
-cleandir: distclean
-
-clean distclean::
-       rm -f *.@O@ *.lo *.la core *.core .depend
-       rm -rf .libs
-
-distclean::
-       rm -f Makefile
-
-depend:
-       @for i in ${ALL_SUBDIRS}; do \
-               if [ "$$i" != "nulldir" -a -d $$i ]; then \
-                       echo "making depend in `pwd`/$$i"; \
-                       (cd $$i; ${MAKE} ${MAKEDEFS} $@) || exit 1; \
-               fi \
-       done
-       @if [ X"${SRCS}" != X -a X"${PSRCS}" != X ] ; then \
-               echo ${MKDEP} ${ALL_CPPFLAGS} ${SRCS}; \
-               ${MKDEP} ${ALL_CPPFLAGS} ${SRCS}; \
-               echo ${MKDEP} -ap ${ALL_CPPFLAGS} ${PSRCS}; \
-               ${MKDEP} -ap ${ALL_CPPFLAGS} ${PSRCS}; \
-               ${DEPENDEXTRA} \
-       elif [ X"${SRCS}" != X ] ; then \
-               echo ${MKDEP} ${ALL_CPPFLAGS} ${SRCS}; \
-               ${MKDEP} ${ALL_CPPFLAGS} ${SRCS}; \
-               ${DEPENDEXTRA} \
-       elif [ X"${PSRCS}" != X ] ; then \
-               echo ${MKDEP} ${ALL_CPPFLAGS} ${PSRCS}; \
-               ${MKDEP} -p ${ALL_CPPFLAGS} ${PSRCS}; \
-               ${DEPENDEXTRA} \
-       fi
-
-FORCE:
-
-###
-### Libraries
-###
-
-AR =           @AR@
-ARFLAGS =      @ARFLAGS@
-RANLIB =       @RANLIB@
-
-###
-### Installation
-###
-
-INSTALL =              @INSTALL@
-INSTALL_PROGRAM =      @INSTALL_PROGRAM@
-INSTALL_DATA =         @INSTALL_DATA@
diff --git a/lib/bind/mkinstalldirs b/lib/bind/mkinstalldirs
deleted file mode 100644 (file)
index 74a611a..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.1 2001/07/06 22:23:42 gson Exp $
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-         errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/lib/bind/nameser/.cvsignore b/lib/bind/nameser/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/nameser/Makefile.in b/lib/bind/nameser/Makefile.in
deleted file mode 100644 (file)
index 9622020..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2004, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.9 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-OBJS=  ns_date.@O@ ns_name.@O@ ns_netint.@O@ ns_parse.@O@ ns_print.@O@ \
-       ns_samedomain.@O@ ns_sign.@O@ ns_ttl.@O@ ns_verify.@O@
-
-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
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/nameser/ns_date.c b/lib/bind/nameser/ns_date.c
deleted file mode 100644 (file)
index 292375a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_date.c,v 1.6 2005/04/27 04:56:39 sra Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/* Forward. */
-
-static int     datepart(const char *, int, int, int, int *);
-
-/* Public. */
-
-/*%
- * Convert a date in ASCII into the number of seconds since
- * 1 January 1970 (GMT assumed).  Format is yyyymmddhhmmss, all
- * digits required, no spaces allowed.
- */
-
-u_int32_t
-ns_datetosecs(const char *cp, int *errp) {
-       struct tm time;
-       u_int32_t result;
-       int mdays, i;
-       static const int days_per_month[12] =
-               {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-
-       if (strlen(cp) != 14U) {
-               *errp = 1;
-               return (0);
-       }
-       *errp = 0;
-
-       memset(&time, 0, sizeof time);
-       time.tm_year  = datepart(cp +  0, 4, 1990, 9999, errp) - 1900;
-       time.tm_mon   = datepart(cp +  4, 2,   01,   12, errp) - 1;
-       time.tm_mday  = datepart(cp +  6, 2,   01,   31, errp);
-       time.tm_hour  = datepart(cp +  8, 2,   00,   23, errp);
-       time.tm_min   = datepart(cp + 10, 2,   00,   59, errp);
-       time.tm_sec   = datepart(cp + 12, 2,   00,   59, errp);
-       if (*errp)              /*%< Any parse errors? */
-               return (0);
-
-       /* 
-        * OK, now because timegm() is not available in all environments,
-        * we will do it by hand.  Roll up sleeves, curse the gods, begin!
-        */
-
-#define SECS_PER_DAY    ((u_int32_t)24*60*60)
-#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
-
-       result  = time.tm_sec;                          /*%< Seconds */
-       result += time.tm_min * 60;                     /*%< Minutes */
-       result += time.tm_hour * (60*60);               /*%< Hours */
-       result += (time.tm_mday - 1) * SECS_PER_DAY;    /*%< Days */
-       /* Months are trickier.  Look without leaping, then leap */
-       mdays = 0;
-       for (i = 0; i < time.tm_mon; i++)
-               mdays += days_per_month[i];
-       result += mdays * SECS_PER_DAY;                 /*%< Months */
-       if (time.tm_mon > 1 && isleap(1900+time.tm_year))
-               result += SECS_PER_DAY;         /*%< Add leapday for this year */
-       /* First figure years without leapdays, then add them in.  */
-       /* The loop is slow, FIXME, but simple and accurate.  */
-       result += (time.tm_year - 70) * (SECS_PER_DAY*365); /*%< Years */
-       for (i = 70; i < time.tm_year; i++)
-               if (isleap(1900+i))
-                       result += SECS_PER_DAY; /*%< Add leapday for prev year */
-       return (result);
-}
-
-/* Private. */
-
-/*%
- * Parse part of a date.  Set error flag if any error.
- * Don't reset the flag if there is no error.
- */
-static int
-datepart(const char *buf, int size, int min, int max, int *errp) {
-       int result = 0;
-       int i;
-
-       for (i = 0; i < size; i++) {
-               if (!isdigit((unsigned char)(buf[i])))
-                       *errp = 1;
-               result = (result * 10) + buf[i] - '0';
-       }
-       if (result < min)
-               *errp = 1;
-       if (result > max)
-               *errp = 1;
-       return (result);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_name.c b/lib/bind/nameser/ns_name.c
deleted file mode 100644 (file)
index 9d409f3..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_name.c,v 1.10 2005/04/27 04:56:40 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <limits.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-#define NS_TYPE_ELT                    0x40 /*%< EDNS0 extended label type */
-#define DNS_LABELTYPE_BITSTRING                0x41
-
-/* Data. */
-
-static const char      digits[] = "0123456789";
-
-static const char digitvalue[256] = {
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*16*/
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*32*/
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*48*/
-        0,  1,  2,  3,  4,  5,  6,  7,  8,  9, -1, -1, -1, -1, -1, -1, /*64*/
-       -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*80*/
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*96*/
-       -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*112*/
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*128*/
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*256*/
-};
-
-/* Forward. */
-
-static int             special(int);
-static int             printable(int);
-static int             dn_find(const u_char *, const u_char *,
-                               const u_char * const *,
-                               const u_char * const *);
-static int             encode_bitsring(const char **, const char *,
-                                       unsigned char **, unsigned char **,
-                                       unsigned const char *);
-static int             labellen(const u_char *);
-static int             decode_bitstring(const unsigned char **,
-                                        char *, const char *);
-
-/* Public. */
-
-/*%
- *     Convert an encoded domain name to printable ascii as per RFC1035.
-
- * return:
- *\li  Number of bytes written to buffer, or -1 (with errno set)
- *
- * notes:
- *\li  The root is returned as "."
- *\li  All other domains are returned in non absolute form
- */
-int
-ns_name_ntop(const u_char *src, char *dst, size_t dstsiz)
-{
-       const u_char *cp;
-       char *dn, *eom;
-       u_char c;
-       u_int n;
-       int l;
-
-       cp = src;
-       dn = dst;
-       eom = dst + dstsiz;
-
-       while ((n = *cp++) != 0) {
-               if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-                       /* Some kind of compression pointer. */
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               if (dn != dst) {
-                       if (dn >= eom) {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       *dn++ = '.';
-               }
-               if ((l = labellen(cp - 1)) < 0) {
-                       errno = EMSGSIZE; /*%< XXX */
-                       return(-1);
-               }
-               if (dn + l >= eom) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               if ((n & NS_CMPRSFLGS) == NS_TYPE_ELT) {
-                       int m;
-
-                       if (n != DNS_LABELTYPE_BITSTRING) {
-                               /* XXX: labellen should reject this case */
-                               errno = EINVAL;
-                               return(-1);
-                       }
-                       if ((m = decode_bitstring(&cp, dn, eom)) < 0)
-                       {
-                               errno = EMSGSIZE;
-                               return(-1);
-                       }
-                       dn += m; 
-                       continue;
-               }
-               for ((void)NULL; l > 0; l--) {
-                       c = *cp++;
-                       if (special(c)) {
-                               if (dn + 1 >= eom) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               *dn++ = '\\';
-                               *dn++ = (char)c;
-                       } else if (!printable(c)) {
-                               if (dn + 3 >= eom) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               *dn++ = '\\';
-                               *dn++ = digits[c / 100];
-                               *dn++ = digits[(c % 100) / 10];
-                               *dn++ = digits[c % 10];
-                       } else {
-                               if (dn >= eom) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               *dn++ = (char)c;
-                       }
-               }
-       }
-       if (dn == dst) {
-               if (dn >= eom) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               *dn++ = '.';
-       }
-       if (dn >= eom) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       *dn++ = '\0';
-       return (dn - dst);
-}
-
-/*%
- *     Convert a ascii string into an encoded domain name as per RFC1035.
- *
- * return:
- *
- *\li  -1 if it fails
- *\li  1 if string was fully qualified
- *\li  0 is string was not fully qualified
- *
- * notes:
- *\li  Enforces label and domain length limits.
- */
-
-int
-ns_name_pton(const char *src, u_char *dst, size_t dstsiz)
-{
-       u_char *label, *bp, *eom;
-       int c, n, escaped, e = 0;
-       char *cp;
-
-       escaped = 0;
-       bp = dst;
-       eom = dst + dstsiz;
-       label = bp++;
-
-       while ((c = *src++) != 0) {
-               if (escaped) {
-                       if (c == '[') { /*%< start a bit string label */
-                               if ((cp = strchr(src, ']')) == NULL) {
-                                       errno = EINVAL; /*%< ??? */
-                                       return(-1);
-                               }
-                               if ((e = encode_bitsring(&src, cp + 2,
-                                                        &label, &bp, eom))
-                                   != 0) {
-                                       errno = e;
-                                       return(-1);
-                               }
-                               escaped = 0;
-                               label = bp++;
-                               if ((c = *src++) == 0)
-                                       goto done;
-                               else if (c != '.') {
-                                       errno = EINVAL;
-                                       return(-1);
-                               }
-                               continue;
-                       }
-                       else if ((cp = strchr(digits, c)) != NULL) {
-                               n = (cp - digits) * 100;
-                               if ((c = *src++) == 0 ||
-                                   (cp = strchr(digits, c)) == NULL) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               n += (cp - digits) * 10;
-                               if ((c = *src++) == 0 ||
-                                   (cp = strchr(digits, c)) == NULL) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               n += (cp - digits);
-                               if (n > 255) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               c = n;
-                       }
-                       escaped = 0;
-               } else if (c == '\\') {
-                       escaped = 1;
-                       continue;
-               } else if (c == '.') {
-                       c = (bp - label - 1);
-                       if ((c & NS_CMPRSFLGS) != 0) {  /*%< Label too big. */
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       if (label >= eom) {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       *label = c;
-                       /* Fully qualified ? */
-                       if (*src == '\0') {
-                               if (c != 0) {
-                                       if (bp >= eom) {
-                                               errno = EMSGSIZE;
-                                               return (-1);
-                                       }
-                                       *bp++ = '\0';
-                               }
-                               if ((bp - dst) > MAXCDNAME) {
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                               return (1);
-                       }
-                       if (c == 0 || *src == '.') {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       label = bp++;
-                       continue;
-               }
-               if (bp >= eom) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               *bp++ = (u_char)c;
-       }
-       c = (bp - label - 1);
-       if ((c & NS_CMPRSFLGS) != 0) {          /*%< Label too big. */
-               errno = EMSGSIZE;
-               return (-1);
-       }
-  done:
-       if (label >= eom) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       *label = c;
-       if (c != 0) {
-               if (bp >= eom) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               *bp++ = 0;
-       }
-       if ((bp - dst) > MAXCDNAME) {   /*%< src too big */
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       return (0);
-}
-
-/*%
- *     Convert a network strings labels into all lowercase.
- *
- * return:
- *\li  Number of bytes written to buffer, or -1 (with errno set)
- *
- * notes:
- *\li  Enforces label and domain length limits.
- */
-
-int
-ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
-{
-       const u_char *cp;
-       u_char *dn, *eom;
-       u_char c;
-       u_int n;
-       int l;
-
-       cp = src;
-       dn = dst;
-       eom = dst + dstsiz;
-
-       if (dn >= eom) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       while ((n = *cp++) != 0) {
-               if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-                       /* Some kind of compression pointer. */
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               *dn++ = n;
-               if ((l = labellen(cp - 1)) < 0) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               if (dn + l >= eom) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               for ((void)NULL; l > 0; l--) {
-                       c = *cp++;
-                       if (isupper(c))
-                               *dn++ = tolower(c);
-                       else
-                               *dn++ = c;
-               }
-       }
-       *dn++ = '\0';
-       return (dn - dst);
-}
-
-/*%
- *     Unpack a domain name from a message, source may be compressed.
- *
- * return:
- *\li  -1 if it fails, or consumed octets if it succeeds.
- */
-int
-ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
-              u_char *dst, size_t dstsiz)
-{
-       const u_char *srcp, *dstlim;
-       u_char *dstp;
-       int n, len, checked, l;
-
-       len = -1;
-       checked = 0;
-       dstp = dst;
-       srcp = src;
-       dstlim = dst + dstsiz;
-       if (srcp < msg || srcp >= eom) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       /* Fetch next label in domain name. */
-       while ((n = *srcp++) != 0) {
-               /* Check for indirection. */
-               switch (n & NS_CMPRSFLGS) {
-               case 0:
-               case NS_TYPE_ELT:
-                       /* Limit checks. */
-                       if ((l = labellen(srcp - 1)) < 0) {
-                               errno = EMSGSIZE;
-                               return(-1);
-                       }
-                       if (dstp + l + 1 >= dstlim || srcp + l >= eom) {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       checked += l + 1;
-                       *dstp++ = n;
-                       memcpy(dstp, srcp, l);
-                       dstp += l;
-                       srcp += l;
-                       break;
-
-               case NS_CMPRSFLGS:
-                       if (srcp >= eom) {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       if (len < 0)
-                               len = srcp - src + 1;
-                       srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
-                       if (srcp < msg || srcp >= eom) {  /*%< Out of range. */
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       checked += 2;
-                       /*
-                        * Check for loops in the compressed name;
-                        * if we've looked at the whole message,
-                        * there must be a loop.
-                        */
-                       if (checked >= eom - msg) {
-                               errno = EMSGSIZE;
-                               return (-1);
-                       }
-                       break;
-
-               default:
-                       errno = EMSGSIZE;
-                       return (-1);                    /*%< flag error */
-               }
-       }
-       *dstp = '\0';
-       if (len < 0)
-               len = srcp - src;
-       return (len);
-}
-
-/*%
- *     Pack domain name 'domain' into 'comp_dn'.
- *
- * return:
- *\li  Size of the compressed name, or -1.
- *
- * notes:
- *\li  'dnptrs' is an array of pointers to previous compressed names.
- *\li  dnptrs[0] is a pointer to the beginning of the message. The array
- *     ends with NULL.
- *\li  'lastdnptr' is a pointer to the end of the array pointed to
- *     by 'dnptrs'.
- *
- * Side effects:
- *\li  The list of pointers in dnptrs is updated for labels inserted into
- *     the message as we compress the name.  If 'dnptr' is NULL, we don't
- *     try to compress names. If 'lastdnptr' is NULL, we don't update the
- *     list.
- */
-int
-ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
-            const u_char **dnptrs, const u_char **lastdnptr)
-{
-       u_char *dstp;
-       const u_char **cpp, **lpp, *eob, *msg;
-       const u_char *srcp;
-       int n, l, first = 1;
-
-       srcp = src;
-       dstp = dst;
-       eob = dstp + dstsiz;
-       lpp = cpp = NULL;
-       if (dnptrs != NULL) {
-               if ((msg = *dnptrs++) != NULL) {
-                       for (cpp = dnptrs; *cpp != NULL; cpp++)
-                               (void)NULL;
-                       lpp = cpp;      /*%< end of list to search */
-               }
-       } else
-               msg = NULL;
-
-       /* make sure the domain we are about to add is legal */
-       l = 0;
-       do {
-               int l0;
-
-               n = *srcp;
-               if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               if ((l0 = labellen(srcp)) < 0) {
-                       errno = EINVAL;
-                       return(-1);
-               }
-               l += l0 + 1;
-               if (l > MAXCDNAME) {
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               srcp += l0 + 1;
-       } while (n != 0);
-
-       /* from here on we need to reset compression pointer array on error */
-       srcp = src;
-       do {
-               /* Look to see if we can use pointers. */
-               n = *srcp;
-               if (n != 0 && msg != NULL) {
-                       l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-                                   (const u_char * const *)lpp);
-                       if (l >= 0) {
-                               if (dstp + 1 >= eob) {
-                                       goto cleanup;
-                               }
-                               *dstp++ = (l >> 8) | NS_CMPRSFLGS;
-                               *dstp++ = l % 256;
-                               return (dstp - dst);
-                       }
-                       /* Not found, save it. */
-                       if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-                           (dstp - msg) < 0x4000 && first) {
-                               *cpp++ = dstp;
-                               *cpp = NULL;
-                               first = 0;
-                       }
-               }
-               /* copy label to buffer */
-               if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-                       /* Should not happen. */
-                       goto cleanup;
-               }
-               n = labellen(srcp);
-               if (dstp + 1 + n >= eob) {
-                       goto cleanup;
-               }
-               memcpy(dstp, srcp, n + 1);
-               srcp += n + 1;
-               dstp += n + 1;
-       } while (n != 0);
-
-       if (dstp > eob) {
-cleanup:
-               if (msg != NULL)
-                       *lpp = NULL;
-               errno = EMSGSIZE;
-               return (-1);
-       } 
-       return (dstp - dst);
-}
-
-/*%
- *     Expand compressed domain name to presentation format.
- *
- * return:
- *\li  Number of bytes read out of `src', or -1 (with errno set).
- *
- * note:
- *\li  Root domain returns as "." not "".
- */
-int
-ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
-                  char *dst, size_t dstsiz)
-{
-       u_char tmp[NS_MAXCDNAME];
-       int n;
-       
-       if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
-               return (-1);
-       if (ns_name_ntop(tmp, dst, dstsiz) == -1)
-               return (-1);
-       return (n);
-}
-
-/*%
- *     Compress a domain name into wire format, using compression pointers.
- *
- * return:
- *\li  Number of bytes consumed in `dst' or -1 (with errno set).
- *
- * notes:
- *\li  'dnptrs' is an array of pointers to previous compressed names.
- *\li  dnptrs[0] is a pointer to the beginning of the message.
- *\li  The list ends with NULL.  'lastdnptr' is a pointer to the end of the
- *     array pointed to by 'dnptrs'. Side effect is to update the list of
- *     pointers for labels inserted into the message as we compress the name.
- *\li  If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
- *     is NULL, we don't update the list.
- */
-int
-ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
-                const u_char **dnptrs, const u_char **lastdnptr)
-{
-       u_char tmp[NS_MAXCDNAME];
-
-       if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-               return (-1);
-       return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-}
-
-/*%
- * Reset dnptrs so that there are no active references to pointers at or
- * after src.
- */
-void
-ns_name_rollback(const u_char *src, const u_char **dnptrs,
-                const u_char **lastdnptr)
-{
-       while (dnptrs < lastdnptr && *dnptrs != NULL) {
-               if (*dnptrs >= src) {
-                       *dnptrs = NULL;
-                       break;
-               }
-               dnptrs++;
-       }
-}
-
-/*%
- *     Advance *ptrptr to skip over the compressed name it points at.
- *
- * return:
- *\li  0 on success, -1 (with errno set) on failure.
- */
-int
-ns_name_skip(const u_char **ptrptr, const u_char *eom)
-{
-       const u_char *cp;
-       u_int n;
-       int l;
-
-       cp = *ptrptr;
-       while (cp < eom && (n = *cp++) != 0) {
-               /* Check for indirection. */
-               switch (n & NS_CMPRSFLGS) {
-               case 0:                 /*%< normal case, n == len */
-                       cp += n;
-                       continue;
-               case NS_TYPE_ELT: /*%< EDNS0 extended label */
-                       if ((l = labellen(cp - 1)) < 0) {
-                               errno = EMSGSIZE; /*%< XXX */
-                               return(-1);
-                       }
-                       cp += l;
-                       continue;
-               case NS_CMPRSFLGS:      /*%< indirection */
-                       cp++;
-                       break;
-               default:                /*%< illegal type */
-                       errno = EMSGSIZE;
-                       return (-1);
-               }
-               break;
-       }
-       if (cp > eom) {
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       *ptrptr = cp;
-       return (0);
-}
-
-/* Private. */
-
-/*%
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     is this characted special ("in need of quoting") ?
- *
- * return:
- *\li  boolean.
- */
-static int
-special(int ch) {
-       switch (ch) {
-       case 0x22: /*%< '"' */
-       case 0x2E: /*%< '.' */
-       case 0x3B: /*%< ';' */
-       case 0x5C: /*%< '\\' */
-       case 0x28: /*%< '(' */
-       case 0x29: /*%< ')' */
-       /* Special modifiers in zone files. */
-       case 0x40: /*%< '@' */
-       case 0x24: /*%< '$' */
-               return (1);
-       default:
-               return (0);
-       }
-}
-
-/*%
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     is this character visible and not a space when printed ?
- *
- * return:
- *\li  boolean.
- */
-static int
-printable(int ch) {
-       return (ch > 0x20 && ch < 0x7f);
-}
-
-/*%
- *     Thinking in noninternationalized USASCII (per the DNS spec),
- *     convert this character to lower case if it's upper case.
- */
-static int
-mklower(int ch) {
-       if (ch >= 0x41 && ch <= 0x5A)
-               return (ch + 0x20);
-       return (ch);
-}
-
-/*%
- *     Search for the counted-label name in an array of compressed names.
- *
- * return:
- *\li  offset from msg if found, or -1.
- *
- * notes:
- *\li  dnptrs is the pointer to the first name on the list,
- *\li  not the pointer to the start of the message.
- */
-static int
-dn_find(const u_char *domain, const u_char *msg,
-       const u_char * const *dnptrs,
-       const u_char * const *lastdnptr)
-{
-       const u_char *dn, *cp, *sp;
-       const u_char * const *cpp;
-       u_int n;
-
-       for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-               sp = *cpp;
-               /*
-                * terminate search on:
-                * root label
-                * compression pointer
-                * unusable offset
-                */
-               while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
-                      (sp - msg) < 0x4000) {
-                       dn = domain;
-                       cp = sp;
-                       while ((n = *cp++) != 0) {
-                               /*
-                                * check for indirection
-                                */
-                               switch (n & NS_CMPRSFLGS) {
-                               case 0:         /*%< normal case, n == len */
-                                       n = labellen(cp - 1); /*%< XXX */
-                                       if (n != *dn++)
-                                               goto next;
-
-                                       for ((void)NULL; n > 0; n--)
-                                               if (mklower(*dn++) !=
-                                                   mklower(*cp++))
-                                                       goto next;
-                                       /* Is next root for both ? */
-                                       if (*dn == '\0' && *cp == '\0')
-                                               return (sp - msg);
-                                       if (*dn)
-                                               continue;
-                                       goto next;
-                               case NS_CMPRSFLGS:      /*%< indirection */
-                                       cp = msg + (((n & 0x3f) << 8) | *cp);
-                                       break;
-
-                               default:        /*%< illegal type */
-                                       errno = EMSGSIZE;
-                                       return (-1);
-                               }
-                       }
- next: ;
-                       sp += *sp + 1;
-               }
-       }
-       errno = ENOENT;
-       return (-1);
-}
-
-static int
-decode_bitstring(const unsigned char **cpp, char *dn, const char *eom)
-{
-       const unsigned char *cp = *cpp;
-       char *beg = dn, tc;
-       int b, blen, plen, i;
-
-       if ((blen = (*cp & 0xff)) == 0)
-               blen = 256;
-       plen = (blen + 3) / 4;
-       plen += sizeof("\\[x/]") + (blen > 99 ? 3 : (blen > 9) ? 2 : 1);
-       if (dn + plen >= eom)
-               return(-1);
-
-       cp++;
-       i = SPRINTF((dn, "\\[x"));
-       if (i < 0)
-               return (-1);
-       dn += i;
-       for (b = blen; b > 7; b -= 8, cp++) {
-               i = SPRINTF((dn, "%02x", *cp & 0xff));
-               if (i < 0)
-                       return (-1);
-               dn += i;
-       }
-       if (b > 4) {
-               tc = *cp++;
-               i = SPRINTF((dn, "%02x", tc & (0xff << (8 - b))));
-               if (i < 0)
-                       return (-1);
-               dn += i;
-       } else if (b > 0) {
-               tc = *cp++;
-               i = SPRINTF((dn, "%1x",
-                              ((tc >> 4) & 0x0f) & (0x0f << (4 - b)))); 
-               if (i < 0)
-                       return (-1);
-               dn += i;
-       }
-       i = SPRINTF((dn, "/%d]", blen));
-       if (i < 0)
-               return (-1);
-       dn += i;
-
-       *cpp = cp;
-       return(dn - beg);
-}
-
-static int
-encode_bitsring(const char **bp, const char *end, unsigned char **labelp,
-               unsigned char ** dst, unsigned const char *eom)
-{
-       int afterslash = 0;
-       const char *cp = *bp;
-       unsigned char *tp;
-       char c;
-       const char *beg_blen;
-       char *end_blen = NULL;
-       int value = 0, count = 0, tbcount = 0, blen = 0;
-
-       beg_blen = end_blen = NULL;
-
-       /* a bitstring must contain at least 2 characters */
-       if (end - cp < 2)
-               return(EINVAL);
-
-       /* XXX: currently, only hex strings are supported */
-       if (*cp++ != 'x')
-               return(EINVAL);
-       if (!isxdigit((*cp) & 0xff)) /*%< reject '\[x/BLEN]' */
-               return(EINVAL);
-
-       for (tp = *dst + 1; cp < end && tp < eom; cp++) {
-               switch((c = *cp)) {
-               case ']':       /*%< end of the bitstring */
-                       if (afterslash) {
-                               if (beg_blen == NULL)
-                                       return(EINVAL);
-                               blen = (int)strtol(beg_blen, &end_blen, 10);
-                               if (*end_blen != ']')
-                                       return(EINVAL);
-                       }
-                       if (count)
-                               *tp++ = ((value << 4) & 0xff);
-                       cp++;   /*%< skip ']' */
-                       goto done;
-               case '/':
-                       afterslash = 1;
-                       break;
-               default:
-                       if (afterslash) {
-                               if (!isdigit(c&0xff))
-                                       return(EINVAL);
-                               if (beg_blen == NULL) {
-                                       
-                                       if (c == '0') {
-                                               /* blen never begings with 0 */
-                                               return(EINVAL);
-                                       }
-                                       beg_blen = cp;
-                               }
-                       } else {
-                               if (!isxdigit(c&0xff))
-                                       return(EINVAL);
-                               value <<= 4;
-                               value += digitvalue[(int)c];
-                               count += 4;
-                               tbcount += 4;
-                               if (tbcount > 256)
-                                       return(EINVAL);
-                               if (count == 8) {
-                                       *tp++ = value;
-                                       count = 0;
-                               }
-                       }
-                       break;
-               }
-       }
-  done:
-       if (cp >= end || tp >= eom)
-               return(EMSGSIZE);
-
-       /*
-        * bit length validation:
-        * If a <length> is present, the number of digits in the <bit-data>
-        * MUST be just sufficient to contain the number of bits specified
-        * by the <length>. If there are insignificant bits in a final
-        * hexadecimal or octal digit, they MUST be zero.
-        * RFC2673, Section 3.2.
-        */
-       if (blen > 0) {
-               int traillen;
-
-               if (((blen + 3) & ~3) != tbcount)
-                       return(EINVAL);
-               traillen = tbcount - blen; /*%< between 0 and 3 */
-               if (((value << (8 - traillen)) & 0xff) != 0)
-                       return(EINVAL);
-       }
-       else
-               blen = tbcount;
-       if (blen == 256)
-               blen = 0;
-
-       /* encode the type and the significant bit fields */
-       **labelp = DNS_LABELTYPE_BITSTRING;
-       **dst = blen;
-
-       *bp = cp;
-       *dst = tp;
-
-       return(0);
-}
-
-static int
-labellen(const u_char *lp)
-{
-       int bitlen;
-       u_char l = *lp;
-
-       if ((l & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-               /* should be avoided by the caller */
-               return(-1);
-       }
-
-       if ((l & NS_CMPRSFLGS) == NS_TYPE_ELT) {
-               if (l == DNS_LABELTYPE_BITSTRING) {
-                       if ((bitlen = *(lp + 1)) == 0)
-                               bitlen = 256;
-                       return((bitlen + 7 ) / 8 + 1);
-               }
-               return(-1);     /*%< unknwon ELT */
-       }
-       return(l);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_netint.c b/lib/bind/nameser/ns_netint.c
deleted file mode 100644 (file)
index 559c9d5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_netint.c,v 1.3 2005/04/27 04:56:40 sra Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <arpa/nameser.h>
-
-#include "port_after.h"
-
-/* Public. */
-
-u_int
-ns_get16(const u_char *src) {
-       u_int dst;
-
-       NS_GET16(dst, src);
-       return (dst);
-}
-
-u_long
-ns_get32(const u_char *src) {
-       u_long dst;
-
-       NS_GET32(dst, src);
-       return (dst);
-}
-
-void
-ns_put16(u_int src, u_char *dst) {
-       NS_PUT16(src, dst);
-}
-
-void
-ns_put32(u_long src, u_char *dst) {
-       NS_PUT32(src, dst);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_parse.c b/lib/bind/nameser/ns_parse.c
deleted file mode 100644 (file)
index 09b19f8..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_parse.c,v 1.9 2007/08/27 03:32:26 marka Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <resolv.h>
-#include <string.h>
-
-#include "port_after.h"
-
-/* Forward. */
-
-static void    setsection(ns_msg *msg, ns_sect sect);
-
-/* Macros. */
-
-#if !defined(SOLARIS2) || defined(__COVERITY__)
-#define RETERR(err) do { errno = (err); return (-1); } while (0)
-#else
-#define RETERR(err) \
-       do { errno = (err); if (errno == errno) return (-1); } while (0)
-#endif
-
-/* Public. */
-
-/* These need to be in the same order as the nres.h:ns_flag enum. */
-struct _ns_flagdata _ns_flagdata[16] = {
-       { 0x8000, 15 },         /*%< qr. */
-       { 0x7800, 11 },         /*%< opcode. */
-       { 0x0400, 10 },         /*%< aa. */
-       { 0x0200, 9 },          /*%< tc. */
-       { 0x0100, 8 },          /*%< rd. */
-       { 0x0080, 7 },          /*%< ra. */
-       { 0x0040, 6 },          /*%< z. */
-       { 0x0020, 5 },          /*%< ad. */
-       { 0x0010, 4 },          /*%< cd. */
-       { 0x000f, 0 },          /*%< rcode. */
-       { 0x0000, 0 },          /*%< expansion (1/6). */
-       { 0x0000, 0 },          /*%< expansion (2/6). */
-       { 0x0000, 0 },          /*%< expansion (3/6). */
-       { 0x0000, 0 },          /*%< expansion (4/6). */
-       { 0x0000, 0 },          /*%< expansion (5/6). */
-       { 0x0000, 0 },          /*%< expansion (6/6). */
-};
-
-int ns_msg_getflag(ns_msg handle, int flag) {
-       return(((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift);
-}
-
-int
-ns_skiprr(const u_char *ptr, const u_char *eom, ns_sect section, int count) {
-       const u_char *optr = ptr;
-
-       for ((void)NULL; count > 0; count--) {
-               int b, rdlength;
-
-               b = dn_skipname(ptr, eom);
-               if (b < 0)
-                       RETERR(EMSGSIZE);
-               ptr += b/*Name*/ + NS_INT16SZ/*Type*/ + NS_INT16SZ/*Class*/;
-               if (section != ns_s_qd) {
-                       if (ptr + NS_INT32SZ + NS_INT16SZ > eom)
-                               RETERR(EMSGSIZE);
-                       ptr += NS_INT32SZ/*TTL*/;
-                       NS_GET16(rdlength, ptr);
-                       ptr += rdlength/*RData*/;
-               }
-       }
-       if (ptr > eom)
-               RETERR(EMSGSIZE);
-       return (ptr - optr);
-}
-
-int
-ns_initparse(const u_char *msg, int msglen, ns_msg *handle) {
-       const u_char *eom = msg + msglen;
-       int i;
-
-       memset(handle, 0x5e, sizeof *handle);
-       handle->_msg = msg;
-       handle->_eom = eom;
-       if (msg + NS_INT16SZ > eom)
-               RETERR(EMSGSIZE);
-       NS_GET16(handle->_id, msg);
-       if (msg + NS_INT16SZ > eom)
-               RETERR(EMSGSIZE);
-       NS_GET16(handle->_flags, msg);
-       for (i = 0; i < ns_s_max; i++) {
-               if (msg + NS_INT16SZ > eom)
-                       RETERR(EMSGSIZE);
-               NS_GET16(handle->_counts[i], msg);
-       }
-       for (i = 0; i < ns_s_max; i++)
-               if (handle->_counts[i] == 0)
-                       handle->_sections[i] = NULL;
-               else {
-                       int b = ns_skiprr(msg, eom, (ns_sect)i,
-                                         handle->_counts[i]);
-
-                       if (b < 0)
-                               return (-1);
-                       handle->_sections[i] = msg;
-                       msg += b;
-               }
-       if (msg != eom)
-               RETERR(EMSGSIZE);
-       setsection(handle, ns_s_max);
-       return (0);
-}
-
-int
-ns_parserr(ns_msg *handle, ns_sect section, int rrnum, ns_rr *rr) {
-       int b;
-       int tmp;
-
-       /* Make section right. */
-       tmp = section;
-       if (tmp < 0 || section >= ns_s_max)
-               RETERR(ENODEV);
-       if (section != handle->_sect)
-               setsection(handle, section);
-
-       /* Make rrnum right. */
-       if (rrnum == -1)
-               rrnum = handle->_rrnum;
-       if (rrnum < 0 || rrnum >= handle->_counts[(int)section])
-               RETERR(ENODEV);
-       if (rrnum < handle->_rrnum)
-               setsection(handle, section);
-       if (rrnum > handle->_rrnum) {
-               b = ns_skiprr(handle->_msg_ptr, handle->_eom, section,
-                             rrnum - handle->_rrnum);
-
-               if (b < 0)
-                       return (-1);
-               handle->_msg_ptr += b;
-               handle->_rrnum = rrnum;
-       }
-
-       /* Do the parse. */
-       b = dn_expand(handle->_msg, handle->_eom,
-                     handle->_msg_ptr, rr->name, NS_MAXDNAME);
-       if (b < 0)
-               return (-1);
-       handle->_msg_ptr += b;
-       if (handle->_msg_ptr + NS_INT16SZ + NS_INT16SZ > handle->_eom)
-               RETERR(EMSGSIZE);
-       NS_GET16(rr->type, handle->_msg_ptr);
-       NS_GET16(rr->rr_class, handle->_msg_ptr);
-       if (section == ns_s_qd) {
-               rr->ttl = 0;
-               rr->rdlength = 0;
-               rr->rdata = NULL;
-       } else {
-               if (handle->_msg_ptr + NS_INT32SZ + NS_INT16SZ > handle->_eom)
-                       RETERR(EMSGSIZE);
-               NS_GET32(rr->ttl, handle->_msg_ptr);
-               NS_GET16(rr->rdlength, handle->_msg_ptr);
-               if (handle->_msg_ptr + rr->rdlength > handle->_eom)
-                       RETERR(EMSGSIZE);
-               rr->rdata = handle->_msg_ptr;
-               handle->_msg_ptr += rr->rdlength;
-       }
-       if (++handle->_rrnum > handle->_counts[(int)section])
-               setsection(handle, (ns_sect)((int)section + 1));
-
-       /* All done. */
-       return (0);
-}
-
-/* Private. */
-
-static void
-setsection(ns_msg *msg, ns_sect sect) {
-       msg->_sect = sect;
-       if (sect == ns_s_max) {
-               msg->_rrnum = -1;
-               msg->_msg_ptr = NULL;
-       } else {
-               msg->_rrnum = 0;
-               msg->_msg_ptr = msg->_sections[(int)sect];
-       }
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_print.c b/lib/bind/nameser/ns_print.c
deleted file mode 100644 (file)
index 6a23e9a..0000000
+++ /dev/null
@@ -1,897 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_print.c,v 1.10 2005/04/27 04:56:40 sra Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <isc/assertions.h>
-#include <isc/dst.h>
-#include <errno.h>
-#include <resolv.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/* Forward. */
-
-static size_t  prune_origin(const char *name, const char *origin);
-static int     charstr(const u_char *rdata, const u_char *edata,
-                       char **buf, size_t *buflen);
-static int     addname(const u_char *msg, size_t msglen,
-                       const u_char **p, const char *origin,
-                       char **buf, size_t *buflen);
-static void    addlen(size_t len, char **buf, size_t *buflen);
-static int     addstr(const char *src, size_t len,
-                      char **buf, size_t *buflen);
-static int     addtab(size_t len, size_t target, int spaced,
-                      char **buf, size_t *buflen);
-
-/* Macros. */
-
-#define        T(x) \
-       do { \
-               if ((x) < 0) \
-                       return (-1); \
-       } while (0)
-
-/* Public. */
-
-/*%
- *     Convert an RR to presentation format.
- *
- * return:
- *\li  Number of characters written to buf, or -1 (check errno).
- */
-int
-ns_sprintrr(const ns_msg *handle, const ns_rr *rr,
-           const char *name_ctx, const char *origin,
-           char *buf, size_t buflen)
-{
-       int n;
-
-       n = ns_sprintrrf(ns_msg_base(*handle), ns_msg_size(*handle),
-                        ns_rr_name(*rr), ns_rr_class(*rr), ns_rr_type(*rr),
-                        ns_rr_ttl(*rr), ns_rr_rdata(*rr), ns_rr_rdlen(*rr),
-                        name_ctx, origin, buf, buflen);
-       return (n);
-}
-
-/*%
- *     Convert the fields of an RR into presentation format.
- *
- * return:
- *\li  Number of characters written to buf, or -1 (check errno).
- */
-int
-ns_sprintrrf(const u_char *msg, size_t msglen,
-           const char *name, ns_class class, ns_type type,
-           u_long ttl, const u_char *rdata, size_t rdlen,
-           const char *name_ctx, const char *origin,
-           char *buf, size_t buflen)
-{
-       const char *obuf = buf;
-       const u_char *edata = rdata + rdlen;
-       int spaced = 0;
-
-       const char *comment;
-       char tmp[100];
-       int len, x;
-
-       /*
-        * Owner.
-        */
-       if (name_ctx != NULL && ns_samename(name_ctx, name) == 1) {
-               T(addstr("\t\t\t", 3, &buf, &buflen));
-       } else {
-               len = prune_origin(name, origin);
-               if (*name == '\0') {
-                       goto root;
-               } else if (len == 0) {
-                       T(addstr("@\t\t\t", 4, &buf, &buflen));
-               } else {
-                       T(addstr(name, len, &buf, &buflen));
-                       /* Origin not used or not root, and no trailing dot? */
-                       if (((origin == NULL || origin[0] == '\0') ||
-                           (origin[0] != '.' && origin[1] != '\0' &&
-                           name[len] == '\0')) && name[len - 1] != '.') {
- root:
-                               T(addstr(".", 1, &buf, &buflen));
-                               len++;
-                       }
-                       T(spaced = addtab(len, 24, spaced, &buf, &buflen));
-               }
-       }
-
-       /*
-        * TTL, Class, Type.
-        */
-       T(x = ns_format_ttl(ttl, buf, buflen));
-       addlen(x, &buf, &buflen);
-       len = SPRINTF((tmp, " %s %s", p_class(class), p_type(type)));
-       T(addstr(tmp, len, &buf, &buflen));
-       T(spaced = addtab(x + len, 16, spaced, &buf, &buflen));
-
-       /*
-        * RData.
-        */
-       switch (type) {
-       case ns_t_a:
-               if (rdlen != (size_t)NS_INADDRSZ)
-                       goto formerr;
-               (void) inet_ntop(AF_INET, rdata, buf, buflen);
-               addlen(strlen(buf), &buf, &buflen);
-               break;
-
-       case ns_t_cname:
-       case ns_t_mb:
-       case ns_t_mg:
-       case ns_t_mr:
-       case ns_t_ns:
-       case ns_t_ptr:
-       case ns_t_dname:
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               break;
-
-       case ns_t_hinfo:
-       case ns_t_isdn:
-               /* First word. */
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               T(addstr(" ", 1, &buf, &buflen));
-
-                   
-               /* Second word, optional in ISDN records. */
-               if (type == ns_t_isdn && rdata == edata)
-                       break;
-                   
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               break;
-
-       case ns_t_soa: {
-               u_long t;
-
-               /* Server name. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Administrator name. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" (\n", 3, &buf, &buflen));
-               spaced = 0;
-
-               if ((edata - rdata) != 5*NS_INT32SZ)
-                       goto formerr;
-
-               /* Serial number. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               T(addstr("\t\t\t\t\t", 5, &buf, &buflen));
-               len = SPRINTF((tmp, "%lu", t));
-               T(addstr(tmp, len, &buf, &buflen));
-               T(spaced = addtab(len, 16, spaced, &buf, &buflen));
-               T(addstr("; serial\n", 9, &buf, &buflen));
-               spaced = 0;
-
-               /* Refresh interval. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               T(addstr("\t\t\t\t\t", 5, &buf, &buflen));
-               T(len = ns_format_ttl(t, buf, buflen));
-               addlen(len, &buf, &buflen);
-               T(spaced = addtab(len, 16, spaced, &buf, &buflen));
-               T(addstr("; refresh\n", 10, &buf, &buflen));
-               spaced = 0;
-
-               /* Retry interval. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               T(addstr("\t\t\t\t\t", 5, &buf, &buflen));
-               T(len = ns_format_ttl(t, buf, buflen));
-               addlen(len, &buf, &buflen);
-               T(spaced = addtab(len, 16, spaced, &buf, &buflen));
-               T(addstr("; retry\n", 8, &buf, &buflen));
-               spaced = 0;
-
-               /* Expiry. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               T(addstr("\t\t\t\t\t", 5, &buf, &buflen));
-               T(len = ns_format_ttl(t, buf, buflen));
-               addlen(len, &buf, &buflen);
-               T(spaced = addtab(len, 16, spaced, &buf, &buflen));
-               T(addstr("; expiry\n", 9, &buf, &buflen));
-               spaced = 0;
-
-               /* Minimum TTL. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               T(addstr("\t\t\t\t\t", 5, &buf, &buflen));
-               T(len = ns_format_ttl(t, buf, buflen));
-               addlen(len, &buf, &buflen);
-               T(addstr(" )", 2, &buf, &buflen));
-               T(spaced = addtab(len, 16, spaced, &buf, &buflen));
-               T(addstr("; minimum\n", 10, &buf, &buflen));
-
-               break;
-           }
-
-       case ns_t_mx:
-       case ns_t_afsdb:
-       case ns_t_rt: {
-               u_int t;
-
-               if (rdlen < (size_t)NS_INT16SZ)
-                       goto formerr;
-
-               /* Priority. */
-               t = ns_get16(rdata);
-               rdata += NS_INT16SZ;
-               len = SPRINTF((tmp, "%u ", t));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Target. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-
-               break;
-           }
-
-       case ns_t_px: {
-               u_int t;
-
-               if (rdlen < (size_t)NS_INT16SZ)
-                       goto formerr;
-
-               /* Priority. */
-               t = ns_get16(rdata);
-               rdata += NS_INT16SZ;
-               len = SPRINTF((tmp, "%u ", t));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Name1. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Name2. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-
-               break;
-           }
-
-       case ns_t_x25:
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               break;
-
-       case ns_t_txt:
-               while (rdata < edata) {
-                       T(len = charstr(rdata, edata, &buf, &buflen));
-                       if (len == 0)
-                               goto formerr;
-                       rdata += len;
-                       if (rdata < edata)
-                               T(addstr(" ", 1, &buf, &buflen));
-               }
-               break;
-
-       case ns_t_nsap: {
-               char t[2+255*3];
-
-               (void) inet_nsap_ntoa(rdlen, rdata, t);
-               T(addstr(t, strlen(t), &buf, &buflen));
-               break;
-           }
-
-       case ns_t_aaaa:
-               if (rdlen != (size_t)NS_IN6ADDRSZ)
-                       goto formerr;
-               (void) inet_ntop(AF_INET6, rdata, buf, buflen);
-               addlen(strlen(buf), &buf, &buflen);
-               break;
-
-       case ns_t_loc: {
-               char t[255];
-
-               /* XXX protocol format checking? */
-               (void) loc_ntoa(rdata, t);
-               T(addstr(t, strlen(t), &buf, &buflen));
-               break;
-           }
-
-       case ns_t_naptr: {
-               u_int order, preference;
-               char t[50];
-
-               if (rdlen < 2U*NS_INT16SZ)
-                       goto formerr;
-
-               /* Order, Precedence. */
-               order = ns_get16(rdata);        rdata += NS_INT16SZ;
-               preference = ns_get16(rdata);   rdata += NS_INT16SZ;
-               len = SPRINTF((t, "%u %u ", order, preference));
-               T(addstr(t, len, &buf, &buflen));
-
-               /* Flags. */
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Service. */
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Regexp. */
-               T(len = charstr(rdata, edata, &buf, &buflen));
-               if (len < 0)
-                       return (-1);
-               if (len == 0)
-                       goto formerr;
-               rdata += len;
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Server. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               break;
-           }
-
-       case ns_t_srv: {
-               u_int priority, weight, port;
-               char t[50];
-
-               if (rdlen < 3U*NS_INT16SZ)
-                       goto formerr;
-
-               /* Priority, Weight, Port. */
-               priority = ns_get16(rdata);  rdata += NS_INT16SZ;
-               weight   = ns_get16(rdata);  rdata += NS_INT16SZ;
-               port     = ns_get16(rdata);  rdata += NS_INT16SZ;
-               len = SPRINTF((t, "%u %u %u ", priority, weight, port));
-               T(addstr(t, len, &buf, &buflen));
-
-               /* Server. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               break;
-           }
-
-       case ns_t_minfo:
-       case ns_t_rp:
-               /* Name1. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Name2. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-
-               break;
-
-       case ns_t_wks: {
-               int n, lcnt;
-
-               if (rdlen < 1U + NS_INT32SZ)
-                       goto formerr;
-
-               /* Address. */
-               (void) inet_ntop(AF_INET, rdata, buf, buflen);
-               addlen(strlen(buf), &buf, &buflen);
-               rdata += NS_INADDRSZ;
-
-               /* Protocol. */
-               len = SPRINTF((tmp, " %u ( ", *rdata));
-               T(addstr(tmp, len, &buf, &buflen));
-               rdata += NS_INT8SZ;
-
-               /* Bit map. */
-               n = 0;
-               lcnt = 0;
-               while (rdata < edata) {
-                       u_int c = *rdata++;
-                       do {
-                               if (c & 0200) {
-                                       if (lcnt == 0) {
-                                               T(addstr("\n\t\t\t\t", 5,
-                                                        &buf, &buflen));
-                                               lcnt = 10;
-                                               spaced = 0;
-                                       }
-                                       len = SPRINTF((tmp, "%d ", n));
-                                       T(addstr(tmp, len, &buf, &buflen));
-                                       lcnt--;
-                               }
-                               c <<= 1;
-                       } while (++n & 07);
-               }
-               T(addstr(")", 1, &buf, &buflen));
-
-               break;
-           }
-
-       case ns_t_key: {
-               char base64_key[NS_MD5RSA_MAX_BASE64];
-               u_int keyflags, protocol, algorithm, key_id;
-               const char *leader;
-               int n;
-
-               if (rdlen < 0U + NS_INT16SZ + NS_INT8SZ + NS_INT8SZ)
-                       goto formerr;
-
-               /* Key flags, Protocol, Algorithm. */
-               key_id = dst_s_dns_key_id(rdata, edata-rdata);
-               keyflags = ns_get16(rdata);  rdata += NS_INT16SZ;
-               protocol = *rdata++;
-               algorithm = *rdata++;
-               len = SPRINTF((tmp, "0x%04x %u %u",
-                              keyflags, protocol, algorithm));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Public key data. */
-               len = b64_ntop(rdata, edata - rdata,
-                              base64_key, sizeof base64_key);
-               if (len < 0)
-                       goto formerr;
-               if (len > 15) {
-                       T(addstr(" (", 2, &buf, &buflen));
-                       leader = "\n\t\t";
-                       spaced = 0;
-               } else
-                       leader = " ";
-               for (n = 0; n < len; n += 48) {
-                       T(addstr(leader, strlen(leader), &buf, &buflen));
-                       T(addstr(base64_key + n, MIN(len - n, 48),
-                                &buf, &buflen));
-               }
-               if (len > 15)
-                       T(addstr(" )", 2, &buf, &buflen));
-               n = SPRINTF((tmp, " ; key_tag= %u", key_id));
-               T(addstr(tmp, n, &buf, &buflen));
-
-               break;
-           }
-
-       case ns_t_sig: {
-               char base64_key[NS_MD5RSA_MAX_BASE64];
-               u_int type, algorithm, labels, footprint;
-               const char *leader;
-               u_long t;
-               int n;
-
-               if (rdlen < 22U)
-                       goto formerr;
-
-               /* Type covered, Algorithm, Label count, Original TTL. */
-               type = ns_get16(rdata);  rdata += NS_INT16SZ;
-               algorithm = *rdata++;
-               labels = *rdata++;
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               len = SPRINTF((tmp, "%s %d %d %lu ",
-                              p_type(type), algorithm, labels, t));
-               T(addstr(tmp, len, &buf, &buflen));
-               if (labels > (u_int)dn_count_labels(name))
-                       goto formerr;
-
-               /* Signature expiry. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               len = SPRINTF((tmp, "%s ", p_secstodate(t)));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Time signed. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               len = SPRINTF((tmp, "%s ", p_secstodate(t)));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Signature Footprint. */
-               footprint = ns_get16(rdata);  rdata += NS_INT16SZ;
-               len = SPRINTF((tmp, "%u ", footprint));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Signer's name. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-
-               /* Signature. */
-               len = b64_ntop(rdata, edata - rdata,
-                              base64_key, sizeof base64_key);
-               if (len > 15) {
-                       T(addstr(" (", 2, &buf, &buflen));
-                       leader = "\n\t\t";
-                       spaced = 0;
-               } else
-                       leader = " ";
-               if (len < 0)
-                       goto formerr;
-               for (n = 0; n < len; n += 48) {
-                       T(addstr(leader, strlen(leader), &buf, &buflen));
-                       T(addstr(base64_key + n, MIN(len - n, 48),
-                                &buf, &buflen));
-               }
-               if (len > 15)
-                       T(addstr(" )", 2, &buf, &buflen));
-               break;
-           }
-
-       case ns_t_nxt: {
-               int n, c;
-
-               /* Next domain name. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-
-               /* Type bit map. */
-               n = edata - rdata;
-               for (c = 0; c < n*8; c++)
-                       if (NS_NXT_BIT_ISSET(c, rdata)) {
-                               len = SPRINTF((tmp, " %s", p_type(c)));
-                               T(addstr(tmp, len, &buf, &buflen));
-                       }
-               break;
-           }
-
-       case ns_t_cert: {
-               u_int c_type, key_tag, alg;
-               int n;
-               unsigned int siz;
-               char base64_cert[8192], tmp[40];
-               const char *leader;
-
-               c_type  = ns_get16(rdata); rdata += NS_INT16SZ;
-               key_tag = ns_get16(rdata); rdata += NS_INT16SZ;
-               alg = (u_int) *rdata++;
-
-               len = SPRINTF((tmp, "%d %d %d ", c_type, key_tag, alg));
-               T(addstr(tmp, len, &buf, &buflen));
-               siz = (edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */
-               if (siz > sizeof(base64_cert) * 3/4) {
-                       const char *str = "record too long to print";
-                       T(addstr(str, strlen(str), &buf, &buflen));
-               }
-               else {
-                       len = b64_ntop(rdata, edata-rdata, base64_cert, siz);
-
-                       if (len < 0)
-                               goto formerr;
-                       else if (len > 15) {
-                               T(addstr(" (", 2, &buf, &buflen));
-                               leader = "\n\t\t";
-                               spaced = 0;
-                       }
-                       else
-                               leader = " ";
-       
-                       for (n = 0; n < len; n += 48) {
-                               T(addstr(leader, strlen(leader),
-                                        &buf, &buflen));
-                               T(addstr(base64_cert + n, MIN(len - n, 48),
-                                        &buf, &buflen));
-                       }
-                       if (len > 15)
-                               T(addstr(" )", 2, &buf, &buflen));
-               }
-               break;
-           }
-
-       case ns_t_tkey: {
-               /* KJD - need to complete this */
-               u_long t;
-               int mode, err, keysize;
-
-               /* Algorithm name. */
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" ", 1, &buf, &buflen));
-
-               /* Inception. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               len = SPRINTF((tmp, "%s ", p_secstodate(t)));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Experation. */
-               t = ns_get32(rdata);  rdata += NS_INT32SZ;
-               len = SPRINTF((tmp, "%s ", p_secstodate(t)));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* Mode , Error, Key Size. */
-               /* Priority, Weight, Port. */
-               mode = ns_get16(rdata);  rdata += NS_INT16SZ;
-               err  = ns_get16(rdata);  rdata += NS_INT16SZ;
-               keysize  = ns_get16(rdata);  rdata += NS_INT16SZ;
-               len = SPRINTF((tmp, "%u %u %u ", mode, err, keysize));
-               T(addstr(tmp, len, &buf, &buflen));
-
-               /* XXX need to dump key, print otherdata length & other data */
-               break;
-           }
-
-       case ns_t_tsig: {
-               /* BEW - need to complete this */
-               int n;
-
-               T(len = addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               T(addstr(" ", 1, &buf, &buflen));
-               rdata += 8; /*%< time */
-               n = ns_get16(rdata); rdata += INT16SZ;
-               rdata += n; /*%< sig */
-               n = ns_get16(rdata); rdata += INT16SZ; /*%< original id */
-               sprintf(buf, "%d", ns_get16(rdata));
-               rdata += INT16SZ;
-               addlen(strlen(buf), &buf, &buflen);
-               break;
-           }
-
-       case ns_t_a6: {
-               struct in6_addr a;
-               int pbyte, pbit;
-
-               /* prefix length */
-               if (rdlen == 0U) goto formerr;
-               len = SPRINTF((tmp, "%d ", *rdata));
-               T(addstr(tmp, len, &buf, &buflen));
-               pbit = *rdata;
-               if (pbit > 128) goto formerr;
-               pbyte = (pbit & ~7) / 8;
-               rdata++;
-
-               /* address suffix: provided only when prefix len != 128 */
-               if (pbit < 128) {
-                       if (rdata + pbyte >= edata) goto formerr;
-                       memset(&a, 0, sizeof(a));
-                       memcpy(&a.s6_addr[pbyte], rdata, sizeof(a) - pbyte);
-                       (void) inet_ntop(AF_INET6, &a, buf, buflen);
-                       addlen(strlen(buf), &buf, &buflen);
-                       rdata += sizeof(a) - pbyte;
-               }
-
-               /* prefix name: provided only when prefix len > 0 */
-               if (pbit == 0)
-                       break;
-               if (rdata >= edata) goto formerr;
-               T(addstr(" ", 1, &buf, &buflen));
-               T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
-               
-               break;
-           }
-
-       case ns_t_opt: {
-               len = SPRINTF((tmp, "%u bytes", class));
-               T(addstr(tmp, len, &buf, &buflen));
-               break;
-           }
-
-       default:
-               comment = "unknown RR type";
-               goto hexify;
-       }
-       return (buf - obuf);
- formerr:
-       comment = "RR format error";
- hexify: {
-       int n, m;
-       char *p;
-
-       len = SPRINTF((tmp, "\\# %u%s\t; %s", (unsigned)(edata - rdata),
-                      rdlen != 0U ? " (" : "", comment));
-       T(addstr(tmp, len, &buf, &buflen));
-       while (rdata < edata) {
-               p = tmp;
-               p += SPRINTF((p, "\n\t"));
-               spaced = 0;
-               n = MIN(16, edata - rdata);
-               for (m = 0; m < n; m++)
-                       p += SPRINTF((p, "%02x ", rdata[m]));
-               T(addstr(tmp, p - tmp, &buf, &buflen));
-               if (n < 16) {
-                       T(addstr(")", 1, &buf, &buflen));
-                       T(addtab(p - tmp + 1, 48, spaced, &buf, &buflen));
-               }
-               p = tmp;
-               p += SPRINTF((p, "; "));
-               for (m = 0; m < n; m++)
-                       *p++ = (isascii(rdata[m]) && isprint(rdata[m]))
-                               ? rdata[m]
-                               : '.';
-               T(addstr(tmp, p - tmp, &buf, &buflen));
-               rdata += n;
-       }
-       return (buf - obuf);
-    }
-}
-
-/* Private. */
-
-/*%
- * size_t
- * prune_origin(name, origin)
- *     Find out if the name is at or under the current origin.
- * return:
- *     Number of characters in name before start of origin,
- *     or length of name if origin does not match.
- * notes:
- *     This function should share code with samedomain().
- */
-static size_t
-prune_origin(const char *name, const char *origin) {
-       const char *oname = name;
-
-       while (*name != '\0') {
-               if (origin != NULL && ns_samename(name, origin) == 1)
-                       return (name - oname - (name > oname));
-               while (*name != '\0') {
-                       if (*name == '\\') {
-                               name++;
-                               /* XXX need to handle \nnn form. */
-                               if (*name == '\0')
-                                       break;
-                       } else if (*name == '.') {
-                               name++;
-                               break;
-                       }
-                       name++;
-               }
-       }
-       return (name - oname);
-}
-
-/*%
- * int
- * charstr(rdata, edata, buf, buflen)
- *     Format a <character-string> into the presentation buffer.
- * return:
- *     Number of rdata octets consumed
- *     0 for protocol format error
- *     -1 for output buffer error
- * side effects:
- *     buffer is advanced on success.
- */
-static int
-charstr(const u_char *rdata, const u_char *edata, char **buf, size_t *buflen) {
-       const u_char *odata = rdata;
-       size_t save_buflen = *buflen;
-       char *save_buf = *buf;
-
-       if (addstr("\"", 1, buf, buflen) < 0)
-               goto enospc;
-       if (rdata < edata) {
-               int n = *rdata;
-
-               if (rdata + 1 + n <= edata) {
-                       rdata++;
-                       while (n-- > 0) {
-                               if (strchr("\n\"\\", *rdata) != NULL)
-                                       if (addstr("\\", 1, buf, buflen) < 0)
-                                               goto enospc;
-                               if (addstr((const char *)rdata, 1,
-                                          buf, buflen) < 0)
-                                       goto enospc;
-                               rdata++;
-                       }
-               }
-       }
-       if (addstr("\"", 1, buf, buflen) < 0)
-               goto enospc;
-       return (rdata - odata);
- enospc:
-       errno = ENOSPC;
-       *buf = save_buf;
-       *buflen = save_buflen;
-       return (-1);
-}
-
-static int
-addname(const u_char *msg, size_t msglen,
-       const u_char **pp, const char *origin,
-       char **buf, size_t *buflen)
-{
-       size_t newlen, save_buflen = *buflen;
-       char *save_buf = *buf;
-       int n;
-
-       n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen);
-       if (n < 0)
-               goto enospc;    /*%< Guess. */
-       newlen = prune_origin(*buf, origin);
-       if (**buf == '\0') {
-               goto root;
-       } else if (newlen == 0U) {
-               /* Use "@" instead of name. */
-               if (newlen + 2 > *buflen)
-                       goto enospc;        /* No room for "@\0". */
-               (*buf)[newlen++] = '@';
-               (*buf)[newlen] = '\0';
-       } else {
-               if (((origin == NULL || origin[0] == '\0') ||
-                   (origin[0] != '.' && origin[1] != '\0' &&
-                   (*buf)[newlen] == '\0')) && (*buf)[newlen - 1] != '.') {
-                       /* No trailing dot. */
- root:
-                       if (newlen + 2 > *buflen)
-                               goto enospc;    /* No room for ".\0". */
-                       (*buf)[newlen++] = '.';
-                       (*buf)[newlen] = '\0';
-               }
-       }
-       *pp += n;
-       addlen(newlen, buf, buflen);
-       **buf = '\0';
-       return (newlen);
- enospc:
-       errno = ENOSPC;
-       *buf = save_buf;
-       *buflen = save_buflen;
-       return (-1);
-}
-
-static void
-addlen(size_t len, char **buf, size_t *buflen) {
-       INSIST(len <= *buflen);
-       *buf += len;
-       *buflen -= len;
-}
-
-static int
-addstr(const char *src, size_t len, char **buf, size_t *buflen) {
-       if (len >= *buflen) {
-               errno = ENOSPC;
-               return (-1);
-       }
-       memcpy(*buf, src, len);
-       addlen(len, buf, buflen);
-       **buf = '\0';
-       return (0);
-}
-
-static int
-addtab(size_t len, size_t target, int spaced, char **buf, size_t *buflen) {
-       size_t save_buflen = *buflen;
-       char *save_buf = *buf;
-       int t;
-
-       if (spaced || len >= target - 1) {
-               T(addstr("  ", 2, buf, buflen));
-               spaced = 1;
-       } else {
-               for (t = (target - len - 1) / 8; t >= 0; t--)
-                       if (addstr("\t", 1, buf, buflen) < 0) {
-                               *buflen = save_buflen;
-                               *buf = save_buf;
-                               return (-1);
-                       }
-               spaced = 0;
-       }
-       return (spaced);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_samedomain.c b/lib/bind/nameser/ns_samedomain.c
deleted file mode 100644 (file)
index 5e9f5ca..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_samedomain.c,v 1.6 2005/04/27 04:56:40 sra Exp $";
-#endif
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <arpa/nameser.h>
-#include <errno.h>
-#include <string.h>
-
-#include "port_after.h"
-
-/*%
- *     Check whether a name belongs to a domain.
- *
- * Inputs:
- *\li  a - the domain whose ancestory is being verified
- *\li  b - the potential ancestor we're checking against
- *
- * Return:
- *\li  boolean - is a at or below b?
- *
- * Notes:
- *\li  Trailing dots are first removed from name and domain.
- *     Always compare complete subdomains, not only whether the
- *     domain name is the trailing string of the given name.
- *
- *\li  "host.foobar.top" lies in "foobar.top" and in "top" and in ""
- *     but NOT in "bar.top"
- */
-
-int
-ns_samedomain(const char *a, const char *b) {
-       size_t la, lb;
-       int diff, i, escaped;
-       const char *cp;
-
-       la = strlen(a);
-       lb = strlen(b);
-
-       /* Ignore a trailing label separator (i.e. an unescaped dot) in 'a'. */
-       if (la != 0U && a[la - 1] == '.') {
-               escaped = 0;
-               /* Note this loop doesn't get executed if la==1. */
-               for (i = la - 2; i >= 0; i--)
-                       if (a[i] == '\\') {
-                               if (escaped)
-                                       escaped = 0;
-                               else
-                                       escaped = 1;
-                       } else
-                               break;
-               if (!escaped)
-                       la--;
-       }
-
-       /* Ignore a trailing label separator (i.e. an unescaped dot) in 'b'. */
-       if (lb != 0U && b[lb - 1] == '.') {
-               escaped = 0;
-               /* note this loop doesn't get executed if lb==1 */
-               for (i = lb - 2; i >= 0; i--)
-                       if (b[i] == '\\') {
-                               if (escaped)
-                                       escaped = 0;
-                               else
-                                       escaped = 1;
-                       } else
-                               break;
-               if (!escaped)
-                       lb--;
-       }
-
-       /* lb == 0 means 'b' is the root domain, so 'a' must be in 'b'. */
-       if (lb == 0U)
-               return (1);
-
-       /* 'b' longer than 'a' means 'a' can't be in 'b'. */
-       if (lb > la)
-               return (0);
-
-       /* 'a' and 'b' being equal at this point indicates sameness. */
-       if (lb == la)
-               return (strncasecmp(a, b, lb) == 0);
-
-       /* Ok, we know la > lb. */
-
-       diff = la - lb;
-
-       /*
-        * If 'a' is only 1 character longer than 'b', then it can't be
-        * a subdomain of 'b' (because of the need for the '.' label
-        * separator).
-        */
-       if (diff < 2)
-               return (0);
-
-       /*
-        * If the character before the last 'lb' characters of 'b'
-        * isn't '.', then it can't be a match (this lets us avoid
-        * having "foobar.com" match "bar.com").
-        */
-       if (a[diff - 1] != '.')
-               return (0);
-
-       /*
-        * We're not sure about that '.', however.  It could be escaped
-         * and thus not a really a label separator.
-        */
-       escaped = 0;
-       for (i = diff - 2; i >= 0; i--)
-               if (a[i] == '\\') {
-                       if (escaped)
-                               escaped = 0;
-                       else
-                               escaped = 1;
-               } else
-                       break;
-       if (escaped)
-               return (0);
-         
-       /* Now compare aligned trailing substring. */
-       cp = a + diff;
-       return (strncasecmp(cp, b, lb) == 0);
-}
-
-/*%
- *     is "a" a subdomain of "b"?
- */
-int
-ns_subdomain(const char *a, const char *b) {
-       return (ns_samename(a, b) != 1 && ns_samedomain(a, b));
-}
-
-/*%
- *     make a canonical copy of domain name "src"
- *
- * notes:
- * \code
- *     foo -> foo.
- *     foo. -> foo.
- *     foo.. -> foo.
- *     foo\. -> foo\..
- *     foo\\. -> foo\\.
- * \endcode
- */
-
-int
-ns_makecanon(const char *src, char *dst, size_t dstsize) {
-       size_t n = strlen(src);
-
-       if (n + sizeof "." > dstsize) {                 /*%< Note: sizeof == 2 */
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       strcpy(dst, src);
-       while (n >= 1U && dst[n - 1] == '.')            /*%< Ends in "." */
-               if (n >= 2U && dst[n - 2] == '\\' &&    /*%< Ends in "\." */
-                   (n < 3U || dst[n - 3] != '\\'))     /*%< But not "\\." */
-                       break;
-               else
-                       dst[--n] = '\0';
-       dst[n++] = '.';
-       dst[n] = '\0';
-       return (0);
-}
-
-/*%
- *     determine whether domain name "a" is the same as domain name "b"
- *
- * return:
- *\li  -1 on error
- *\li  0 if names differ
- *\li  1 if names are the same
- */
-
-int
-ns_samename(const char *a, const char *b) {
-       char ta[NS_MAXDNAME], tb[NS_MAXDNAME];
-
-       if (ns_makecanon(a, ta, sizeof ta) < 0 ||
-           ns_makecanon(b, tb, sizeof tb) < 0)
-               return (-1);
-       if (strcasecmp(ta, tb) == 0)
-               return (1);
-       else
-               return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_sign.c b/lib/bind/nameser/ns_sign.c
deleted file mode 100644 (file)
index 5748a09..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by Internet Software Consortium, Inc.
- *
- * 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_sign.c,v 1.6 2006/03/09 23:57:56 marka Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <isc/dst.h>
-#include <isc/assertions.h>
-
-#include "port_after.h"
-
-#define BOUNDS_CHECK(ptr, count) \
-       do { \
-               if ((ptr) + (count) > eob) { \
-                       errno = EMSGSIZE; \
-                       return(NS_TSIG_ERROR_NO_SPACE); \
-               } \
-       } while (0)
-
-/*%
- *  ns_sign
- *
- * Parameters:
- *\li  msg             message to be sent
- *\li  msglen          input - length of message
- *                     output - length of signed message
- *\li  msgsize         length of buffer containing message
- *\li  error           value to put in the error field
- *\li  key             tsig key used for signing
- *\li  querysig        (response), the signature in the query
- *\li  querysiglen     (response), the length of the signature in the query
- *\li  sig             a buffer to hold the generated signature
- *\li  siglen          input - length of signature buffer
- *                     output - length of signature
- *
- * Errors:
- *\li  - bad input data (-1)
- *\li  - bad key / sign failed (-BADKEY)
- *\li  - not enough space (NS_TSIG_ERROR_NO_SPACE)
- */
-int
-ns_sign(u_char *msg, int *msglen, int msgsize, int error, void *k,
-       const u_char *querysig, int querysiglen, u_char *sig, int *siglen,
-       time_t in_timesigned)
-{
-       return(ns_sign2(msg, msglen, msgsize, error, k,
-                       querysig, querysiglen, sig, siglen,
-                       in_timesigned, NULL, NULL));
-}
-
-int
-ns_sign2(u_char *msg, int *msglen, int msgsize, int error, void *k,
-        const u_char *querysig, int querysiglen, u_char *sig, int *siglen,
-        time_t in_timesigned, u_char **dnptrs, u_char **lastdnptr)
-{
-       HEADER *hp = (HEADER *)msg;
-       DST_KEY *key = (DST_KEY *)k;
-       u_char *cp, *eob;
-       u_char *lenp;
-       u_char *alg;
-       int n;
-       time_t timesigned;
-        u_char name[NS_MAXCDNAME];
-
-       dst_init();
-       if (msg == NULL || msglen == NULL || sig == NULL || siglen == NULL)
-               return (-1);
-
-       cp = msg + *msglen;
-       eob = msg + msgsize;
-
-       /* Name. */
-       if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) {
-               n = ns_name_pton(key->dk_key_name, name, sizeof name);
-               if (n != -1)
-                       n = ns_name_pack(name, cp, eob - cp,
-                                        (const u_char **)dnptrs,
-                                        (const u_char **)lastdnptr);
-
-       } else {
-               n = ns_name_pton("", name, sizeof name);
-               if (n != -1)
-                       n = ns_name_pack(name, cp, eob - cp, NULL, NULL);
-       }
-       if (n < 0)
-               return (NS_TSIG_ERROR_NO_SPACE);
-       cp += n;
-
-       /* Type, class, ttl, length (not filled in yet). */
-       BOUNDS_CHECK(cp, INT16SZ + INT16SZ + INT32SZ + INT16SZ);
-       PUTSHORT(ns_t_tsig, cp);
-       PUTSHORT(ns_c_any, cp);
-       PUTLONG(0, cp);         /*%< TTL */
-       lenp = cp;
-       cp += 2;
-
-       /* Alg. */
-       if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) {
-               if (key->dk_alg != KEY_HMAC_MD5)
-                       return (-ns_r_badkey);
-               n = dn_comp(NS_TSIG_ALG_HMAC_MD5, cp, eob - cp, NULL, NULL);
-       }
-       else
-               n = dn_comp("", cp, eob - cp, NULL, NULL);
-       if (n < 0)
-               return (NS_TSIG_ERROR_NO_SPACE);
-       alg = cp;
-       cp += n;
-       
-       /* Time. */
-       BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ);
-       PUTSHORT(0, cp);
-       timesigned = time(NULL);
-       if (error != ns_r_badtime)
-               PUTLONG(timesigned, cp);
-       else
-               PUTLONG(in_timesigned, cp);
-       PUTSHORT(NS_TSIG_FUDGE, cp);
-
-       /* Compute the signature. */
-       if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) {
-               void *ctx;
-               u_char buf[NS_MAXCDNAME], *cp2;
-               int n;
-
-               dst_sign_data(SIG_MODE_INIT, key, &ctx, NULL, 0, NULL, 0);
-
-               /* Digest the query signature, if this is a response. */
-               if (querysiglen > 0 && querysig != NULL) {
-                       u_int16_t len_n = htons(querysiglen);
-                       dst_sign_data(SIG_MODE_UPDATE, key, &ctx,
-                                     (u_char *)&len_n, INT16SZ, NULL, 0);
-                       dst_sign_data(SIG_MODE_UPDATE, key, &ctx,
-                                     querysig, querysiglen, NULL, 0);
-               }
-
-               /* Digest the message. */
-               dst_sign_data(SIG_MODE_UPDATE, key, &ctx, msg, *msglen,
-                             NULL, 0);
-
-               /* Digest the key name. */
-               n = ns_name_ntol(name, buf, sizeof(buf));
-               INSIST(n > 0);
-               dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0);
-
-               /* Digest the class and TTL. */
-               cp2 = buf;
-               PUTSHORT(ns_c_any, cp2);
-               PUTLONG(0, cp2);
-               dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, cp2-buf,
-                             NULL, 0);
-
-               /* Digest the algorithm. */
-               n = ns_name_ntol(alg, buf, sizeof(buf));
-               INSIST(n > 0);
-               dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0);
-
-               /* Digest the time signed, fudge, error, and other data */
-               cp2 = buf;
-               PUTSHORT(0, cp2);       /*%< Top 16 bits of time */
-               if (error != ns_r_badtime)
-                       PUTLONG(timesigned, cp2);
-               else
-                       PUTLONG(in_timesigned, cp2);
-               PUTSHORT(NS_TSIG_FUDGE, cp2);
-               PUTSHORT(error, cp2);   /*%< Error */
-               if (error != ns_r_badtime)
-                       PUTSHORT(0, cp2);       /*%< Other data length */
-               else {
-                       PUTSHORT(INT16SZ+INT32SZ, cp2); /*%< Other data length */
-                       PUTSHORT(0, cp2);       /*%< Top 16 bits of time */
-                       PUTLONG(timesigned, cp2);
-               }
-               dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, cp2-buf,
-                             NULL, 0);
-
-               n = dst_sign_data(SIG_MODE_FINAL, key, &ctx, NULL, 0,
-                                 sig, *siglen);
-               if (n < 0)
-                       return (-ns_r_badkey);
-               *siglen = n;
-       } else
-               *siglen = 0;
-
-       /* Add the signature. */
-       BOUNDS_CHECK(cp, INT16SZ + (*siglen));
-       PUTSHORT(*siglen, cp);
-       memcpy(cp, sig, *siglen);
-       cp += (*siglen);
-
-       /* The original message ID & error. */
-       BOUNDS_CHECK(cp, INT16SZ + INT16SZ);
-       PUTSHORT(ntohs(hp->id), cp);    /*%< already in network order */
-       PUTSHORT(error, cp);
-
-       /* Other data. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       if (error != ns_r_badtime)
-               PUTSHORT(0, cp);        /*%< Other data length */
-       else {
-               PUTSHORT(INT16SZ+INT32SZ, cp);  /*%< Other data length */
-               BOUNDS_CHECK(cp, INT32SZ+INT16SZ);
-               PUTSHORT(0, cp);        /*%< Top 16 bits of time */
-               PUTLONG(timesigned, cp);
-       }
-
-       /* Go back and fill in the length. */
-       PUTSHORT(cp - lenp - INT16SZ, lenp);
-
-       hp->arcount = htons(ntohs(hp->arcount) + 1);
-       *msglen = (cp - msg);
-       return (0);
-}
-
-int
-ns_sign_tcp_init(void *k, const u_char *querysig, int querysiglen,
-                ns_tcp_tsig_state *state)
-{
-       dst_init();
-       if (state == NULL || k == NULL || querysig == NULL || querysiglen < 0)
-               return (-1);
-       state->counter = -1;
-       state->key = k;
-       if (state->key->dk_alg != KEY_HMAC_MD5)
-               return (-ns_r_badkey);
-       if (querysiglen > (int)sizeof(state->sig))
-               return (-1);
-       memcpy(state->sig, querysig, querysiglen);
-       state->siglen = querysiglen;
-       return (0);
-}
-
-int
-ns_sign_tcp(u_char *msg, int *msglen, int msgsize, int error,
-           ns_tcp_tsig_state *state, int done)
-{
-       return (ns_sign_tcp2(msg, msglen, msgsize, error, state,
-                            done, NULL, NULL));
-}
-
-int
-ns_sign_tcp2(u_char *msg, int *msglen, int msgsize, int error,
-            ns_tcp_tsig_state *state, int done,
-            u_char **dnptrs, u_char **lastdnptr)
-{
-       u_char *cp, *eob, *lenp;
-       u_char buf[MAXDNAME], *cp2;
-       HEADER *hp = (HEADER *)msg;
-       time_t timesigned;
-       int n;
-
-       if (msg == NULL || msglen == NULL || state == NULL)
-               return (-1);
-
-       state->counter++;
-       if (state->counter == 0)
-               return (ns_sign2(msg, msglen, msgsize, error, state->key,
-                                state->sig, state->siglen,
-                                state->sig, &state->siglen, 0,
-                                dnptrs, lastdnptr));
-
-       if (state->siglen > 0) {
-               u_int16_t siglen_n = htons(state->siglen);
-               dst_sign_data(SIG_MODE_INIT, state->key, &state->ctx,
-                             NULL, 0, NULL, 0);
-               dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                             (u_char *)&siglen_n, INT16SZ, NULL, 0);
-               dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                             state->sig, state->siglen, NULL, 0);
-               state->siglen = 0;
-       }
-
-       dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx, msg, *msglen,
-                     NULL, 0);
-
-       if (done == 0 && (state->counter % 100 != 0))
-               return (0);
-
-       cp = msg + *msglen;
-       eob = msg + msgsize;
-
-       /* Name. */
-       n = dn_comp(state->key->dk_key_name, cp, eob - cp, dnptrs, lastdnptr);
-       if (n < 0)
-               return (NS_TSIG_ERROR_NO_SPACE);
-       cp += n;
-
-       /* Type, class, ttl, length (not filled in yet). */
-       BOUNDS_CHECK(cp, INT16SZ + INT16SZ + INT32SZ + INT16SZ);
-       PUTSHORT(ns_t_tsig, cp);
-       PUTSHORT(ns_c_any, cp);
-       PUTLONG(0, cp);         /*%< TTL */
-       lenp = cp;
-       cp += 2;
-
-       /* Alg. */
-       n = dn_comp(NS_TSIG_ALG_HMAC_MD5, cp, eob - cp, NULL, NULL);
-       if (n < 0)
-               return (NS_TSIG_ERROR_NO_SPACE);
-       cp += n;
-       
-       /* Time. */
-       BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ);
-       PUTSHORT(0, cp);
-       timesigned = time(NULL);
-       PUTLONG(timesigned, cp);
-       PUTSHORT(NS_TSIG_FUDGE, cp);
-
-       /*
-        * Compute the signature.
-        */
-
-       /* Digest the time signed and fudge. */
-       cp2 = buf;
-       PUTSHORT(0, cp2);       /*%< Top 16 bits of time */
-       PUTLONG(timesigned, cp2);
-       PUTSHORT(NS_TSIG_FUDGE, cp2);
-
-       dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                     buf, cp2 - buf, NULL, 0);
-
-       n = dst_sign_data(SIG_MODE_FINAL, state->key, &state->ctx, NULL, 0,
-                         state->sig, sizeof(state->sig));
-       if (n < 0)
-               return (-ns_r_badkey);
-       state->siglen = n;
-
-       /* Add the signature. */
-       BOUNDS_CHECK(cp, INT16SZ + state->siglen);
-       PUTSHORT(state->siglen, cp);
-       memcpy(cp, state->sig, state->siglen);
-       cp += state->siglen;
-
-       /* The original message ID & error. */
-       BOUNDS_CHECK(cp, INT16SZ + INT16SZ);
-       PUTSHORT(ntohs(hp->id), cp);    /*%< already in network order */
-       PUTSHORT(error, cp);
-
-       /* Other data. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       PUTSHORT(0, cp);
-
-       /* Go back and fill in the length. */
-       PUTSHORT(cp - lenp - INT16SZ, lenp);
-
-       hp->arcount = htons(ntohs(hp->arcount) + 1);
-       *msglen = (cp - msg);
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_ttl.c b/lib/bind/nameser/ns_ttl.c
deleted file mode 100644 (file)
index 69c2f83..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_ttl.c,v 1.4 2005/07/28 06:51:49 marka Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) ((size_t)sprintf x)
-#endif
-
-/* Forward. */
-
-static int     fmt1(int t, char s, char **buf, size_t *buflen);
-
-/* Macros. */
-
-#define T(x) if ((x) < 0) return (-1); else (void)NULL
-
-/* Public. */
-
-int
-ns_format_ttl(u_long src, char *dst, size_t dstlen) {
-       char *odst = dst;
-       int secs, mins, hours, days, weeks, x;
-       char *p;
-
-       secs = src % 60;   src /= 60;
-       mins = src % 60;   src /= 60;
-       hours = src % 24;  src /= 24;
-       days = src % 7;    src /= 7;
-       weeks = src;       src = 0;
-
-       x = 0;
-       if (weeks) {
-               T(fmt1(weeks, 'W', &dst, &dstlen));
-               x++;
-       }
-       if (days) {
-               T(fmt1(days, 'D', &dst, &dstlen));
-               x++;
-       }
-       if (hours) {
-               T(fmt1(hours, 'H', &dst, &dstlen));
-               x++;
-       }
-       if (mins) {
-               T(fmt1(mins, 'M', &dst, &dstlen));
-               x++;
-       }
-       if (secs || !(weeks || days || hours || mins)) {
-               T(fmt1(secs, 'S', &dst, &dstlen));
-               x++;
-       }
-
-       if (x > 1) {
-               int ch;
-
-               for (p = odst; (ch = *p) != '\0'; p++)
-                       if (isascii(ch) && isupper(ch))
-                               *p = tolower(ch);
-       }
-
-       return (dst - odst);
-}
-
-int
-ns_parse_ttl(const char *src, u_long *dst) {
-       u_long ttl, tmp;
-       int ch, digits, dirty;
-
-       ttl = 0;
-       tmp = 0;
-       digits = 0;
-       dirty = 0;
-       while ((ch = *src++) != '\0') {
-               if (!isascii(ch) || !isprint(ch))
-                       goto einval;
-               if (isdigit(ch)) {
-                       tmp *= 10;
-                       tmp += (ch - '0');
-                       digits++;
-                       continue;
-               }
-               if (digits == 0)
-                       goto einval;
-               if (islower(ch))
-                       ch = toupper(ch);
-               switch (ch) {
-               case 'W':  tmp *= 7;
-               case 'D':  tmp *= 24;
-               case 'H':  tmp *= 60;
-               case 'M':  tmp *= 60;
-               case 'S':  break;
-               default:   goto einval;
-               }
-               ttl += tmp;
-               tmp = 0;
-               digits = 0;
-               dirty = 1;
-       }
-       if (digits > 0) {
-               if (dirty)
-                       goto einval;
-               else
-                       ttl += tmp;
-       } else if (!dirty)
-               goto einval;
-       *dst = ttl;
-       return (0);
-
- einval:
-       errno = EINVAL;
-       return (-1);
-}
-
-/* Private. */
-
-static int
-fmt1(int t, char s, char **buf, size_t *buflen) {
-       char tmp[50];
-       size_t len;
-
-       len = SPRINTF((tmp, "%d%c", t, s));
-       if (len + 1 > *buflen)
-               return (-1);
-       strcpy(*buf, tmp);
-       *buf += len;
-       *buflen -= len;
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/nameser/ns_verify.c b/lib/bind/nameser/ns_verify.c
deleted file mode 100644 (file)
index 97c012d..0000000
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by Internet Software Consortium, Inc.
- *
- * 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 lint
-static const char rcsid[] = "$Id: ns_verify.c,v 1.5 2006/03/09 23:57:56 marka Exp $";
-#endif
-
-/* Import. */
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <isc/dst.h>
-
-#include "port_after.h"
-
-/* Private. */
-
-#define BOUNDS_CHECK(ptr, count) \
-       do { \
-               if ((ptr) + (count) > eom) { \
-                       return (NS_TSIG_ERROR_FORMERR); \
-               } \
-       } while (0)
-
-/* Public. */
-
-u_char *
-ns_find_tsig(u_char *msg, u_char *eom) {
-       HEADER *hp = (HEADER *)msg;
-       int n, type;
-       u_char *cp = msg, *start;
-
-       if (msg == NULL || eom == NULL || msg > eom)
-               return (NULL);
-
-       if (cp + HFIXEDSZ >= eom)
-               return (NULL);
-
-       if (hp->arcount == 0)
-               return (NULL);
-
-       cp += HFIXEDSZ;
-
-       n = ns_skiprr(cp, eom, ns_s_qd, ntohs(hp->qdcount));
-       if (n < 0)
-               return (NULL);
-       cp += n;
-
-       n = ns_skiprr(cp, eom, ns_s_an, ntohs(hp->ancount));
-       if (n < 0)
-               return (NULL);
-       cp += n;
-
-       n = ns_skiprr(cp, eom, ns_s_ns, ntohs(hp->nscount));
-       if (n < 0)
-               return (NULL);
-       cp += n;
-
-       n = ns_skiprr(cp, eom, ns_s_ar, ntohs(hp->arcount) - 1);
-       if (n < 0)
-               return (NULL);
-       cp += n;
-
-       start = cp;
-       n = dn_skipname(cp, eom);
-       if (n < 0)
-               return (NULL);
-       cp += n;
-       if (cp + INT16SZ >= eom)
-               return (NULL);
-
-       GETSHORT(type, cp);
-       if (type != ns_t_tsig)
-               return (NULL);
-       return (start);
-}
-
-/* ns_verify
- *
- * Parameters:
- *\li  statp           res stuff
- *\li  msg             received message
- *\li  msglen          length of message
- *\li  key             tsig key used for verifying.
- *\li  querysig        (response), the signature in the query
- *\li  querysiglen     (response), the length of the signature in the query
- *\li  sig             (query), a buffer to hold the signature
- *\li  siglen          (query), input - length of signature buffer
- *                              output - length of signature
- *
- * Errors:
- *\li  - bad input (-1)
- *\li  - invalid dns message (NS_TSIG_ERROR_FORMERR)
- *\li  - TSIG is not present (NS_TSIG_ERROR_NO_TSIG)
- *\li  - key doesn't match (-ns_r_badkey)
- *\li  - TSIG verification fails with BADKEY (-ns_r_badkey)
- *\li  - TSIG verification fails with BADSIG (-ns_r_badsig)
- *\li  - TSIG verification fails with BADTIME (-ns_r_badtime)
- *\li  - TSIG verification succeeds, error set to BAKEY (ns_r_badkey)
- *\li  - TSIG verification succeeds, error set to BADSIG (ns_r_badsig)
- *\li  - TSIG verification succeeds, error set to BADTIME (ns_r_badtime)
- */
-int
-ns_verify(u_char *msg, int *msglen, void *k,
-         const u_char *querysig, int querysiglen, u_char *sig, int *siglen,
-         time_t *timesigned, int nostrip)
-{
-       HEADER *hp = (HEADER *)msg;
-       DST_KEY *key = (DST_KEY *)k;
-       u_char *cp = msg, *eom;
-       char name[MAXDNAME], alg[MAXDNAME];
-       u_char *recstart, *rdatastart;
-       u_char *sigstart, *otherstart;
-       int n;
-       int error;
-       u_int16_t type, length;
-       u_int16_t fudge, sigfieldlen, otherfieldlen;
-
-       dst_init();
-       if (msg == NULL || msglen == NULL || *msglen < 0)
-               return (-1);
-
-       eom = msg + *msglen;
-
-       recstart = ns_find_tsig(msg, eom);
-       if (recstart == NULL)
-               return (NS_TSIG_ERROR_NO_TSIG);
-
-       cp = recstart;
-
-       /* Read the key name. */
-       n = dn_expand(msg, eom, cp, name, MAXDNAME);
-       if (n < 0)
-               return (NS_TSIG_ERROR_FORMERR);
-       cp += n;
-
-       /* Read the type. */
-       BOUNDS_CHECK(cp, 2*INT16SZ + INT32SZ + INT16SZ);
-       GETSHORT(type, cp);
-       if (type != ns_t_tsig)
-               return (NS_TSIG_ERROR_NO_TSIG);
-
-       /* Skip the class and TTL, save the length. */
-       cp += INT16SZ + INT32SZ;
-       GETSHORT(length, cp);
-       if (eom - cp != length)
-               return (NS_TSIG_ERROR_FORMERR);
-
-       /* Read the algorithm name. */
-       rdatastart = cp;
-       n = dn_expand(msg, eom, cp, alg, MAXDNAME);
-       if (n < 0)
-               return (NS_TSIG_ERROR_FORMERR);
-       if (ns_samename(alg, NS_TSIG_ALG_HMAC_MD5) != 1)
-               return (-ns_r_badkey);
-       cp += n;
-
-       /* Read the time signed and fudge. */
-       BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ);
-       cp += INT16SZ;
-       GETLONG((*timesigned), cp);
-       GETSHORT(fudge, cp);
-
-       /* Read the signature. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       GETSHORT(sigfieldlen, cp);
-       BOUNDS_CHECK(cp, sigfieldlen);
-       sigstart = cp;
-       cp += sigfieldlen;
-
-       /* Skip id and read error. */
-       BOUNDS_CHECK(cp, 2*INT16SZ);
-       cp += INT16SZ;
-       GETSHORT(error, cp);
-
-       /* Parse the other data. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       GETSHORT(otherfieldlen, cp);
-       BOUNDS_CHECK(cp, otherfieldlen);
-       otherstart = cp;
-       cp += otherfieldlen;
-
-       if (cp != eom)
-               return (NS_TSIG_ERROR_FORMERR);
-
-       /* Verify that the key used is OK. */
-       if (key != NULL) {
-               if (key->dk_alg != KEY_HMAC_MD5)
-                       return (-ns_r_badkey);
-               if (error != ns_r_badsig && error != ns_r_badkey) {
-                       if (ns_samename(key->dk_key_name, name) != 1)
-                               return (-ns_r_badkey);
-               }
-       }
-
-       hp->arcount = htons(ntohs(hp->arcount) - 1);
-
-       /*
-        * Do the verification.
-        */
-
-       if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) {
-               void *ctx;
-               u_char buf[MAXDNAME];
-               u_char buf2[MAXDNAME];
-
-               /* Digest the query signature, if this is a response. */
-               dst_verify_data(SIG_MODE_INIT, key, &ctx, NULL, 0, NULL, 0);
-               if (querysiglen > 0 && querysig != NULL) {
-                       u_int16_t len_n = htons(querysiglen);
-                       dst_verify_data(SIG_MODE_UPDATE, key, &ctx,
-                                       (u_char *)&len_n, INT16SZ, NULL, 0);
-                       dst_verify_data(SIG_MODE_UPDATE, key, &ctx,
-                                       querysig, querysiglen, NULL, 0);
-               }
-               
-               /* Digest the message. */
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx, msg, recstart - msg,
-                               NULL, 0);
-
-               /* Digest the key name. */
-               n = ns_name_pton(name, buf2, sizeof(buf2));
-               if (n < 0)
-                       return (-1);
-               n = ns_name_ntol(buf2, buf, sizeof(buf));
-               if (n < 0)
-                       return (-1);
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0);
-
-               /* Digest the class and TTL. */
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx,
-                               recstart + dn_skipname(recstart, eom) + INT16SZ,
-                               INT16SZ + INT32SZ, NULL, 0);
-
-               /* Digest the algorithm. */
-               n = ns_name_pton(alg, buf2, sizeof(buf2));
-               if (n < 0)
-                       return (-1);
-               n = ns_name_ntol(buf2, buf, sizeof(buf));
-               if (n < 0)
-                       return (-1);
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0);
-
-               /* Digest the time signed and fudge. */
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx,
-                               rdatastart + dn_skipname(rdatastart, eom),
-                               INT16SZ + INT32SZ + INT16SZ, NULL, 0);
-
-               /* Digest the error and other data. */
-               dst_verify_data(SIG_MODE_UPDATE, key, &ctx,
-                               otherstart - INT16SZ - INT16SZ,
-                               otherfieldlen + INT16SZ + INT16SZ, NULL, 0);
-
-               n = dst_verify_data(SIG_MODE_FINAL, key, &ctx, NULL, 0,
-                                   sigstart, sigfieldlen);
-
-               if (n < 0)
-                       return (-ns_r_badsig);
-
-               if (sig != NULL && siglen != NULL) {
-                       if (*siglen < sigfieldlen)
-                               return (NS_TSIG_ERROR_NO_SPACE);
-                       memcpy(sig, sigstart, sigfieldlen);
-                       *siglen = sigfieldlen;
-               }
-       } else {
-               if (sigfieldlen > 0)
-                       return (NS_TSIG_ERROR_FORMERR);
-               if (sig != NULL && siglen != NULL)
-                       *siglen = 0;
-       }
-
-       /* Reset the counter, since we still need to check for badtime. */
-       hp->arcount = htons(ntohs(hp->arcount) + 1);
-
-       /* Verify the time. */
-       if (abs((*timesigned) - time(NULL)) > fudge)
-               return (-ns_r_badtime);
-
-       if (nostrip == 0) {
-               *msglen = recstart - msg;
-               hp->arcount = htons(ntohs(hp->arcount) - 1);
-       }
-
-       if (error != NOERROR)
-               return (error);
-
-       return (0);
-}
-
-int
-ns_verify_tcp_init(void *k, const u_char *querysig, int querysiglen,
-                  ns_tcp_tsig_state *state)
-{
-       dst_init();
-       if (state == NULL || k == NULL || querysig == NULL || querysiglen < 0)
-               return (-1);
-       state->counter = -1;
-       state->key = k;
-       if (state->key->dk_alg != KEY_HMAC_MD5)
-               return (-ns_r_badkey);
-       if (querysiglen > (int)sizeof(state->sig))
-               return (-1);
-       memcpy(state->sig, querysig, querysiglen);
-       state->siglen = querysiglen;
-       return (0);
-}
-
-int
-ns_verify_tcp(u_char *msg, int *msglen, ns_tcp_tsig_state *state,
-             int required)
-{
-       HEADER *hp = (HEADER *)msg;
-       u_char *recstart, *sigstart;
-       unsigned int sigfieldlen, otherfieldlen;
-       u_char *cp, *eom, *cp2;
-       char name[MAXDNAME], alg[MAXDNAME];
-       u_char buf[MAXDNAME];
-       int n, type, length, fudge, error;
-       time_t timesigned;
-
-       if (msg == NULL || msglen == NULL || state == NULL)
-               return (-1);
-
-       eom = msg + *msglen;
-
-       state->counter++;
-       if (state->counter == 0)
-               return (ns_verify(msg, msglen, state->key,
-                                 state->sig, state->siglen,
-                                 state->sig, &state->siglen, &timesigned, 0));
-
-       if (state->siglen > 0) {
-               u_int16_t siglen_n = htons(state->siglen);
-
-               dst_verify_data(SIG_MODE_INIT, state->key, &state->ctx,
-                               NULL, 0, NULL, 0);
-               dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                               (u_char *)&siglen_n, INT16SZ, NULL, 0);
-               dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                               state->sig, state->siglen, NULL, 0);
-               state->siglen = 0;
-       }
-
-       cp = recstart = ns_find_tsig(msg, eom);
-
-       if (recstart == NULL) {
-               if (required)
-                       return (NS_TSIG_ERROR_NO_TSIG);
-               dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                               msg, *msglen, NULL, 0);
-               return (0);
-       }
-
-       hp->arcount = htons(ntohs(hp->arcount) - 1);
-       dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                       msg, recstart - msg, NULL, 0);
-       
-       /* Read the key name. */
-       n = dn_expand(msg, eom, cp, name, MAXDNAME);
-       if (n < 0)
-               return (NS_TSIG_ERROR_FORMERR);
-       cp += n;
-
-       /* Read the type. */
-       BOUNDS_CHECK(cp, 2*INT16SZ + INT32SZ + INT16SZ);
-       GETSHORT(type, cp);
-       if (type != ns_t_tsig)
-               return (NS_TSIG_ERROR_NO_TSIG);
-
-       /* Skip the class and TTL, save the length. */
-       cp += INT16SZ + INT32SZ;
-       GETSHORT(length, cp);
-       if (eom - cp != length)
-               return (NS_TSIG_ERROR_FORMERR);
-
-       /* Read the algorithm name. */
-       n = dn_expand(msg, eom, cp, alg, MAXDNAME);
-       if (n < 0)
-               return (NS_TSIG_ERROR_FORMERR);
-       if (ns_samename(alg, NS_TSIG_ALG_HMAC_MD5) != 1)
-               return (-ns_r_badkey);
-       cp += n;
-
-       /* Verify that the key used is OK. */
-       if ((ns_samename(state->key->dk_key_name, name) != 1 ||
-            state->key->dk_alg != KEY_HMAC_MD5))
-               return (-ns_r_badkey);
-
-       /* Read the time signed and fudge. */
-       BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ);
-       cp += INT16SZ;
-       GETLONG(timesigned, cp);
-       GETSHORT(fudge, cp);
-
-       /* Read the signature. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       GETSHORT(sigfieldlen, cp);
-       BOUNDS_CHECK(cp, sigfieldlen);
-       sigstart = cp;
-       cp += sigfieldlen;
-
-       /* Skip id and read error. */
-       BOUNDS_CHECK(cp, 2*INT16SZ);
-       cp += INT16SZ;
-       GETSHORT(error, cp);
-
-       /* Parse the other data. */
-       BOUNDS_CHECK(cp, INT16SZ);
-       GETSHORT(otherfieldlen, cp);
-       BOUNDS_CHECK(cp, otherfieldlen);
-       cp += otherfieldlen;
-
-       if (cp != eom)
-               return (NS_TSIG_ERROR_FORMERR);
-
-       /*
-        * Do the verification.
-        */
-
-       /* Digest the time signed and fudge. */
-       cp2 = buf;
-       PUTSHORT(0, cp2);       /*%< Top 16 bits of time. */
-       PUTLONG(timesigned, cp2);
-       PUTSHORT(NS_TSIG_FUDGE, cp2);
-
-       dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx,
-                       buf, cp2 - buf, NULL, 0);
-
-       n = dst_verify_data(SIG_MODE_FINAL, state->key, &state->ctx, NULL, 0,
-                           sigstart, sigfieldlen);
-       if (n < 0)
-               return (-ns_r_badsig);
-
-       if (sigfieldlen > sizeof(state->sig))
-               return (NS_TSIG_ERROR_NO_SPACE);
-
-       memcpy(state->sig, sigstart, sigfieldlen);
-       state->siglen = sigfieldlen;
-
-       /* Verify the time. */
-       if (abs(timesigned - time(NULL)) > fudge)
-               return (-ns_r_badtime);
-
-       *msglen = recstart - msg;
-
-       if (error != NOERROR)
-               return (error);
-
-       return (0);
-}
-
-/*! \file */
diff --git a/lib/bind/port/.cvsignore b/lib/bind/port/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/Makefile.in b/lib/bind/port/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/aix32/.cvsignore b/lib/bind/port/aix32/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix32/Makefile.in b/lib/bind/port/aix32/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/aix32/include/.cvsignore b/lib/bind/port/aix32/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix32/include/Makefile.in b/lib/bind/port/aix32/include/Makefile.in
deleted file mode 100644 (file)
index f194e9f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:13 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/aix32/include/paths.h b/lib/bind/port/aix32/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/aix32/include/sys/bitypes.h b/lib/bind/port/aix32/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/aix32/include/sys/cdefs.h b/lib/bind/port/aix32/include/sys/cdefs.h
deleted file mode 100644 (file)
index 9fdc4d6..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:53:58 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/aix4/.cvsignore b/lib/bind/port/aix4/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix4/Makefile.in b/lib/bind/port/aix4/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/aix4/include/.cvsignore b/lib/bind/port/aix4/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix4/include/Makefile.in b/lib/bind/port/aix4/include/Makefile.in
deleted file mode 100644 (file)
index f194e9f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:13 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/aix4/include/sys/bitypes.h b/lib/bind/port/aix4/include/sys/bitypes.h
deleted file mode 100644 (file)
index f16608c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(__BIT_TYPES_DEFINED__) && !defined(_H_INTTYPES)
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/aix4/include/sys/cdefs.h b/lib/bind/port/aix4/include/sys/cdefs.h
deleted file mode 100644 (file)
index 3b2d0a2..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:53:59 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#ifdef __P
-#undef __P     /* /usr/include/net/radix.h may have defined it */
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/aix5/.cvsignore b/lib/bind/port/aix5/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix5/Makefile.in b/lib/bind/port/aix5/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/aix5/include/.cvsignore b/lib/bind/port/aix5/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aix5/include/Makefile.in b/lib/bind/port/aix5/include/Makefile.in
deleted file mode 100644 (file)
index 276d5de..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.3 2007/06/19 23:47:13 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/aix5/include/sys/bitypes.h b/lib/bind/port/aix5/include/sys/bitypes.h
deleted file mode 100644 (file)
index f16608c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if !defined(__BIT_TYPES_DEFINED__) && !defined(_H_INTTYPES)
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/aix5/include/sys/cdefs.h b/lib/bind/port/aix5/include/sys/cdefs.h
deleted file mode 100644 (file)
index 7e2db88..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.3 2006/12/07 03:51:29 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#ifdef __P
-#undef __P     /* /usr/include/net/radix.h may have defined it */
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#ifdef _NO_PROTO
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#else
-#define        __P(protos)     protos
-#endif
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#ifndef __const
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#endif
-#ifndef __inline
-#define        __inline
-#endif
-#ifndef __signed
-#define        __signed
-#endif
-#ifndef __volatile
-#define        __volatile
-#endif
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/aux3/.cvsignore b/lib/bind/port/aux3/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aux3/Makefile.in b/lib/bind/port/aux3/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/aux3/include/.cvsignore b/lib/bind/port/aux3/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/aux3/include/Makefile.in b/lib/bind/port/aux3/include/Makefile.in
deleted file mode 100644 (file)
index 6585241..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h sys/cdefs.h
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/aux3/include/sys/bitypes.h b/lib/bind/port/aux3/include/sys/bitypes.h
deleted file mode 100644 (file)
index 796e628..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * $Id: bitypes.h,v 1.1 2001/05/17 06:25:46 marka Exp $
- */
-
-/*
- * ++Copyright++ 1993
- * -
- * Copyright (c) 1993 Regents of the University of California.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-#ifndef __BIT_TYPES_DEFINED__
-# if (defined(BSD) && (BSD >= 199306)) || \
-     (defined(_BSDI_VERSION) && (_BSDI_VERSION >= 199312)) 
-#  define __BIT_TYPES_DEFINED__
-# endif
-#endif
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-#ifdef __linux__
-#include <linux/types.h>
-#endif
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/aux3/include/sys/cdefs.h b/lib/bind/port/aux3/include/sys/cdefs.h
deleted file mode 100644 (file)
index 7c9d241..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Berkeley Software Design, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)cdefs.h     8.7 (Berkeley) 1/21/94
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-/* POSIX.2 feature test macro: enable POSIX.1 and/or more */
-#if _POSIX_C_SOURCE == 1 || _POSIX_C_SOURCE == 2
-#define        _POSIX_SOURCE
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(__STRICT_ANSI__)
-#define        _ANSI_SOURCE
-#endif
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-/* The following lines were added for newer versions of GNU C
- *   Ed Lewis - Sept 1996 lewis@tis.com
- */    
-#if __GNUC__ == 2 &&  __GNUC_MINOR__ >= 5 || __GNUC__ >= 3
-#define __dead
-#define __dead2     __attribute__((noreturn))
-#define __pure
-#define __pure2     __attribute__((const))
-#endif
-
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/bsdos/.cvsignore b/lib/bind/port/bsdos/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/bsdos/Makefile.in b/lib/bind/port/bsdos/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/bsdos/include/.cvsignore b/lib/bind/port/bsdos/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/bsdos/include/Makefile.in b/lib/bind/port/bsdos/include/Makefile.in
deleted file mode 100644 (file)
index e82d58d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/bsdos/include/sys/bitypes.h b/lib/bind/port/bsdos/include/sys/bitypes.h
deleted file mode 100644 (file)
index b55c6a2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-#ifndef _TYPES_STD32_H_
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-#endif
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/bsdos2/.cvsignore b/lib/bind/port/bsdos2/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/bsdos2/Makefile.in b/lib/bind/port/bsdos2/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/bsdos2/include/.cvsignore b/lib/bind/port/bsdos2/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/bsdos2/include/Makefile.in b/lib/bind/port/bsdos2/include/Makefile.in
deleted file mode 100644 (file)
index e82d58d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/bsdos2/include/sys/bitypes.h b/lib/bind/port/bsdos2/include/sys/bitypes.h
deleted file mode 100644 (file)
index dc01360..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-#if 0  /* don't fight with these unless you need them */
-       typedef __signed char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-#endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/cygwin/Makefile.in b/lib/bind/port/cygwin/Makefile.in
deleted file mode 100644 (file)
index 1347e5c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2002  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/cygwin/include/Makefile.in b/lib/bind/port/cygwin/include/Makefile.in
deleted file mode 100644 (file)
index 38804c1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2002  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= ansi_realloc.h assert.h paths.h
-AHEADERS= asm/socket.h
-NHEADERS= net/route.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/mbuf.h sys/socket.h sys/un.h sys/wait.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/asm \
-       ${DESTDIR}${includedir}/net ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${AHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/asm; \
-       done
-       for i in ${NHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/net; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/cygwin/include/ansi_realloc.h b/lib/bind/port/cygwin/include/ansi_realloc.h
deleted file mode 100644 (file)
index 24e281c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1997,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#include <stddef.h>
-
-#define realloc __ansi_realloc
-
-void *__ansi_realloc(void *ptr, size_t size);
diff --git a/lib/bind/port/cygwin/include/asm/socket.h b/lib/bind/port/cygwin/include/asm/socket.h
deleted file mode 100644 (file)
index 4d4c8a2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _cygwin_asm_socket_h
-#define _cygwin_asm_socket_h
-
-#include_next <asm/socket.h>
-
-/* This is a lame cop-out, but cygwin's SIOCGIFCONF doesn't define
-   IFF_POINTOPOINT, so this should never happen anyway. */
-#ifndef SIOCGIFDSTADDR
-# define SIOCGIFDSTADDR SIOCGIFADDR
-#endif
-
-#endif
diff --git a/lib/bind/port/cygwin/include/assert.h b/lib/bind/port/cygwin/include/assert.h
deleted file mode 100644 (file)
index 4b881ee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <stdio.h>
-#include_next <assert.h>
diff --git a/lib/bind/port/cygwin/include/net/route.h b/lib/bind/port/cygwin/include/net/route.h
deleted file mode 100644 (file)
index 5cfae5e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef ROUTE_H
-#define ROUTE_H                1
-
-/* Dummy include for CYGWIN */
-
-#endif
diff --git a/lib/bind/port/cygwin/include/nlist.h b/lib/bind/port/cygwin/include/nlist.h
deleted file mode 100644 (file)
index 4a1eea6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef NLIST_H
-#define NLIST_H                1
-
-/* Dummy include for CYGWIN */
-
-#endif
diff --git a/lib/bind/port/cygwin/include/paths.h b/lib/bind/port/cygwin/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/cygwin/include/sys/bitypes.h b/lib/bind/port/cygwin/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/cygwin/include/sys/cdefs.h b/lib/bind/port/cygwin/include/sys/cdefs.h
deleted file mode 100644 (file)
index d0d3993..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:01 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/cygwin/include/sys/mbuf.h b/lib/bind/port/cygwin/include/sys/mbuf.h
deleted file mode 100644 (file)
index 5def7e1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef MBUF_H
-#define MBUF_H         1
-
-/* Dummy include for CYGWIN */
-
-#endif
diff --git a/lib/bind/port/cygwin/include/sys/socket.h b/lib/bind/port/cygwin/include/sys/socket.h
deleted file mode 100644 (file)
index bf5688c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _cygwin_sys_socket_h
-#define _cygwin_sys_socket_h
-
-#include_next <sys/socket.h>
-
-#ifndef IFF_POINTOPOINT
-# define IFF_POINTOPOINT 0x10
-#endif
-
-#endif
diff --git a/lib/bind/port/cygwin/include/sys/un.h b/lib/bind/port/cygwin/include/sys/un.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/lib/bind/port/cygwin/include/sys/wait.h b/lib/bind/port/cygwin/include/sys/wait.h
deleted file mode 100644 (file)
index 7bfa19e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _cygwin_sys_wait_h
-
-#include_next <sys/wait.h>
-
-#if !defined (WCOREDUMP)
-# define WCOREDUMP(x) (((x) & 0x80) == 0x80)
-#endif
-
-#endif
diff --git a/lib/bind/port/darwin/.cvsignore b/lib/bind/port/darwin/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/darwin/Makefile.in b/lib/bind/port/darwin/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/darwin/include/.cvsignore b/lib/bind/port/darwin/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/darwin/include/Makefile.in b/lib/bind/port/darwin/include/Makefile.in
deleted file mode 100644 (file)
index e82d58d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/darwin/include/sys/bitypes.h b/lib/bind/port/darwin/include/sys/bitypes.h
deleted file mode 100644 (file)
index f3ea76c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 1 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/decunix/.cvsignore b/lib/bind/port/decunix/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/decunix/Makefile.in b/lib/bind/port/decunix/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/decunix/include/.cvsignore b/lib/bind/port/decunix/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/decunix/include/Makefile.in b/lib/bind/port/decunix/include/Makefile.in
deleted file mode 100644 (file)
index 77edaa7..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/decunix/include/sys/bitypes.h b/lib/bind/port/decunix/include/sys/bitypes.h
deleted file mode 100644 (file)
index 8d735f3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char                    int8m_t;
-       typedef unsigned char            u_int8_t, u_int8m_t;
-       typedef short                              int16m_t;
-       typedef unsigned short          u_int16_t, u_int16m_t;
-       typedef int                                int32m_t;
-       typedef unsigned int            u_int32_t, u_int32m_t;
-
-#ifdef __arch64__
-       typedef long                               int64m_t;
-       typedef unsigned long           u_int64_t, u_int64m_t;
-#endif
-
-#ifndef _INTTYPES_H
-       typedef signed char               int8_t;
-       typedef signed short              int16_t;
-       typedef signed int                int32_t;
-       typedef unsigned char             uint8_t;
-       typedef unsigned short            uint16_t;
-       typedef unsigned int              uint32_t;
-#ifdef __arch64__
-       typedef signed long               int64_t;
-       typedef unsigned long             uint64_t;
-#endif
-#endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/decunix/include/sys/cdefs.h b/lib/bind/port/decunix/include/sys/cdefs.h
deleted file mode 100644 (file)
index 86ea909..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#define __BEGIN_DECLS
-#define __END_DECLS
-#define __P(x) x
-#define __dead
-#define __pure
-#define __attribute__(x)
diff --git a/lib/bind/port/freebsd/.cvsignore b/lib/bind/port/freebsd/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/freebsd/Makefile.in b/lib/bind/port/freebsd/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/freebsd/include/.cvsignore b/lib/bind/port/freebsd/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/freebsd/include/Makefile.in b/lib/bind/port/freebsd/include/Makefile.in
deleted file mode 100644 (file)
index e82d58d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/freebsd/include/sys/bitypes.h b/lib/bind/port/freebsd/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/hpux/.cvsignore b/lib/bind/port/hpux/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux/Makefile.in b/lib/bind/port/hpux/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/hpux/include/.cvsignore b/lib/bind/port/hpux/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux/include/Makefile.in b/lib/bind/port/hpux/include/Makefile.in
deleted file mode 100644 (file)
index eba9397..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/hpux/include/paths.h b/lib/bind/port/hpux/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/hpux/include/sys/bitypes.h b/lib/bind/port/hpux/include/sys/bitypes.h
deleted file mode 100644 (file)
index 149c400..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-/* HPUX has these, sort of. */
-
-typedef uint32_t u_int32_t;
-typedef uint16_t u_int16_t;
-typedef uint8_t u_int8_t;
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/hpux/include/sys/cdefs.h b/lib/bind/port/hpux/include/sys/cdefs.h
deleted file mode 100644 (file)
index 2cc58f0..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:02 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/hpux10/.cvsignore b/lib/bind/port/hpux10/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux10/Makefile.in b/lib/bind/port/hpux10/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/hpux10/include/.cvsignore b/lib/bind/port/hpux10/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux10/include/Makefile.in b/lib/bind/port/hpux10/include/Makefile.in
deleted file mode 100644 (file)
index 1e2a952..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/hpux10/include/paths.h b/lib/bind/port/hpux10/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/hpux10/include/sys/bitypes.h b/lib/bind/port/hpux10/include/sys/bitypes.h
deleted file mode 100644 (file)
index 2e454b9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-/* HPUX has these, sort of. */
-
-#ifdef __INTTYPES_INCLUDED
-typedef uint32_t u_int32_t;
-typedef uint16_t u_int16_t;
-typedef uint8_t u_int8_t;
-#else
-typedef unsigned int u_int32_t;
-typedef unsigned short u_int16_t;
-typedef unsigned char u_int8_t;
-typedef int int32_t;
-typedef short int16_t;
-typedef char int8_t;
-#endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/hpux10/include/sys/cdefs.h b/lib/bind/port/hpux10/include/sys/cdefs.h
deleted file mode 100644 (file)
index 2cc58f0..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:02 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/hpux9/.cvsignore b/lib/bind/port/hpux9/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux9/Makefile.in b/lib/bind/port/hpux9/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/hpux9/include/.cvsignore b/lib/bind/port/hpux9/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/hpux9/include/Makefile.in b/lib/bind/port/hpux9/include/Makefile.in
deleted file mode 100644 (file)
index 1e2a952..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/hpux9/include/sys/bitypes.h b/lib/bind/port/hpux9/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/hpux9/include/sys/cdefs.h b/lib/bind/port/hpux9/include/sys/cdefs.h
deleted file mode 100644 (file)
index 8aed23d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:03 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/irix/.cvsignore b/lib/bind/port/irix/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/irix/Makefile.in b/lib/bind/port/irix/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/irix/include/.cvsignore b/lib/bind/port/irix/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/irix/include/Makefile.in b/lib/bind/port/irix/include/Makefile.in
deleted file mode 100644 (file)
index ad4a788..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.5 2007/06/19 23:47:14 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/irix/include/paths.h b/lib/bind/port/irix/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/irix/include/sys/bitypes.h b/lib/bind/port/irix/include/sys/bitypes.h
deleted file mode 100644 (file)
index da69409..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-#if 0  /* None of these are needed in IRIX, they're all in
-        * <sys/types.h>
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-# endif
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/irix/include/sys/cdefs.h b/lib/bind/port/irix/include/sys/cdefs.h
deleted file mode 100644 (file)
index 8aed23d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:03 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/linux/.cvsignore b/lib/bind/port/linux/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/linux/Makefile.in b/lib/bind/port/linux/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/linux/include/.cvsignore b/lib/bind/port/linux/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/linux/include/Makefile.in b/lib/bind/port/linux/include/Makefile.in
deleted file mode 100644 (file)
index 7e7eb48..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.5 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-NHEADERS= net/route.h
-SHEADERS= sys/mbuf.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/net \
-       ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${NHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/net; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/linux/include/net/route.h b/lib/bind/port/linux/include/net/route.h
deleted file mode 100644 (file)
index 26a11fc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#if __GLIBC__ < 2
-#  include_next <net/route.h>
-#endif
diff --git a/lib/bind/port/linux/include/sys/mbuf.h b/lib/bind/port/linux/include/sys/mbuf.h
deleted file mode 100644 (file)
index 54039ea..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef MBUF_H
-#define MBUF_H
-#endif
diff --git a/lib/bind/port/lynxos/.cvsignore b/lib/bind/port/lynxos/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/lynxos/Makefile.in b/lib/bind/port/lynxos/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/lynxos/include/.cvsignore b/lib/bind/port/lynxos/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/lynxos/include/Makefile.in b/lib/bind/port/lynxos/include/Makefile.in
deleted file mode 100644 (file)
index a76cb0c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= ansi_realloc.h
-SHEADERS =sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/lynxos/include/sys/bitypes.h b/lib/bind/port/lynxos/include/sys/bitypes.h
deleted file mode 100644 (file)
index 6c4ad51..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-#ifndef __Lynx__
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-#endif
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/lynxos/include/sys/cdefs.h b/lib/bind/port/lynxos/include/sys/cdefs.h
deleted file mode 100644 (file)
index e0fd941..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:04 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#ifndef __P
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#endif
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/mpe/.cvsignore b/lib/bind/port/mpe/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/mpe/Makefile.in b/lib/bind/port/mpe/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/mpe/include/.cvsignore b/lib/bind/port/mpe/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/mpe/include/Makefile.in b/lib/bind/port/mpe/include/Makefile.in
deleted file mode 100644 (file)
index c0bca31..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.5 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h utmp.h
-NHEADERS= net/route.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/file.h sys/mbuf.h sys/param.h \
-         sys/time.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/net \
-       ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${NHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/net; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/mpe/include/net/route.h b/lib/bind/port/mpe/include/net/route.h
deleted file mode 100644 (file)
index 9eb5bf1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Omitted from MPE. */
diff --git a/lib/bind/port/mpe/include/sys/bitypes.h b/lib/bind/port/mpe/include/sys/bitypes.h
deleted file mode 100644 (file)
index ca5e342..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-/* HPUX has these, sort of. */
-
-typedef unsigned int u_int32_t;
-typedef unsigned short u_int16_t;
-typedef unsigned char u_int8_t;
-typedef short int16_t;
-typedef int int32_t;
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/mpe/include/sys/cdefs.h b/lib/bind/port/mpe/include/sys/cdefs.h
deleted file mode 100644 (file)
index b83e9a3..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:04 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/mpe/include/sys/file.h b/lib/bind/port/mpe/include/sys/file.h
deleted file mode 100644 (file)
index 9eb5bf1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Omitted from MPE. */
diff --git a/lib/bind/port/mpe/include/sys/mbuf.h b/lib/bind/port/mpe/include/sys/mbuf.h
deleted file mode 100644 (file)
index 9eb5bf1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Omitted from MPE. */
diff --git a/lib/bind/port/mpe/include/sys/param.h b/lib/bind/port/mpe/include/sys/param.h
deleted file mode 100644 (file)
index e5e2f8e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Omitted from MPE. */
-
-#define MAXHOSTNAMELEN 64
-#define MAXPATHLEN     1024
diff --git a/lib/bind/port/mpe/include/sys/time.h b/lib/bind/port/mpe/include/sys/time.h
deleted file mode 100644 (file)
index 9eb5bf1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Omitted from MPE. */
diff --git a/lib/bind/port/netbsd/.cvsignore b/lib/bind/port/netbsd/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/netbsd/Makefile.in b/lib/bind/port/netbsd/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/netbsd/include/.cvsignore b/lib/bind/port/netbsd/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/netbsd/include/Makefile.in b/lib/bind/port/netbsd/include/Makefile.in
deleted file mode 100644 (file)
index a3a4701..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/netbsd/include/sys/bitypes.h b/lib/bind/port/netbsd/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/next/.cvsignore b/lib/bind/port/next/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/next/Makefile.in b/lib/bind/port/next/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/next/include/.cvsignore b/lib/bind/port/next/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/next/include/Makefile.in b/lib/bind/port/next/include/Makefile.in
deleted file mode 100644 (file)
index 184f82f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/next/include/sys/bitypes.h b/lib/bind/port/next/include/sys/bitypes.h
deleted file mode 100644 (file)
index 02cbc7c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-#if NS_TARGET_MAJOR < 4
-#ifndef _TYPES_STD32_H_
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-#endif
-#endif
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/next/include/sys/cdefs.h b/lib/bind/port/next/include/sys/cdefs.h
deleted file mode 100644 (file)
index 0bf52d2..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:05 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/openbsd/.cvsignore b/lib/bind/port/openbsd/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/openbsd/Makefile.in b/lib/bind/port/openbsd/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/openbsd/include/.cvsignore b/lib/bind/port/openbsd/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/openbsd/include/Makefile.in b/lib/bind/port/openbsd/include/Makefile.in
deleted file mode 100644 (file)
index 9aea4d3..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/openbsd/include/sys/bitypes.h b/lib/bind/port/openbsd/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/prand_conf/.cvsignore b/lib/bind/port/prand_conf/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/prand_conf/Makefile.in b/lib/bind/port/prand_conf/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/qnx/.cvsignore b/lib/bind/port/qnx/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/qnx/Makefile.in b/lib/bind/port/qnx/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/qnx/include/.cvsignore b/lib/bind/port/qnx/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/qnx/include/Makefile.in b/lib/bind/port/qnx/include/Makefile.in
deleted file mode 100644 (file)
index 2fd7708..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.5 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= db.h paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/ioctl.h sys/mbuf.h sys/resource.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/qnx/include/sys/bitypes.h b/lib/bind/port/qnx/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/qnx/include/sys/cdefs.h b/lib/bind/port/qnx/include/sys/cdefs.h
deleted file mode 100644 (file)
index 2b3f9ec..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*     $NetBSD: cdefs.h,v 1.15 1995/01/19 01:54:52 jtc Exp $   */
-
-/*
- * Copyright (c) 1991, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Berkeley Software Design, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)cdefs.h     8.7 (Berkeley) 1/21/94
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-//#include <machine/cdefs.h>
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-#endif /* !__GNUC__ */
-
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * Programs using the ANSI C keywords const, inline etc. as normal
- * identifiers should define -DNO_ANSI_KEYWORDS.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const           __const         /* convert ANSI C keywords */
-#define        inline          __inline
-#define        signed          __signed
-#define        volatile        __volatile
-#endif /* !NO_ANSI_KEYWORDS */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/qnx/include/sys/ioctl.h b/lib/bind/port/qnx/include/sys/ioctl.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/lib/bind/port/qnx/include/sys/mbuf.h b/lib/bind/port/qnx/include/sys/mbuf.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/lib/bind/port/qnx/include/sys/resource.h b/lib/bind/port/qnx/include/sys/resource.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/lib/bind/port/rhapsody/.cvsignore b/lib/bind/port/rhapsody/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/rhapsody/Makefile.in b/lib/bind/port/rhapsody/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/rhapsody/include/.cvsignore b/lib/bind/port/rhapsody/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/rhapsody/include/Makefile.in b/lib/bind/port/rhapsody/include/Makefile.in
deleted file mode 100644 (file)
index a3a4701..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= sys/bitypes.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/rhapsody/include/sys/bitypes.h b/lib/bind/port/rhapsody/include/sys/bitypes.h
deleted file mode 100644 (file)
index f3ea76c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 1 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/sco42/.cvsignore b/lib/bind/port/sco42/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sco42/Makefile.in b/lib/bind/port/sco42/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/sco42/include/.cvsignore b/lib/bind/port/sco42/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sco42/include/Makefile.in b/lib/bind/port/sco42/include/Makefile.in
deleted file mode 100644 (file)
index 5ce28fa..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= ansi_realloc.h paths.h sco_gettime.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/mbuf.h sys/un.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/sco42/include/sys/bitypes.h b/lib/bind/port/sco42/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/sco42/include/sys/cdefs.h b/lib/bind/port/sco42/include/sys/cdefs.h
deleted file mode 100644 (file)
index 6c57c8a..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:06 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/sco42/include/sys/mbuf.h b/lib/bind/port/sco42/include/sys/mbuf.h
deleted file mode 100644 (file)
index bdf1fd6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef MBUF_H
-#define MBUF_H
-#include <sys/stream.h>
-#endif
diff --git a/lib/bind/port/sco42/include/sys/un.h b/lib/bind/port/sco42/include/sys/un.h
deleted file mode 100644 (file)
index e6e3925..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 _SYS_UN_H_
-#define _SYS_UN_H_
-
-/* Dummy include for SCO 3.2v4.2 */
-
-#endif
diff --git a/lib/bind/port/sco50/.cvsignore b/lib/bind/port/sco50/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sco50/Makefile.in b/lib/bind/port/sco50/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/sco50/include/.cvsignore b/lib/bind/port/sco50/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sco50/include/Makefile.in b/lib/bind/port/sco50/include/Makefile.in
deleted file mode 100644 (file)
index 26d7d31..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/mbuf.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/sco50/include/sys/mbuf.h b/lib/bind/port/sco50/include/sys/mbuf.h
deleted file mode 100644 (file)
index bdf1fd6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef MBUF_H
-#define MBUF_H
-#include <sys/stream.h>
-#endif
diff --git a/lib/bind/port/solaris/.cvsignore b/lib/bind/port/solaris/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/solaris/Makefile.in b/lib/bind/port/solaris/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/solaris/include/.cvsignore b/lib/bind/port/solaris/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/solaris/include/Makefile.in b/lib/bind/port/solaris/include/Makefile.in
deleted file mode 100644 (file)
index 184f82f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/solaris/include/paths.h b/lib/bind/port/solaris/include/paths.h
deleted file mode 100644 (file)
index 7ec0332..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/solaris/include/sys/bitypes.h b/lib/bind/port/solaris/include/sys/bitypes.h
deleted file mode 100644 (file)
index 39c8256..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 2001  Internet Software Consortium.
- *
- * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC 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: bitypes.h,v 1.5 2007/06/19 23:47:15 tbox Exp $ */
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-
-#ifdef NEED_SOLARIS_BITTYPES
-       typedef /*signed*/ char            int8_t;
-       typedef short                     int16_t;
-       typedef int                       int32_t;
-#endif
-       typedef unsigned char            u_int8_t;
-       typedef unsigned short          u_int16_t;
-       typedef unsigned int            u_int32_t;
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/solaris/include/sys/cdefs.h b/lib/bind/port/solaris/include/sys/cdefs.h
deleted file mode 100644 (file)
index 67aac00..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:07 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/sunos/.cvsignore b/lib/bind/port/sunos/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sunos/Makefile.in b/lib/bind/port/sunos/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/sunos/include/.cvsignore b/lib/bind/port/sunos/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/sunos/include/Makefile.in b/lib/bind/port/sunos/include/Makefile.in
deleted file mode 100644 (file)
index e164f90..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= ansi_realloc.h assert.h paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/wait.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/sunos/include/paths.h b/lib/bind/port/sunos/include/paths.h
deleted file mode 100644 (file)
index 43f6f74..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2007  Internet Systems Consortium, Inc. ("ISC")
- *
- * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC 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: paths.h,v 1.3 2007/06/18 23:47:38 tbox Exp $ */
-
-#define _PATH_DEVNULL "/dev/null"
-
diff --git a/lib/bind/port/sunos/include/sys/bitypes.h b/lib/bind/port/sunos/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/sunos/include/sys/cdefs.h b/lib/bind/port/sunos/include/sys/cdefs.h
deleted file mode 100644 (file)
index 67aac00..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:07 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/sunos/include/sys/wait.h b/lib/bind/port/sunos/include/sys/wait.h
deleted file mode 100644 (file)
index cc53bb3..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _sunos_sys_wait_h
-
-#include_next <sys/wait.h>
-
-#define WCOREDUMP(x)   (((union __wait*)&(x))->__w_coredump)
-
-#endif
diff --git a/lib/bind/port/ultrix/.cvsignore b/lib/bind/port/ultrix/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/ultrix/Makefile.in b/lib/bind/port/ultrix/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/ultrix/include/.cvsignore b/lib/bind/port/ultrix/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/ultrix/include/Makefile.in b/lib/bind/port/ultrix/include/Makefile.in
deleted file mode 100644 (file)
index 8f3cf7d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:15 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-READERS= rpc/xdr.h
-SHEADERS= sys/bitypes.h sys/cdefs.h sys/socket.h sys/syslog.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/rpc \
-       ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${RHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/rpc; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/ultrix/include/rpc/xdr.h b/lib/bind/port/ultrix/include/rpc/xdr.h
deleted file mode 100644 (file)
index 2a52056..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _BIND_RPC_XDR_H
-#define _BIND_RPC_XDR_H
-#include "/usr/include/rpc/xdr.h"
-#endif
diff --git a/lib/bind/port/ultrix/include/sys/bitypes.h b/lib/bind/port/ultrix/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/ultrix/include/sys/cdefs.h b/lib/bind/port/ultrix/include/sys/cdefs.h
deleted file mode 100644 (file)
index 5e31ede..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __BEGIN_DECLS
-#define __END_DECLS
-#define __P(x) x
diff --git a/lib/bind/port/ultrix/include/sys/socket.h b/lib/bind/port/ultrix/include/sys/socket.h
deleted file mode 100644 (file)
index 5335b6a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _BIND_SYS_SOCKET
-#define _BIND_SYS_SOCKET
-#include "/usr/include/sys/socket.h"
-#endif
diff --git a/lib/bind/port/ultrix/include/sys/syslog.h b/lib/bind/port/ultrix/include/sys/syslog.h
deleted file mode 100644 (file)
index 27db513..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _BIND_SYSLOG_H
-#define _BIND_SYSLOG_H
-#include "/usr/include/syslog.h"
-#endif
diff --git a/lib/bind/port/unixware20/.cvsignore b/lib/bind/port/unixware20/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware20/Makefile.in b/lib/bind/port/unixware20/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/unixware20/include/.cvsignore b/lib/bind/port/unixware20/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware20/include/Makefile.in b/lib/bind/port/unixware20/include/Makefile.in
deleted file mode 100644 (file)
index 637283d..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:16 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/unixware20/include/sys/bitypes.h b/lib/bind/port/unixware20/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/unixware20/include/sys/cdefs.h b/lib/bind/port/unixware20/include/sys/cdefs.h
deleted file mode 100644 (file)
index 67aac00..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:07 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/unixware212/.cvsignore b/lib/bind/port/unixware212/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware212/Makefile.in b/lib/bind/port/unixware212/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/unixware212/include/.cvsignore b/lib/bind/port/unixware212/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware212/include/Makefile.in b/lib/bind/port/unixware212/include/Makefile.in
deleted file mode 100644 (file)
index 637283d..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:16 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-SHEADERS= sys/bitypes.h sys/cdefs.h
-
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/sys 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
-       for i in ${SHEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/sys; \
-       done
diff --git a/lib/bind/port/unixware212/include/sys/bitypes.h b/lib/bind/port/unixware212/include/sys/bitypes.h
deleted file mode 100644 (file)
index ef3a6d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-       /*
-        * Basic integral types.  Omit the typedef if
-        * not possible for a machine/compiler combination.
-        */
-       typedef /*signed*/ char            int8_t;
-       typedef unsigned char            u_int8_t;
-       typedef short                     int16_t;
-       typedef unsigned short          u_int16_t;
-       typedef int                       int32_t;
-       typedef unsigned int            u_int32_t;
-
-# if 0 /* don't fight with these unless you need them */
-       typedef long long                 int64_t;
-       typedef unsigned long long      u_int64_t;
-# endif
-
-#endif /* __BIT_TYPES_DEFINED__ */
diff --git a/lib/bind/port/unixware212/include/sys/cdefs.h b/lib/bind/port/unixware212/include/sys/cdefs.h
deleted file mode 100644 (file)
index 7752c58..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ++Copyright++ 1991, 1993
- * -
- * Copyright (c) 1991, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- * -
- * --Copyright--
- */
-
-/*
- *     @(#)cdefs.h     8.1 (Berkeley) 6/2/93
- *     $Id: cdefs.h,v 1.2 2004/07/19 05:54:08 marka Exp $
- */
-
-#ifndef        _CDEFS_H_
-#define        _CDEFS_H_
-
-#if defined(__cplusplus)
-#define        __BEGIN_DECLS   extern "C" {
-#define        __END_DECLS     };
-#else
-#define        __BEGIN_DECLS
-#define        __END_DECLS
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-#if defined(__STDC__) || defined(__cplusplus)
-#define        __P(protos)     protos          /* full-blown ANSI C */
-#define        __CONCAT(x,y)   x ## y
-#define        __STRING(x)     #x
-
-#define        __const         const           /* define reserved names to standard */
-#define        __signed        signed
-#define        __volatile      volatile
-#if defined(__cplusplus)
-#define        __inline        inline          /* convert to C++ keyword */
-#else
-#ifndef __GNUC__
-#define        __inline                        /* delete GCC keyword */
-#endif /* !__GNUC__ */
-#endif /* !__cplusplus */
-
-#else  /* !(__STDC__ || __cplusplus) */
-#define        __P(protos)     ()              /* traditional C preprocessor */
-#define        __CONCAT(x,y)   x/**/y
-#define        __STRING(x)     "x"
-
-#ifndef __GNUC__
-#define        __const                         /* delete pseudo-ANSI C keywords */
-#define        __inline
-#define        __signed
-#define        __volatile
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * When using a compiler other than gcc, programs using the ANSI C keywords
- * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
- * When using "gcc -traditional", we assume that this is the intent; if
- * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
- */
-#ifndef        NO_ANSI_KEYWORDS
-#define        const                           /* delete ANSI C keywords */
-#define        inline
-#define        signed
-#define        volatile
-#endif
-#endif /* !__GNUC__ */
-#endif /* !(__STDC__ || __cplusplus) */
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define        __attribute__(x)        /* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define        __dead          __volatile
-#define        __pure          __const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define        __dead
-#define        __pure
-#endif
-
-#endif /* !_CDEFS_H_ */
diff --git a/lib/bind/port/unixware7/.cvsignore b/lib/bind/port/unixware7/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware7/Makefile.in b/lib/bind/port/unixware7/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/unixware7/include/.cvsignore b/lib/bind/port/unixware7/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unixware7/include/Makefile.in b/lib/bind/port/unixware7/include/Makefile.in
deleted file mode 100644 (file)
index 0863c9a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.4 2007/06/19 23:47:16 tbox Exp $
-
-srcdir =        @srcdir@
-VPATH =         @srcdir@
-top_srcdir =    @top_srcdir@
-
-HEADERS= paths.h
-all:
-
-@BIND9_MAKE_RULES@
-
-installdirs:
-       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir} 
-
-install:: installdirs
-       for i in ${HEADERS}; do \
-               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}; \
-       done
diff --git a/lib/bind/port/unknown/.cvsignore b/lib/bind/port/unknown/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unknown/Makefile.in b/lib/bind/port/unknown/Makefile.in
deleted file mode 100644 (file)
index b5128fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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.
diff --git a/lib/bind/port/unknown/include/.cvsignore b/lib/bind/port/unknown/include/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/port/unknown/include/Makefile.in b/lib/bind/port/unknown/include/Makefile.in
deleted file mode 100644 (file)
index 6b76523..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.8 2007/06/19 23:47:16 tbox Exp $
-
-all:
-       exit 1
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/port_after.h.in b/lib/bind/port_after.h.in
deleted file mode 100644 (file)
index 0267fbb..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-/*
- * Copyright (C) 2004-2008  Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 2001-2003  Internet Software Consortium.
- *
- * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC 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: port_after.h.in,v 1.60 2008/02/28 05:34:17 marka Exp $ */
-
-#ifndef port_after_h
-#define port_after_h
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/param.h>
-#include <sys/time.h>
-#if (!defined(BSD)) || (BSD < 199306)
-#include <sys/bitypes.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif /* HAVE_SYS_SELECT_H */
-
-#ifdef REENABLE_SEND
-#undef send
-#endif
-
-@NEED_PSELECT@
-@HAVE_SA_LEN@
-@HAVE_MINIMUM_IFREQ@
-@NEED_DAEMON@
-@NEED_STRSEP@
-@NEED_STRERROR@
-#ifdef NEED_STRERROR
-const char *isc_strerror(int);
-#define strerror isc_strerror
-#endif
-@HAS_INET6_STRUCTS@
-@HAVE_SIN6_SCOPE_ID@
-@NEED_IN6ADDR_ANY@
-@HAS_IN_ADDR6@
-@HAVE_SOCKADDR_STORAGE@
-@NEED_GETTIMEOFDAY@
-@HAVE_STRNDUP@
-@USE_FIONBIO_IOCTL@
-@INNETGR_ARGS@
-@SETNETGRENT_ARGS@
-@USE_IFNAMELINKID@
-@PORT_NONBLOCK@
-
-#ifndef _POSIX_PATH_MAX
-#define _POSIX_PATH_MAX 255
-#endif
-#ifndef PATH_MAX
-#define PATH_MAX _POSIX_PATH_MAX
-#endif
-
-/*
- * 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
-
-#ifdef _AIX
-#ifndef IN6ADDR_ANY_INIT
-#define IN6ADDR_ANY_INIT {{{ 0, 0, 0, 0 }}}
-#endif
-#ifndef IN6ADDR_LOOPBACK_INIT
-#if BYTE_ORDER == BIG_ENDIAN
-#define IN6ADDR_LOOPBACK_INIT {{{ 0, 0, 0, 1 }}}
-#else
-#define IN6ADDR_LOOPBACK_INIT {{{0, 0, 0, 0x01000000}}}
-#endif
-#endif
-#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) (((uintptr_t)(p) + (sizeof(long) - 1)) & ~(sizeof(long) - 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
-
-#if defined(NEED_INNETGR_R) && defined(NGR_R_RETURN)
-NGR_R_RETURN
-innetgr_r(const char *, const char *, const char *, const char *);
-#endif
-
-#ifdef NEED_SETNETGRENT_R
-#ifdef NGR_R_SET_ARGS
-NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS);
-#else
-NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup);
-#endif
-#endif
-
-#ifdef NEED_ENDNETGRENT_R
-#ifdef NGR_R_END_ARGS
-NGR_R_END_RETURN endnetgrent_r(NGR_R_END_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(NGR_R_CONST char **machinep, NGR_R_CONST char **userp,
-               NGR_R_CONST char **domainp);
-
-#ifdef NGR_R_ARGS
-int getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp,
-                 NGR_R_CONST char **domainp, NGR_R_ARGS);
-#endif
-
-#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_SET_ARGS
-NGR_R_SET_RETURN
-setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS);
-#else
-NGR_R_SET_RETURN
-setnetgrent_r(NGR_R_SET_CONST char *netgroup);
-#endif
-
-#ifdef NEED_STRTOUL
-unsigned long strtoul(const char *, char **, int);
-#endif
-
-#ifdef NEED_SUN4PROTOS
-#include <stdarg.h>
-#ifndef __SIZE_TYPE__
-#define __SIZE_TYPE__ int
-#endif
-struct sockaddr;
-struct iovec;
-struct timeval;
-struct timezone;
-int fprintf(FILE *, const char *, ...);
-int getsockname(int, struct sockaddr *, int *);
-int getpeername(int, struct sockaddr *, int *);
-int socket(int, int, int);
-int connect(int, const struct sockaddr *, int);
-int writev(int, struct iovec *, int);
-int readv(int, struct iovec *, int);
-int send(int, const char *, int, int);
-void bzero(char *, int);
-int recvfrom(int, char *, int, int, struct sockaddr *, int *);
-int syslog(int, const char *, ... );
-int printf(const char *, ...);
-__SIZE_TYPE__ fread(void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *);
-__SIZE_TYPE__ fwrite(const void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *);
-int fclose(FILE *);
-int ungetc(int, FILE *);
-int scanf(const char *, ...);
-int sscanf(const char *, const char *, ... );
-int tolower(int);
-int toupper(int);
-int strcasecmp(const char *, const char *);
-int strncasecmp(const char *, const char *, int);
-int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
-#ifdef gettimeofday
-#undef gettimeofday
-int gettimeofday(struct timeval *, struct timezone *);
-#define gettimeofday isc__gettimeofday
-#else
-int gettimeofday(struct timeval *, struct timezone *);
-#endif
-long strtol(const char*, char **, int);
-int fseek(FILE *, long, int);
-int setsockopt(int, int, int, const char *, int);
-int bind(int, const struct sockaddr *, int);
-void bcopy(char *, char *, int);
-int fputc(char, FILE *);
-int listen(int, int);
-int accept(int, struct sockaddr *, int *);
-int getsockopt(int, int, int, char *, int *);
-int vfprintf(FILE *, const char *, va_list);
-int fflush(FILE *);
-int fgetc(FILE *);
-int fputs(const char *, FILE *);
-int fchown(int, int, int);
-void setbuf(FILE *, char *);
-int gethostname(char *, int);
-int rename(const char *, const char *);
-time_t time(time_t *);
-int fscanf(FILE *, const char *, ...);
-int sscanf(const char *, const char *, ...);
-int ioctl(int, int, caddr_t);
-void perror(const char *);
-
-#if !defined(__USE_FIXED_PROTOTYPES__) && !defined(__cplusplus) && !defined(__STRICT_ANSI__)
-/*
- * 'gcc -ansi' changes the prototype for vsprintf().
- * Use this prototype when 'gcc -ansi' is not in effect.
- */
-char *vsprintf(char *, const char *, va_list);
-#endif
-#endif
-
-#endif
diff --git a/lib/bind/port_before.h.in b/lib/bind/port_before.h.in
deleted file mode 100644 (file)
index 44b6e1e..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2005-2008  Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 2001  Internet Software Consortium.
- *
- * Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC 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: port_before.h.in,v 1.31 2008/02/28 05:36:10 marka Exp $ */
-
-#ifndef port_before_h
-#define port_before_h
-#include <config.h>
-
-#ifdef NEED_SUN4PROTOS
-#define _PARAMS(x) x
-#endif
-
-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>
-
-#ifdef ISC_PLATFORM_NEEDTIMESPEC
-#include <time.h>              /* For time_t */
-struct timespec {
-       time_t  tv_sec;         /* seconds */
-       long    tv_nsec;        /* nanoseconds */
-};
-#endif
-#ifndef HAVE_MEMMOVE
-#define memmove(a,b,c) bcopy(b,a,c)
-#endif
-
-@WANT_IRS_GR@
-@WANT_IRS_NIS@
-@WANT_IRS_PW@
-
-@BSD_COMP@
-@USE_POLL@
-@HAVE_MD5@
-@SOLARIS2@
-
-@DO_PTHREADS@
-@GETGROUPLIST_ARGS@
-@GETNETBYADDR_ADDR_T@
-@SETPWENT_VOID@
-@SETGRENT_VOID@
-
-@NET_R_ARGS@
-@NET_R_BAD@
-@NET_R_COPY@
-@NET_R_COPY_ARGS@
-@NET_R_END_RESULT@
-@NET_R_END_RETURN@
-@NET_R_ENT_ARGS@
-@NET_R_OK@
-@NET_R_RETURN@
-@NET_R_SET_RESULT@
-@NET_R_SETANSWER@
-@NET_R_SET_RETURN@
-@NETENT_DATA@
-
-@GROUP_R_RETURN@
-@GROUP_R_SET_RETURN@
-@GROUP_R_SET_RESULT@
-@GROUP_R_END_RETURN@
-@GROUP_R_END_RESULT@
-@GROUP_R_ARGS@
-@GROUP_R_ENT_ARGS@
-@GROUP_R_OK@
-@GROUP_R_BAD@
-
-@HOST_R_ARGS@
-@HOST_R_BAD@
-@HOST_R_COPY@
-@HOST_R_COPY_ARGS@
-@HOST_R_END_RESULT@
-@HOST_R_END_RETURN@
-@HOST_R_ENT_ARGS@
-@HOST_R_ERRNO@
-@HOST_R_OK@
-@HOST_R_RETURN@
-@HOST_R_SETANSWER@
-@HOST_R_SET_RESULT@
-@HOST_R_SET_RETURN@
-@HOSTENT_DATA@
-
-@NGR_R_ARGS@
-@NGR_R_BAD@
-@NGR_R_COPY@
-@NGR_R_COPY_ARGS@
-@NGR_R_CONST@
-@NGR_R_END_RESULT@
-@NGR_R_END_RETURN@
-@NGR_R_END_ARGS@
-@NGR_R_OK@
-@NGR_R_RETURN@
-@NGR_R_SET_CONST@
-@NGR_R_SET_RESULT@
-@NGR_R_SET_RETURN@
-@NGR_R_SET_ARGS@
-@NGR_R_PRIVATE@
-
-#if !defined(NGR_R_SET_ARGS) && defined(NGR_R_END_ARGS)
-#define NGR_R_SET_ARGS NGR_R_END_ARGS
-#endif
-
-@PROTO_R_ARGS@
-@PROTO_R_BAD@
-@PROTO_R_COPY@
-@PROTO_R_COPY_ARGS@
-@PROTO_R_END_RESULT@
-@PROTO_R_END_RETURN@
-@PROTO_R_ENT_ARGS@
-@PROTO_R_ENT_UNUSED@
-@PROTO_R_OK@
-@PROTO_R_SETANSWER@
-@PROTO_R_RETURN@
-@PROTO_R_SET_RESULT@
-@PROTO_R_SET_RETURN@
-@PROTOENT_DATA@
-
-@PASS_R_ARGS@
-@PASS_R_BAD@
-@PASS_R_COPY@
-@PASS_R_COPY_ARGS@
-@PASS_R_END_RESULT@
-@PASS_R_END_RETURN@
-@PASS_R_ENT_ARGS@
-@PASS_R_OK@
-@PASS_R_RETURN@
-@PASS_R_SET_RESULT@
-@PASS_R_SET_RETURN@
-
-@SERV_R_ARGS@
-@SERV_R_BAD@
-@SERV_R_COPY@
-@SERV_R_COPY_ARGS@
-@SERV_R_END_RESULT@
-@SERV_R_END_RETURN@
-@SERV_R_ENT_ARGS@
-@SERV_R_ENT_UNUSED@
-@SERV_R_OK@
-@SERV_R_SETANSWER@
-@SERV_R_RETURN@
-@SERV_R_SET_RESULT@
-@SERV_R_SET_RETURN@
-@SERVENT_DATA@
-
-
-#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)
-
-@SOLARIS_BITTYPES@
-@ISC_SOCKLEN_T@
-
-#ifdef __GNUC__
-#define ISC_FORMAT_PRINTF(fmt, args) \
-       __attribute__((__format__(__printf__, fmt, args)))
-#else
-#define ISC_FORMAT_PRINTF(fmt, args)
-#endif
-
-/* Pull in host order macros when _XOPEN_SOURCE_EXTENDED is defined. */
-#if defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED)
-#include <sys/byteorder.h>
-#endif
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/resolv/.cvsignore b/lib/bind/resolv/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/bind/resolv/Makefile.in b/lib/bind/resolv/Makefile.in
deleted file mode 100644 (file)
index 04748dd..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2004, 2005, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
-# Copyright (C) 2001  Internet Software Consortium.
-#
-# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS.  IN NO EVENT SHALL ISC 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: Makefile.in,v 1.10 2008/03/20 23:47:00 tbox Exp $
-
-srcdir=                @srcdir@
-VPATH =         @srcdir@
-
-OBJS=  herror.@O@ mtctxres.@O@ res_comp.@O@ res_data.@O@ res_debug.@O@ \
-       res_findzonecut.@O@ res_init.@O@ res_mkquery.@O@ res_mkupdate.@O@ \
-       res_query.@O@ res_send.@O@ res_sendsigned.@O@ res_update.@O@
-
-SRCS=  herror.c mtctxres.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
-
-TARGETS= ${OBJS}
-
-CINCLUDES= -I.. -I../include -I${srcdir}/../include
-CWARNINGS=
-
-@BIND9_MAKE_RULES@
diff --git a/lib/bind/resolv/herror.c b/lib/bind/resolv/herror.c
deleted file mode 100644 (file)
index 703ab8f..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 1987, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)herror.c     8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: herror.c,v 1.4 2005/04/27 04:56:41 sra Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/uio.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-
-#include <netdb.h>
-#include <resolv.h>
-#include <string.h>
-#include <unistd.h>
-#include <irs.h>
-
-#include "port_after.h"
-
-const char *h_errlist[] = {
-       "Resolver Error 0 (no error)",
-       "Unknown host",                         /*%< 1 HOST_NOT_FOUND */
-       "Host name lookup failure",             /*%< 2 TRY_AGAIN */
-       "Unknown server error",                 /*%< 3 NO_RECOVERY */
-       "No address associated with name",      /*%< 4 NO_ADDRESS */
-};
-int    h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
-
-#if !(__GLIBC__ > 2 || __GLIBC__ == 2 &&  __GLIBC_MINOR__ >= 3)
-#undef h_errno
-int    h_errno;
-#endif
-
-/*%
- * herror --
- *     print the error indicated by the h_errno value.
- */
-void
-herror(const char *s) {
-       struct iovec iov[4], *v = iov;
-       char *t;
-
-       if (s != NULL && *s != '\0') {
-               DE_CONST(s, t);
-               v->iov_base = t;
-               v->iov_len = strlen(t);
-               v++;
-               DE_CONST(": ", t);
-               v->iov_base = t;
-               v->iov_len = 2;
-               v++;
-       }
-       DE_CONST(hstrerror(*__h_errno()), t);
-       v->iov_base = t;
-       v->iov_len = strlen(v->iov_base);
-       v++;
-       DE_CONST("\n", t);
-       v->iov_base = t;
-       v->iov_len = 1;
-       writev(STDERR_FILENO, iov, (v - iov) + 1);
-}
-
-/*%
- * hstrerror --
- *     return the string associated with a given "host" errno value.
- */
-const char *
-hstrerror(int err) {
-       if (err < 0)
-               return ("Resolver internal error");
-       else if (err < h_nerr)
-               return (h_errlist[err]);
-       return ("Unknown resolver error");
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/mtctxres.c b/lib/bind/resolv/mtctxres.c
deleted file mode 100644 (file)
index 635bbd4..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#include <port_before.h>
-#ifdef DO_PTHREADS
-#include <pthread.h>
-#endif
-#include <errno.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <string.h>
-#include <resolv_mt.h>
-#include <irs.h>
-#include <port_after.h>
-
-#ifdef DO_PTHREADS
-static pthread_key_t   key;
-static int             mt_key_initialized = 0;
-
-static int             __res_init_ctx(void);
-static void            __res_destroy_ctx(void *);
-
-#if defined(sun) && !defined(__GNUC__)
-#pragma init   (_mtctxres_init)
-#endif
-#endif
-
-static mtctxres_t      sharedctx;
-
-#ifdef DO_PTHREADS
-/*
- * Initialize the TSD key. By doing this at library load time, we're
- * implicitly running without interference from other threads, so there's
- * no need for locking.
- */
-static void
-_mtctxres_init(void) {
-       int pthread_keycreate_ret;
-
-       pthread_keycreate_ret = pthread_key_create(&key, __res_destroy_ctx);
-       if (pthread_keycreate_ret == 0)
-               mt_key_initialized = 1;
-}
-#endif
-
-/*
- * To support binaries that used the private MT-safe interface in
- * Solaris 8, we still need to provide the __res_enable_mt()
- * and __res_disable_mt() entry points. They're do-nothing routines.
- */
-int
-__res_enable_mt(void) {
-       return (-1);
-}
-
-int
-__res_disable_mt(void) {
-       return (0);
-}
-
-#ifdef DO_PTHREADS
-static int
-__res_init_ctx(void) {
-
-       mtctxres_t      *mt;
-       int             ret;
-
-
-       if (pthread_getspecific(key) != 0) {
-               /* Already exists */
-               return (0);
-       }
-
-       if ((mt = malloc(sizeof (mtctxres_t))) == 0) {
-               errno = ENOMEM;
-               return (-1);
-       }
-
-       memset(mt, 0, sizeof (mtctxres_t));
-
-       if ((ret = pthread_setspecific(key, mt)) != 0) {
-               free(mt);
-               errno = ret;
-               return (-1);
-       }
-
-       return (0);
-}
-
-static void
-__res_destroy_ctx(void *value) {
-
-       mtctxres_t      *mt = (mtctxres_t *)value;
-
-       if (mt != 0)
-               free(mt);
-}
-#endif
-
-mtctxres_t *
-___mtctxres(void) {
-#ifdef DO_PTHREADS
-       mtctxres_t      *mt;
-
-       /*
-        * This if clause should only be executed if we are linking
-        * statically.  When linked dynamically _mtctxres_init() should
-        * be called at binding time due the #pragma above.
-        */
-       if (!mt_key_initialized) {
-               static pthread_mutex_t keylock = PTHREAD_MUTEX_INITIALIZER;
-                if (pthread_mutex_lock(&keylock) == 0) {
-                       _mtctxres_init();
-                       (void) pthread_mutex_unlock(&keylock);
-               }
-       }
-
-       /*
-        * If we have already been called in this thread return the existing
-        * context.  Otherwise recreat a new context and return it.  If
-        * that fails return a global context.
-        */
-       if (mt_key_initialized) {
-               if (((mt = pthread_getspecific(key)) != 0) ||
-                   (__res_init_ctx() == 0 &&
-                    (mt = pthread_getspecific(key)) != 0)) {
-                       return (mt);
-               }
-       }
-#endif
-       return (&sharedctx);
-}
diff --git a/lib/bind/resolv/res_comp.c b/lib/bind/resolv/res_comp.c
deleted file mode 100644 (file)
index 08a66b2..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (c) 1985, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_comp.c   8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_comp.c,v 1.5 2005/07/28 06:51:50 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <ctype.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include "port_after.h"
-
-/*%
- * Expand compressed domain name 'src' to full domain name.
- *
- * \li 'msg' is a pointer to the begining of the message,
- * \li 'eom' points to the first location after the message,
- * \li 'dst' is a pointer to a buffer of size 'dstsiz' for the result.
- * \li Return size of compressed name or -1 if there was an error.
- */
-int
-dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
-         char *dst, int dstsiz)
-{
-       int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
-
-       if (n > 0 && dst[0] == '.')
-               dst[0] = '\0';
-       return (n);
-}
-
-/*%
- * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
- *
- * \li Return the size of the compressed name or -1.
- * \li 'length' is the size of the array pointed to by 'comp_dn'.
- */
-int
-dn_comp(const char *src, u_char *dst, int dstsiz,
-       u_char **dnptrs, u_char **lastdnptr)
-{
-       return (ns_name_compress(src, dst, (size_t)dstsiz,
-                                (const u_char **)dnptrs,
-                                (const u_char **)lastdnptr));
-}
-
-/*%
- * Skip over a compressed domain name. Return the size or -1.
- */
-int
-dn_skipname(const u_char *ptr, const u_char *eom) {
-       const u_char *saveptr = ptr;
-
-       if (ns_name_skip(&ptr, eom) == -1)
-               return (-1);
-       return (ptr - saveptr);
-}
-
-/*%
- * Verify that a domain name uses an acceptable character set.
- *
- * Note the conspicuous absence of ctype macros in these definitions.  On
- * non-ASCII hosts, we can't depend on string literals or ctype macros to
- * tell us anything about network-format data.  The rest of the BIND system
- * is not careful about this, but for some reason, we're doing it right here.
- */
-#define PERIOD 0x2e
-#define        hyphenchar(c) ((c) == 0x2d)
-#define bslashchar(c) ((c) == 0x5c)
-#define periodchar(c) ((c) == PERIOD)
-#define asterchar(c) ((c) == 0x2a)
-#define alphachar(c) (((c) >= 0x41 && (c) <= 0x5a) \
-                  || ((c) >= 0x61 && (c) <= 0x7a))
-#define digitchar(c) ((c) >= 0x30 && (c) <= 0x39)
-
-#define borderchar(c) (alphachar(c) || digitchar(c))
-#define middlechar(c) (borderchar(c) || hyphenchar(c))
-#define        domainchar(c) ((c) > 0x20 && (c) < 0x7f)
-
-int
-res_hnok(const char *dn) {
-       int pch = PERIOD, ch = *dn++;
-
-       while (ch != '\0') {
-               int nch = *dn++;
-
-               if (periodchar(ch)) {
-                       (void)NULL;
-               } else if (periodchar(pch)) {
-                       if (!borderchar(ch))
-                               return (0);
-               } else if (periodchar(nch) || nch == '\0') {
-                       if (!borderchar(ch))
-                               return (0);
-               } else {
-                       if (!middlechar(ch))
-                               return (0);
-               }
-               pch = ch, ch = nch;
-       }
-       return (1);
-}
-
-/*%
- * hostname-like (A, MX, WKS) owners can have "*" as their first label
- * but must otherwise be as a host name.
- */
-int
-res_ownok(const char *dn) {
-       if (asterchar(dn[0])) {
-               if (periodchar(dn[1]))
-                       return (res_hnok(dn+2));
-               if (dn[1] == '\0')
-                       return (1);
-       }
-       return (res_hnok(dn));
-}
-
-/*%
- * SOA RNAMEs and RP RNAMEs can have any printable character in their first
- * label, but the rest of the name has to look like a host name.
- */
-int
-res_mailok(const char *dn) {
-       int ch, escaped = 0;
-
-       /* "." is a valid missing representation */
-       if (*dn == '\0')
-               return (1);
-
-       /* otherwise <label>.<hostname> */
-       while ((ch = *dn++) != '\0') {
-               if (!domainchar(ch))
-                       return (0);
-               if (!escaped && periodchar(ch))
-                       break;
-               if (escaped)
-                       escaped = 0;
-               else if (bslashchar(ch))
-                       escaped = 1;
-       }
-       if (periodchar(ch))
-               return (res_hnok(dn));
-       return (0);
-}
-
-/*%
- * This function is quite liberal, since RFC1034's character sets are only
- * recommendations.
- */
-int
-res_dnok(const char *dn) {
-       int ch;
-
-       while ((ch = *dn++) != '\0')
-               if (!domainchar(ch))
-                       return (0);
-       return (1);
-}
-
-#ifdef BIND_4_COMPAT
-/*%
- * This module must export the following externally-visible symbols:
- *     ___putlong
- *     ___putshort
- *     __getlong
- *     __getshort
- * Note that one _ comes from C and the others come from us.
- */
-
-#ifdef SOLARIS2
-#ifdef  __putlong
-#undef  __putlong
-#endif
-#ifdef  __putshort
-#undef  __putshort
-#endif
-#pragma weak    putlong         =       __putlong
-#pragma weak    putshort        =       __putshort
-#endif /* SOLARIS2 */
-
-void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); }
-void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); }
-#ifndef __ultrix__
-u_int32_t _getlong(const u_char *src) { return (ns_get32(src)); }
-u_int16_t _getshort(const u_char *src) { return (ns_get16(src)); }
-#endif /*__ultrix__*/
-#endif /*BIND_4_COMPAT*/
-
-/*! \file */
diff --git a/lib/bind/resolv/res_data.c b/lib/bind/resolv/res_data.c
deleted file mode 100644 (file)
index be5a125..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1995-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: res_data.c,v 1.5 2007/09/14 05:32:25 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <res_update.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "port_after.h"
-
-const char *_res_opcodes[] = {
-       "QUERY",
-       "IQUERY",
-       "CQUERYM",
-       "CQUERYU",      /*%< experimental */
-       "NOTIFY",       /*%< experimental */
-       "UPDATE",
-       "6",
-       "7",
-       "8",
-       "9",
-       "10",
-       "11",
-       "12",
-       "13",
-       "ZONEINIT",
-       "ZONEREF",
-};
-
-#ifdef BIND_UPDATE
-const char *_res_sectioncodes[] = {
-       "ZONE",
-       "PREREQUISITES",
-       "UPDATE",
-       "ADDITIONAL",
-};
-#endif
-
-#undef _res
-#ifndef __BIND_NOSTATIC
-struct __res_state _res
-# if defined(__BIND_RES_TEXT)
-       = { RES_TIMEOUT, }      /*%< Motorola, et al. */
-# endif
-        ;
-
-#if defined(DO_PTHREADS) || defined(__linux)
-#define _res (*__res_state())
-#endif
-
-/* Proto. */
-
-int  res_ourserver_p(const res_state, const struct sockaddr_in *);
-
-int
-res_init(void) {
-       extern int __res_vinit(res_state, int);
-
-       /*
-        * These three fields used to be statically initialized.  This made
-        * it hard to use this code in a shared library.  It is necessary,
-        * now that we're doing dynamic initialization here, that we preserve
-        * the old semantics: if an application modifies one of these three
-        * fields of _res before res_init() is called, res_init() will not
-        * alter them.  Of course, if an application is setting them to
-        * _zero_ before calling res_init(), hoping to override what used
-        * to be the static default, we can't detect it and unexpected results
-        * will follow.  Zero for any of these fields would make no sense,
-        * so one can safely assume that the applications were already getting
-        * unexpected results.
-        *
-        * _res.options is tricky since some apps were known to diddle the bits
-        * before res_init() was first called. We can't replicate that semantic
-        * with dynamic initialization (they may have turned bits off that are
-        * set in RES_DEFAULT).  Our solution is to declare such applications
-        * "broken".  They could fool us by setting RES_INIT but none do (yet).
-        */
-       if (!_res.retrans)
-               _res.retrans = RES_TIMEOUT;
-       if (!_res.retry)
-               _res.retry = 4;
-       if (!(_res.options & RES_INIT))
-               _res.options = RES_DEFAULT;
-
-       /*
-        * This one used to initialize implicitly to zero, so unless the app
-        * has set it to something in particular, we can randomize it now.
-        */
-       if (!_res.id)
-               _res.id = res_randomid();
-
-       return (__res_vinit(&_res, 1));
-}
-
-void
-p_query(const u_char *msg) {
-       fp_query(msg, stdout);
-}
-
-void
-fp_query(const u_char *msg, FILE *file) {
-       fp_nquery(msg, PACKETSZ, file);
-}
-
-void
-fp_nquery(const u_char *msg, int len, FILE *file) {
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1)
-               return;
-
-       res_pquery(&_res, msg, len, file);
-}
-
-int
-res_mkquery(int op,                    /*!< opcode of query  */
-           const char *dname,          /*!< domain name  */
-           int class, int type,        /*!< class and type of query  */
-           const u_char *data,         /*!< resource record data  */
-           int datalen,                /*!< length of data  */
-           const u_char *newrr_in,     /*!< new rr for modify or append  */
-           u_char *buf,                /*!< buffer to put query  */
-           int buflen)                 /*!< size of buffer  */
-{
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-       return (res_nmkquery(&_res, op, dname, class, type,
-                            data, datalen,
-                            newrr_in, buf, buflen));
-}
-
-int
-res_mkupdate(ns_updrec *rrecp_in, u_char *buf, int buflen) {
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-
-       return (res_nmkupdate(&_res, rrecp_in, buf, buflen));
-}
-
-int
-res_query(const char *name,    /*!< domain name  */
-         int class, int type,  /*!< class and type of query  */
-         u_char *answer,       /*!< buffer to put answer  */
-         int anslen)           /*!< size of answer buffer  */
-{
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-       return (res_nquery(&_res, name, class, type, answer, anslen));
-}
-
-void
-res_send_setqhook(res_send_qhook hook) {
-       _res.qhook = hook;
-}
-
-void
-res_send_setrhook(res_send_rhook hook) {
-       _res.rhook = hook;
-}
-
-int
-res_isourserver(const struct sockaddr_in *inp) {
-       return (res_ourserver_p(&_res, inp));
-}
-
-int
-res_send(const u_char *buf, int buflen, u_char *ans, int anssiz) {
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               /* errno should have been set by res_init() in this case. */
-               return (-1);
-       }
-
-       return (res_nsend(&_res, buf, buflen, ans, anssiz));
-}
-
-int
-res_sendsigned(const u_char *buf, int buflen, ns_tsig_key *key,
-              u_char *ans, int anssiz)
-{
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               /* errno should have been set by res_init() in this case. */
-               return (-1);
-       }
-
-       return (res_nsendsigned(&_res, buf, buflen, key, ans, anssiz));
-}
-
-void
-res_close(void) {
-       res_nclose(&_res);
-}
-
-int
-res_update(ns_updrec *rrecp_in) {
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-
-       return (res_nupdate(&_res, rrecp_in, NULL));
-}
-
-int
-res_search(const char *name,   /*!< domain name  */
-          int class, int type, /*!< class and type of query  */
-          u_char *answer,      /*!< buffer to put answer  */
-          int anslen)          /*!< size of answer  */
-{
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-
-       return (res_nsearch(&_res, name, class, type, answer, anslen));
-}
-
-int
-res_querydomain(const char *name,
-               const char *domain,
-               int class, int type,    /*!< class and type of query  */
-               u_char *answer,         /*!< buffer to put answer  */
-               int anslen)             /*!< size of answer  */
-{
-       if ((_res.options & RES_INIT) == 0U && res_init() == -1) {
-               RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
-               return (-1);
-       }
-
-       return (res_nquerydomain(&_res, name, domain,
-                                class, type,
-                                answer, anslen));
-}
-
-const char *
-hostalias(const char *name) {
-       static char abuf[MAXDNAME];
-
-       return (res_hostalias(&_res, name, abuf, sizeof abuf));
-}
-
-#ifdef ultrix
-int
-local_hostname_length(const char *hostname) {
-       int len_host, len_domain;
-
-       if (!*_res.defdname)
-               res_init();
-       len_host = strlen(hostname);
-       len_domain = strlen(_res.defdname);
-       if (len_host > len_domain &&
-           !strcasecmp(hostname + len_host - len_domain, _res.defdname) &&
-           hostname[len_host - len_domain - 1] == '.')
-               return (len_host - len_domain - 1);
-       return (0);
-}
-#endif /*ultrix*/
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/resolv/res_debug.c b/lib/bind/resolv/res_debug.c
deleted file mode 100644 (file)
index 36ae360..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-/*
- * Copyright (c) 1985
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_debug.c  8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_debug.c,v 1.16 2008/04/03 02:01:08 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <math.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <resolv_mt.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include "port_after.h"
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
-extern const char *_res_opcodes[];
-extern const char *_res_sectioncodes[];
-
-/*%
- * Print the current options.
- */
-void
-fp_resstat(const res_state statp, FILE *file) {
-       u_long mask;
-
-       fprintf(file, ";; res options:");
-       for (mask = 1;  mask != 0U;  mask <<= 1)
-               if (statp->options & mask)
-                       fprintf(file, " %s", p_option(mask));
-       putc('\n', file);
-}
-
-static void
-do_section(const res_state statp,
-          ns_msg *handle, ns_sect section,
-          int pflag, FILE *file)
-{
-       int n, sflag, rrnum;
-       static int buflen = 2048;
-       char *buf;
-       ns_opcode opcode;
-       ns_rr rr;
-
-       /*
-        * Print answer records.
-        */
-       sflag = (statp->pfcode & pflag);
-       if (statp->pfcode && !sflag)
-               return;
-
-       buf = malloc(buflen);
-       if (buf == NULL) {
-               fprintf(file, ";; memory allocation failure\n");
-               return;
-       }
-
-       opcode = (ns_opcode) ns_msg_getflag(*handle, ns_f_opcode);
-       rrnum = 0;
-       for (;;) {
-               if (ns_parserr(handle, section, rrnum, &rr)) {
-                       if (errno != ENODEV)
-                               fprintf(file, ";; ns_parserr: %s\n",
-                                       strerror(errno));
-                       else if (rrnum > 0 && sflag != 0 &&
-                                (statp->pfcode & RES_PRF_HEAD1))
-                               putc('\n', file);
-                       goto cleanup;
-               }
-               if (rrnum == 0 && sflag != 0 && (statp->pfcode & RES_PRF_HEAD1))
-                       fprintf(file, ";; %s SECTION:\n",
-                               p_section(section, opcode));
-               if (section == ns_s_qd)
-                       fprintf(file, ";;\t%s, type = %s, class = %s\n",
-                               ns_rr_name(rr),
-                               p_type(ns_rr_type(rr)),
-                               p_class(ns_rr_class(rr)));
-               else if (section == ns_s_ar && ns_rr_type(rr) == ns_t_opt) {
-                       u_int16_t optcode, optlen, rdatalen = ns_rr_rdlen(rr);
-                       u_int32_t ttl = ns_rr_ttl(rr);
-
-                       fprintf(file,
-                               "; EDNS: version: %u, udp=%u, flags=%04x\n",
-                               (ttl>>16)&0xff, ns_rr_class(rr), ttl&0xffff);
-
-                       while (rdatalen >= 4) {
-                               const u_char *cp = ns_rr_rdata(rr);
-                               int i;
-
-                               GETSHORT(optcode, cp);
-                               GETSHORT(optlen, cp);
-
-                               if (optcode == NS_OPT_NSID) {
-                                       fputs("; NSID: ", file);
-                                       if (optlen == 0) {
-                                               fputs("; NSID\n", file);
-                                       } else {
-                                               fputs("; NSID: ", file);
-                                               for (i = 0; i < optlen; i++)
-                                                       fprintf(file, "%02x ",
-                                                               cp[i]);
-                                               fputs(" (",file);
-                                               for (i = 0; i < optlen; i++)
-                                                       fprintf(file, "%c",
-                                                               isprint(cp[i])?
-                                                               cp[i] : '.');
-                                               fputs(")\n", file);
-                                       }
-                               } else {
-                                       if (optlen == 0) {
-                                               fprintf(file, "; OPT=%u\n",
-                                                       optcode);
-                                       } else {
-                                               fprintf(file, "; OPT=%u: ",
-                                                       optcode);
-                                               for (i = 0; i < optlen; i++)
-                                                       fprintf(file, "%02x ",
-                                                               cp[i]);
-                                               fputs(" (",file);
-                                               for (i = 0; i < optlen; i++)
-                                                       fprintf(file, "%c",
-                                                               isprint(cp[i]) ?
-                                                                       cp[i] : '.');
-                                               fputs(")\n", file);
-                                       }
-                               }
-                               rdatalen -= 4 + optlen;
-                       }
-               } else {
-                       n = ns_sprintrr(handle, &rr, NULL, NULL,
-                                       buf, buflen);
-                       if (n < 0) {
-                               if (errno == ENOSPC) {
-                                       free(buf);
-                                       buf = NULL;
-                                       if (buflen < 131072)
-                                               buf = malloc(buflen += 1024);
-                                       if (buf == NULL) {
-                                               fprintf(file,
-                                             ";; memory allocation failure\n");
-                                             return;
-                                       }
-                                       continue;
-                               }
-                               fprintf(file, ";; ns_sprintrr: %s\n",
-                                       strerror(errno));
-                               goto cleanup;
-                       }
-                       fputs(buf, file);
-                       fputc('\n', file);
-               }
-               rrnum++;
-       }
- cleanup:
-       if (buf != NULL)
-               free(buf);
-}
-
-/*%
- * Print the contents of a query.
- * This is intended to be primarily a debugging routine.
- */
-void
-res_pquery(const res_state statp, const u_char *msg, int len, FILE *file) {
-       ns_msg handle;
-       int qdcount, ancount, nscount, arcount;
-       u_int opcode, rcode, id;
-
-       if (ns_initparse(msg, len, &handle) < 0) {
-               fprintf(file, ";; ns_initparse: %s\n", strerror(errno));
-               return;
-       }
-       opcode = ns_msg_getflag(handle, ns_f_opcode);
-       rcode = ns_msg_getflag(handle, ns_f_rcode);
-       id = ns_msg_id(handle);
-       qdcount = ns_msg_count(handle, ns_s_qd);
-       ancount = ns_msg_count(handle, ns_s_an);
-       nscount = ns_msg_count(handle, ns_s_ns);
-       arcount = ns_msg_count(handle, ns_s_ar);
-
-       /*
-        * Print header fields.
-        */
-       if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEADX) || rcode)
-               fprintf(file,
-                       ";; ->>HEADER<<- opcode: %s, status: %s, id: %d\n",
-                       _res_opcodes[opcode], p_rcode(rcode), id);
-       if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEADX))
-               putc(';', file);
-       if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEAD2)) {
-               fprintf(file, "; flags:");
-               if (ns_msg_getflag(handle, ns_f_qr))
-                       fprintf(file, " qr");
-               if (ns_msg_getflag(handle, ns_f_aa))
-                       fprintf(file, " aa");
-               if (ns_msg_getflag(handle, ns_f_tc))
-                       fprintf(file, " tc");
-               if (ns_msg_getflag(handle, ns_f_rd))
-                       fprintf(file, " rd");
-               if (ns_msg_getflag(handle, ns_f_ra))
-                       fprintf(file, " ra");
-               if (ns_msg_getflag(handle, ns_f_z))
-                       fprintf(file, " ??");
-               if (ns_msg_getflag(handle, ns_f_ad))
-                       fprintf(file, " ad");
-               if (ns_msg_getflag(handle, ns_f_cd))
-                       fprintf(file, " cd");
-       }
-       if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEAD1)) {
-               fprintf(file, "; %s: %d",
-                       p_section(ns_s_qd, opcode), qdcount);
-               fprintf(file, ", %s: %d",
-                       p_section(ns_s_an, opcode), ancount);
-               fprintf(file, ", %s: %d",
-                       p_section(ns_s_ns, opcode), nscount);
-               fprintf(file, ", %s: %d",
-                       p_section(ns_s_ar, opcode), arcount);
-       }
-       if ((!statp->pfcode) || (statp->pfcode & 
-               (RES_PRF_HEADX | RES_PRF_HEAD2 | RES_PRF_HEAD1))) {
-               putc('\n',file);
-       }
-       /*
-        * Print the various sections.
-        */
-       do_section(statp, &handle, ns_s_qd, RES_PRF_QUES, file);
-       do_section(statp, &handle, ns_s_an, RES_PRF_ANS, file);
-       do_section(statp, &handle, ns_s_ns, RES_PRF_AUTH, file);
-       do_section(statp, &handle, ns_s_ar, RES_PRF_ADD, file);
-       if (qdcount == 0 && ancount == 0 &&
-           nscount == 0 && arcount == 0)
-               putc('\n', file);
-}
-
-const u_char *
-p_cdnname(const u_char *cp, const u_char *msg, int len, FILE *file) {
-       char name[MAXDNAME];
-       int n;
-
-       if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0)
-               return (NULL);
-       if (name[0] == '\0')
-               putc('.', file);
-       else
-               fputs(name, file);
-       return (cp + n);
-}
-
-const u_char *
-p_cdname(const u_char *cp, const u_char *msg, FILE *file) {
-       return (p_cdnname(cp, msg, PACKETSZ, file));
-}
-
-/*%
- * Return a fully-qualified domain name from a compressed name (with
-   length supplied).  */
-
-const u_char *
-p_fqnname(cp, msg, msglen, name, namelen)
-       const u_char *cp, *msg;
-       int msglen;
-       char *name;
-       int namelen;
-{
-       int n, newlen;
-
-       if ((n = dn_expand(msg, cp + msglen, cp, name, namelen)) < 0)
-               return (NULL);
-       newlen = strlen(name);
-       if (newlen == 0 || name[newlen - 1] != '.') {
-               if (newlen + 1 >= namelen)      /*%< Lack space for final dot */
-                       return (NULL);
-               else
-                       strcpy(name + newlen, ".");
-       }
-       return (cp + n);
-}
-
-/* XXX:        the rest of these functions need to become length-limited, too. */
-
-const u_char *
-p_fqname(const u_char *cp, const u_char *msg, FILE *file) {
-       char name[MAXDNAME];
-       const u_char *n;
-
-       n = p_fqnname(cp, msg, MAXCDNAME, name, sizeof name);
-       if (n == NULL)
-               return (NULL);
-       fputs(name, file);
-       return (n);
-}
-
-/*%
- * Names of RR classes and qclasses.  Classes and qclasses are the same, except
- * that C_ANY is a qclass but not a class.  (You can ask for records of class
- * C_ANY, but you can't have any records of that class in the database.)
- */
-const struct res_sym __p_class_syms[] = {
-       {C_IN,          "IN",           (char *)0},
-       {C_CHAOS,       "CH",           (char *)0},
-       {C_CHAOS,       "CHAOS",        (char *)0},
-       {C_HS,          "HS",           (char *)0},
-       {C_HS,          "HESIOD",       (char *)0},
-       {C_ANY,         "ANY",          (char *)0},
-       {C_NONE,        "NONE",         (char *)0},
-       {C_IN,          (char *)0,      (char *)0}
-};
-
-/*%
- * Names of message sections.
- */
-const struct res_sym __p_default_section_syms[] = {
-       {ns_s_qd,       "QUERY",        (char *)0},
-       {ns_s_an,       "ANSWER",       (char *)0},
-       {ns_s_ns,       "AUTHORITY",    (char *)0},
-       {ns_s_ar,       "ADDITIONAL",   (char *)0},
-       {0,             (char *)0,      (char *)0}
-};
-
-const struct res_sym __p_update_section_syms[] = {
-       {S_ZONE,        "ZONE",         (char *)0},
-       {S_PREREQ,      "PREREQUISITE", (char *)0},
-       {S_UPDATE,      "UPDATE",       (char *)0},
-       {S_ADDT,        "ADDITIONAL",   (char *)0},
-       {0,             (char *)0,      (char *)0}
-};
-
-const struct res_sym __p_key_syms[] = {
-       {NS_ALG_MD5RSA,         "RSA",          "RSA KEY with MD5 hash"},
-       {NS_ALG_DH,             "DH",           "Diffie Hellman"},
-       {NS_ALG_DSA,            "DSA",          "Digital Signature Algorithm"},
-       {NS_ALG_EXPIRE_ONLY,    "EXPIREONLY",   "No algorithm"},
-       {NS_ALG_PRIVATE_OID,    "PRIVATE",      "Algorithm obtained from OID"},
-       {0,                     NULL,           NULL}
-};
-
-const struct res_sym __p_cert_syms[] = {
-       {cert_t_pkix,   "PKIX",         "PKIX (X.509v3) Certificate"},
-       {cert_t_spki,   "SPKI",         "SPKI certificate"},
-       {cert_t_pgp,    "PGP",          "PGP certificate"},
-       {cert_t_url,    "URL",          "URL Private"},
-       {cert_t_oid,    "OID",          "OID Private"},
-       {0,             NULL,           NULL}
-};
-
-/*%
- * Names of RR types and qtypes.  Types and qtypes are the same, except
- * that T_ANY is a qtype but not a type.  (You can ask for records of type
- * T_ANY, but you can't have any records of that type in the database.)
- */
-const struct res_sym __p_type_syms[] = {
-       {ns_t_a,        "A",            "address"},
-       {ns_t_ns,       "NS",           "name server"},
-       {ns_t_md,       "MD",           "mail destination (deprecated)"},
-       {ns_t_mf,       "MF",           "mail forwarder (deprecated)"},
-       {ns_t_cname,    "CNAME",        "canonical name"},
-       {ns_t_soa,      "SOA",          "start of authority"},
-       {ns_t_mb,       "MB",           "mailbox"},
-       {ns_t_mg,       "MG",           "mail group member"},
-       {ns_t_mr,       "MR",           "mail rename"},
-       {ns_t_null,     "NULL",         "null"},
-       {ns_t_wks,      "WKS",          "well-known service (deprecated)"},
-       {ns_t_ptr,      "PTR",          "domain name pointer"},
-       {ns_t_hinfo,    "HINFO",        "host information"},
-       {ns_t_minfo,    "MINFO",        "mailbox information"},
-       {ns_t_mx,       "MX",           "mail exchanger"},
-       {ns_t_txt,      "TXT",          "text"},
-       {ns_t_rp,       "RP",           "responsible person"},
-       {ns_t_afsdb,    "AFSDB",        "DCE or AFS server"},
-       {ns_t_x25,      "X25",          "X25 address"},
-       {ns_t_isdn,     "ISDN",         "ISDN address"},
-       {ns_t_rt,       "RT",           "router"},
-       {ns_t_nsap,     "NSAP",         "nsap address"},
-       {ns_t_nsap_ptr, "NSAP_PTR",     "domain name pointer"},
-       {ns_t_sig,      "SIG",          "signature"},
-       {ns_t_key,      "KEY",          "key"},
-       {ns_t_px,       "PX",           "mapping information"},
-       {ns_t_gpos,     "GPOS",         "geographical position (withdrawn)"},
-       {ns_t_aaaa,     "AAAA",         "IPv6 address"},
-       {ns_t_loc,      "LOC",          "location"},
-       {ns_t_nxt,      "NXT",          "next valid name (unimplemented)"},
-       {ns_t_eid,      "EID",          "endpoint identifier (unimplemented)"},
-       {ns_t_nimloc,   "NIMLOC",       "NIMROD locator (unimplemented)"},
-       {ns_t_srv,      "SRV",          "server selection"},
-       {ns_t_atma,     "ATMA",         "ATM address (unimplemented)"},
-       {ns_t_tkey,     "TKEY",         "tkey"},
-       {ns_t_tsig,     "TSIG",         "transaction signature"},
-       {ns_t_ixfr,     "IXFR",         "incremental zone transfer"},
-       {ns_t_axfr,     "AXFR",         "zone transfer"},
-       {ns_t_zxfr,     "ZXFR",         "compressed zone transfer"},
-       {ns_t_mailb,    "MAILB",        "mailbox-related data (deprecated)"},
-       {ns_t_maila,    "MAILA",        "mail agent (deprecated)"},
-       {ns_t_naptr,    "NAPTR",        "URN Naming Authority"},
-       {ns_t_kx,       "KX",           "Key Exchange"},
-       {ns_t_cert,     "CERT",         "Certificate"},
-       {ns_t_a6,       "A6",           "IPv6 Address"},
-       {ns_t_dname,    "DNAME",        "dname"},
-       {ns_t_sink,     "SINK",         "Kitchen Sink (experimental)"},
-       {ns_t_opt,      "OPT",          "EDNS Options"},
-       {ns_t_any,      "ANY",          "\"any\""},
-       {0,             NULL,           NULL}
-};
-
-/*%
- * Names of DNS rcodes.
- */
-const struct res_sym __p_rcode_syms[] = {
-       {ns_r_noerror,  "NOERROR",              "no error"},
-       {ns_r_formerr,  "FORMERR",              "format error"},
-       {ns_r_servfail, "SERVFAIL",             "server failed"},
-       {ns_r_nxdomain, "NXDOMAIN",             "no such domain name"},
-       {ns_r_notimpl,  "NOTIMP",               "not implemented"},
-       {ns_r_refused,  "REFUSED",              "refused"},
-       {ns_r_yxdomain, "YXDOMAIN",             "domain name exists"},
-       {ns_r_yxrrset,  "YXRRSET",              "rrset exists"},
-       {ns_r_nxrrset,  "NXRRSET",              "rrset doesn't exist"},
-       {ns_r_notauth,  "NOTAUTH",              "not authoritative"},
-       {ns_r_notzone,  "NOTZONE",              "Not in zone"},
-       {ns_r_max,      "",                     ""},
-       {ns_r_badsig,   "BADSIG",               "bad signature"},
-       {ns_r_badkey,   "BADKEY",               "bad key"},
-       {ns_r_badtime,  "BADTIME",              "bad time"},
-       {0,             NULL,                   NULL}
-};
-
-int
-sym_ston(const struct res_sym *syms, const char *name, int *success) {
-       for ((void)NULL; syms->name != 0; syms++) {
-               if (strcasecmp (name, syms->name) == 0) {
-                       if (success)
-                               *success = 1;
-                       return (syms->number);
-               }
-       }
-       if (success)
-               *success = 0;
-       return (syms->number);          /*%< The default value. */
-}
-
-const char *
-sym_ntos(const struct res_sym *syms, int number, int *success) {
-       char *unname = sym_ntos_unname;
-
-       for ((void)NULL; syms->name != 0; syms++) {
-               if (number == syms->number) {
-                       if (success)
-                               *success = 1;
-                       return (syms->name);
-               }
-       }
-
-       sprintf(unname, "%d", number);          /*%< XXX nonreentrant */
-       if (success)
-               *success = 0;
-       return (unname);
-}
-
-const char *
-sym_ntop(const struct res_sym *syms, int number, int *success) {
-       char *unname = sym_ntop_unname;
-
-       for ((void)NULL; syms->name != 0; syms++) {
-               if (number == syms->number) {
-                       if (success)
-                               *success = 1;
-                       return (syms->humanname);
-               }
-       }
-       sprintf(unname, "%d", number);          /*%< XXX nonreentrant */
-       if (success)
-               *success = 0;
-       return (unname);
-}
-
-/*%
- * Return a string for the type.
- */
-const char *
-p_type(int type) {
-       int success;
-       const char *result;
-       static char typebuf[20];
-
-       result = sym_ntos(__p_type_syms, type, &success);
-       if (success)
-               return (result);
-       if (type < 0 || type > 0xffff)
-               return ("BADTYPE");
-       sprintf(typebuf, "TYPE%d", type);
-       return (typebuf);
-}
-
-/*%
- * Return a string for the type.
- */
-const char *
-p_section(int section, int opcode) {
-       const struct res_sym *symbols;
-
-       switch (opcode) {
-       case ns_o_update:
-               symbols = __p_update_section_syms;
-               break;
-       default:
-               symbols = __p_default_section_syms;
-               break;
-       }
-       return (sym_ntos(symbols, section, (int *)0));
-}
-
-/*%
- * Return a mnemonic for class.
- */
-const char *
-p_class(int class) {
-       int success;
-       const char *result;
-       static char classbuf[20];
-
-       result = sym_ntos(__p_class_syms, class, &success);
-       if (success)
-               return (result);
-       if (class < 0 || class > 0xffff)
-               return ("BADCLASS");
-       sprintf(classbuf, "CLASS%d", class);
-       return (classbuf);
-}
-
-/*%
- * Return a mnemonic for an option
- */
-const char *
-p_option(u_long option) {
-       char *nbuf = p_option_nbuf;
-
-       switch (option) {
-       case RES_INIT:          return "init";
-       case RES_DEBUG:         return "debug";
-       case RES_AAONLY:        return "aaonly(unimpl)";
-       case RES_USEVC:         return "usevc";
-       case RES_PRIMARY:       return "primry(unimpl)";
-       case RES_IGNTC:         return "igntc";
-       case RES_RECURSE:       return "recurs";
-       case RES_DEFNAMES:      return "defnam";
-       case RES_STAYOPEN:      return "styopn";
-       case RES_DNSRCH:        return "dnsrch";
-       case RES_INSECURE1:     return "insecure1";
-       case RES_INSECURE2:     return "insecure2";
-       case RES_NOALIASES:     return "noaliases";
-       case RES_USE_INET6:     return "inet6";
-#ifdef RES_USE_EDNS0   /*%< KAME extension */
-       case RES_USE_EDNS0:     return "edns0";
-       case RES_NSID:          return "nsid";
-#endif
-#ifdef RES_USE_DNAME
-       case RES_USE_DNAME:     return "dname";
-#endif
-#ifdef RES_USE_DNSSEC
-       case RES_USE_DNSSEC:    return "dnssec";
-#endif
-#ifdef RES_NOTLDQUERY
-       case RES_NOTLDQUERY:    return "no-tld-query";
-#endif
-#ifdef RES_NO_NIBBLE2
-       case RES_NO_NIBBLE2:    return "no-nibble2";
-#endif
-                               /* XXX nonreentrant */
-       default:                sprintf(nbuf, "?0x%lx?", (u_long)option);
-                               return (nbuf);
-       }
-}
-
-/*%
- * Return a mnemonic for a time to live.
- */
-const char *
-p_time(u_int32_t value) {
-       char *nbuf = p_time_nbuf;
-
-       if (ns_format_ttl(value, nbuf, sizeof nbuf) < 0)
-               sprintf(nbuf, "%u", value);
-       return (nbuf);
-}
-
-/*%
- * Return a string for the rcode.
- */
-const char *
-p_rcode(int rcode) {
-       return (sym_ntos(__p_rcode_syms, rcode, (int *)0));
-}
-
-/*%
- * Return a string for a res_sockaddr_union.
- */
-const char *
-p_sockun(union res_sockaddr_union u, char *buf, size_t size) {
-       char ret[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:123.123.123.123"];
-
-       switch (u.sin.sin_family) {
-       case AF_INET:
-               inet_ntop(AF_INET, &u.sin.sin_addr, ret, sizeof ret);
-               break;
-#ifdef HAS_INET6_STRUCTS
-       case AF_INET6:
-               inet_ntop(AF_INET6, &u.sin6.sin6_addr, ret, sizeof ret);
-               break;
-#endif
-       default:
-               sprintf(ret, "[af%d]", u.sin.sin_family);
-               break;
-       }
-       if (size > 0U) {
-               strncpy(buf, ret, size - 1);
-               buf[size - 1] = '0';
-       }
-       return (buf);
-}
-
-/*%
- * routines to convert between on-the-wire RR format and zone file format.
- * Does not contain conversion to/from decimal degrees; divide or multiply
- * by 60*60*1000 for that.
- */
-
-static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000,
-                                     1000000,10000000,100000000,1000000000};
-
-/*% takes an XeY precision/size value, returns a string representation. */
-static const char *
-precsize_ntoa(prec)
-       u_int8_t prec;
-{
-       char *retbuf = precsize_ntoa_retbuf;
-       unsigned long val;
-       int mantissa, exponent;
-
-       mantissa = (int)((prec >> 4) & 0x0f) % 10;
-       exponent = (int)((prec >> 0) & 0x0f) % 10;
-
-       val = mantissa * poweroften[exponent];
-
-       (void) sprintf(retbuf, "%lu.%.2lu", val/100, val%100);
-       return (retbuf);
-}
-
-/*% converts ascii size/precision X * 10**Y(cm) to 0xXY.  moves pointer.  */
-static u_int8_t
-precsize_aton(const char **strptr) {
-       unsigned int mval = 0, cmval = 0;
-       u_int8_t retval = 0;
-       const char *cp;
-       int exponent;
-       int mantissa;
-
-       cp = *strptr;
-
-       while (isdigit((unsigned char)*cp))
-               mval = mval * 10 + (*cp++ - '0');
-
-       if (*cp == '.') {               /*%< centimeters */
-               cp++;
-               if (isdigit((unsigned char)*cp)) {
-                       cmval = (*cp++ - '0') * 10;
-                       if (isdigit((unsigned char)*cp)) {
-                               cmval += (*cp++ - '0');
-                       }
-               }
-       }
-       cmval = (mval * 100) + cmval;
-
-       for (exponent = 0; exponent < 9; exponent++)
-               if (cmval < poweroften[exponent+1])
-                       break;
-
-       mantissa = cmval / poweroften[exponent];
-       if (mantissa > 9)
-               mantissa = 9;
-
-       retval = (mantissa << 4) | exponent;
-
-       *strptr = cp;
-
-       return (retval);
-}
-
-/*% converts ascii lat/lon to unsigned encoded 32-bit number.  moves pointer. */
-static u_int32_t
-latlon2ul(const char **latlonstrptr, int *which) {
-       const char *cp;
-       u_int32_t retval;
-       int deg = 0, min = 0, secs = 0, secsfrac = 0;
-
-       cp = *latlonstrptr;
-
-       while (isdigit((unsigned char)*cp))
-               deg = deg * 10 + (*cp++ - '0');
-
-       while (isspace((unsigned char)*cp))
-               cp++;
-
-       if (!(isdigit((unsigned char)*cp)))
-               goto fndhemi;
-
-       while (isdigit((unsigned char)*cp))
-               min = min * 10 + (*cp++ - '0');
-
-       while (isspace((unsigned char)*cp))
-               cp++;
-
-       if (!(isdigit((unsigned char)*cp)))
-               goto fndhemi;
-
-       while (isdigit((unsigned char)*cp))
-               secs = secs * 10 + (*cp++ - '0');
-
-       if (*cp == '.') {               /*%< decimal seconds */
-               cp++;
-               if (isdigit((unsigned char)*cp)) {
-                       secsfrac = (*cp++ - '0') * 100;
-                       if (isdigit((unsigned char)*cp)) {
-                               secsfrac += (*cp++ - '0') * 10;
-                               if (isdigit((unsigned char)*cp)) {
-                                       secsfrac += (*cp++ - '0');
-                               }
-                       }
-               }
-       }
-
-       while (!isspace((unsigned char)*cp))    /*%< if any trailing garbage */
-               cp++;
-
-       while (isspace((unsigned char)*cp))
-               cp++;
-
- fndhemi:
-       switch (*cp) {
-       case 'N': case 'n':
-       case 'E': case 'e':
-               retval = ((unsigned)1<<31)
-                       + (((((deg * 60) + min) * 60) + secs) * 1000)
-                       + secsfrac;
-               break;
-       case 'S': case 's':
-       case 'W': case 'w':
-               retval = ((unsigned)1<<31)
-                       - (((((deg * 60) + min) * 60) + secs) * 1000)
-                       - secsfrac;
-               break;
-       default:
-               retval = 0;     /*%< invalid value -- indicates error */
-               break;
-       }
-
-       switch (*cp) {
-       case 'N': case 'n':
-       case 'S': case 's':
-               *which = 1;     /*%< latitude */
-               break;
-       case 'E': case 'e':
-       case 'W': case 'w':
-               *which = 2;     /*%< longitude */
-               break;
-       default:
-               *which = 0;     /*%< error */
-               break;
-       }
-
-       cp++;                   /*%< skip the hemisphere */
-       while (!isspace((unsigned char)*cp))    /*%< if any trailing garbage */
-               cp++;
-
-       while (isspace((unsigned char)*cp))     /*%< move to next field */
-               cp++;
-
-       *latlonstrptr = cp;
-
-       return (retval);
-}
-
-/*%
- * converts a zone file representation in a string to an RDATA on-the-wire
- * representation. */
-int
-loc_aton(ascii, binary)
-       const char *ascii;
-       u_char *binary;
-{
-       const char *cp, *maxcp;
-       u_char *bcp;
-
-       u_int32_t latit = 0, longit = 0, alt = 0;
-       u_int32_t lltemp1 = 0, lltemp2 = 0;
-       int altmeters = 0, altfrac = 0, altsign = 1;
-       u_int8_t hp = 0x16;     /*%< default = 1e6 cm = 10000.00m = 10km */
-       u_int8_t vp = 0x13;     /*%< default = 1e3 cm = 10.00m */
-       u_int8_t siz = 0x12;    /*%< default = 1e2 cm = 1.00m */
-       int which1 = 0, which2 = 0;
-
-       cp = ascii;
-       maxcp = cp + strlen(ascii);
-
-       lltemp1 = latlon2ul(&cp, &which1);
-
-       lltemp2 = latlon2ul(&cp, &which2);
-
-       switch (which1 + which2) {
-       case 3:                 /*%< 1 + 2, the only valid combination */
-               if ((which1 == 1) && (which2 == 2)) { /*%< normal case */
-                       latit = lltemp1;
-                       longit = lltemp2;
-               } else if ((which1 == 2) && (which2 == 1)) { /*%< reversed */
-                       longit = lltemp1;
-                       latit = lltemp2;
-               } else {        /*%< some kind of brokenness */
-                       return (0);
-               }
-               break;
-       default:                /*%< we didn't get one of each */
-               return (0);
-       }
-
-       /* altitude */
-       if (*cp == '-') {
-               altsign = -1;
-               cp++;
-       }
-    
-       if (*cp == '+')
-               cp++;
-
-       while (isdigit((unsigned char)*cp))
-               altmeters = altmeters * 10 + (*cp++ - '0');
-
-       if (*cp == '.') {               /*%< decimal meters */
-               cp++;
-               if (isdigit((unsigned char)*cp)) {
-                       altfrac = (*cp++ - '0') * 10;
-                       if (isdigit((unsigned char)*cp)) {
-                               altfrac += (*cp++ - '0');
-                       }
-               }
-       }
-
-       alt = (10000000 + (altsign * (altmeters * 100 + altfrac)));
-
-       while (!isspace((unsigned char)*cp) && (cp < maxcp)) /*%< if trailing garbage or m */
-               cp++;
-
-       while (isspace((unsigned char)*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       siz = precsize_aton(&cp);
-       
-       while (!isspace((unsigned char)*cp) && (cp < maxcp))    /*%< if trailing garbage or m */
-               cp++;
-
-       while (isspace((unsigned char)*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       hp = precsize_aton(&cp);
-
-       while (!isspace((unsigned char)*cp) && (cp < maxcp))    /*%< if trailing garbage or m */
-               cp++;
-
-       while (isspace((unsigned char)*cp) && (cp < maxcp))
-               cp++;
-
-       if (cp >= maxcp)
-               goto defaults;
-
-       vp = precsize_aton(&cp);
-
- defaults:
-
-       bcp = binary;
-       *bcp++ = (u_int8_t) 0;  /*%< version byte */
-       *bcp++ = siz;
-       *bcp++ = hp;
-       *bcp++ = vp;
-       PUTLONG(latit,bcp);
-       PUTLONG(longit,bcp);
-       PUTLONG(alt,bcp);
-    
-       return (16);            /*%< size of RR in octets */
-}
-
-/*% takes an on-the-wire LOC RR and formats it in a human readable format. */
-const char *
-loc_ntoa(binary, ascii)
-       const u_char *binary;
-       char *ascii;
-{
-       static const char *error = "?";
-       static char tmpbuf[sizeof
-"1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"];
-       const u_char *cp = binary;
-
-       int latdeg, latmin, latsec, latsecfrac;
-       int longdeg, longmin, longsec, longsecfrac;
-       char northsouth, eastwest;
-       const char *altsign;
-       int altmeters, altfrac;
-
-       const u_int32_t referencealt = 100000 * 100;
-
-       int32_t latval, longval, altval;
-       u_int32_t templ;
-       u_int8_t sizeval, hpval, vpval, versionval;
-    
-       char *sizestr, *hpstr, *vpstr;
-
-       versionval = *cp++;
-
-       if (ascii == NULL)
-               ascii = tmpbuf;
-
-       if (versionval) {
-               (void) sprintf(ascii, "; error: unknown LOC RR version");
-               return (ascii);
-       }
-
-       sizeval = *cp++;
-
-       hpval = *cp++;
-       vpval = *cp++;
-
-       GETLONG(templ, cp);
-       latval = (templ - ((unsigned)1<<31));
-
-       GETLONG(templ, cp);
-       longval = (templ - ((unsigned)1<<31));
-
-       GETLONG(templ, cp);
-       if (templ < referencealt) { /*%< below WGS 84 spheroid */
-               altval = referencealt - templ;
-               altsign = "-";
-       } else {
-               altval = templ - referencealt;
-               altsign = "";
-       }
-
-       if (latval < 0) {
-               northsouth = 'S';
-               latval = -latval;
-       } else
-               northsouth = 'N';
-
-       latsecfrac = latval % 1000;
-       latval = latval / 1000;
-       latsec = latval % 60;
-       latval = latval / 60;
-       latmin = latval % 60;
-       latval = latval / 60;
-       latdeg = latval;
-
-       if (longval < 0) {
-               eastwest = 'W';
-               longval = -longval;
-       } else
-               eastwest = 'E';
-
-       longsecfrac = longval % 1000;
-       longval = longval / 1000;
-       longsec = longval % 60;
-       longval = longval / 60;
-       longmin = longval % 60;
-       longval = longval / 60;
-       longdeg = longval;
-
-       altfrac = altval % 100;
-       altmeters = (altval / 100);
-
-       sizestr = strdup(precsize_ntoa(sizeval));
-       hpstr = strdup(precsize_ntoa(hpval));
-       vpstr = strdup(precsize_ntoa(vpval));
-
-       sprintf(ascii,
-           "%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %s%d.%.2dm %sm %sm %sm",
-               latdeg, latmin, latsec, latsecfrac, northsouth,
-               longdeg, longmin, longsec, longsecfrac, eastwest,
-               altsign, altmeters, altfrac,
-               (sizestr != NULL) ? sizestr : error,
-               (hpstr != NULL) ? hpstr : error,
-               (vpstr != NULL) ? vpstr : error);
-
-       if (sizestr != NULL)
-               free(sizestr);
-       if (hpstr != NULL)
-               free(hpstr);
-       if (vpstr != NULL)
-               free(vpstr);
-
-       return (ascii);
-}
-
-
-/*% Return the number of DNS hierarchy levels in the name. */
-int
-dn_count_labels(const char *name) {
-       int i, len, count;
-
-       len = strlen(name);
-       for (i = 0, count = 0; i < len; i++) {
-               /* XXX need to check for \. or use named's nlabels(). */
-               if (name[i] == '.')
-                       count++;
-       }
-
-       /* don't count initial wildcard */
-       if (name[0] == '*')
-               if (count)
-                       count--;
-
-       /* don't count the null label for root. */
-       /* if terminating '.' not found, must adjust */
-       /* count to include last label */
-       if (len > 0 && name[len-1] != '.')
-               count++;
-       return (count);
-}
-
-/*%
- * Make dates expressed in seconds-since-Jan-1-1970 easy to read.  
- * SIG records are required to be printed like this, by the Secure DNS RFC.
- */
-char *
-p_secstodate (u_long secs) {
-       char *output = p_secstodate_output;
-       time_t clock = secs;
-       struct tm *time;
-#ifdef HAVE_TIME_R
-       struct tm res;
-       
-       time = gmtime_r(&clock, &res);
-#else
-       time = gmtime(&clock);
-#endif
-       time->tm_year += 1900;
-       time->tm_mon += 1;
-       sprintf(output, "%04d%02d%02d%02d%02d%02d",
-               time->tm_year, time->tm_mon, time->tm_mday,
-               time->tm_hour, time->tm_min, time->tm_sec);
-       return (output);
-}
-
-u_int16_t
-res_nametoclass(const char *buf, int *successp) {
-       unsigned long result;
-       char *endptr;
-       int success;
-
-       result = sym_ston(__p_class_syms, buf, &success);
-       if (success)
-               goto done;
-
-       if (strncasecmp(buf, "CLASS", 5) != 0 ||
-           !isdigit((unsigned char)buf[5]))
-               goto done;
-       errno = 0;
-       result = strtoul(buf + 5, &endptr, 10);
-       if (errno == 0 && *endptr == '\0' && result <= 0xffffU)
-               success = 1;
- done:
-       if (successp)
-               *successp = success;
-       return (result);
-}
-
-u_int16_t
-res_nametotype(const char *buf, int *successp) {
-       unsigned long result;
-       char *endptr;
-       int success;
-
-       result = sym_ston(__p_type_syms, buf, &success);
-       if (success)
-               goto done;
-
-       if (strncasecmp(buf, "type", 4) != 0 ||
-           !isdigit((unsigned char)buf[4]))
-               goto done;
-       errno = 0;
-       result = strtoul(buf + 4, &endptr, 10);
-       if (errno == 0 && *endptr == '\0' && result <= 0xffffU)
-               success = 1;
- done:
-       if (successp)
-               *successp = success;
-       return (result);
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/res_debug.h b/lib/bind/resolv/res_debug.h
deleted file mode 100644 (file)
index c28171d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 _RES_DEBUG_H_
-#define _RES_DEBUG_H_
-
-#ifndef DEBUG
-#   define Dprint(cond, args) /*empty*/
-#   define DprintQ(cond, args, query, size) /*empty*/
-#   define Aerror(statp, file, string, error, address) /*empty*/
-#   define Perror(statp, file, string, error) /*empty*/
-#else
-#   define Dprint(cond, args) if (cond) {fprintf args;} else {}
-#   define DprintQ(cond, args, query, size) if (cond) {\
-                       fprintf args;\
-                       res_pquery(statp, query, size, stdout);\
-               } else {}
-#endif
-
-#endif /* _RES_DEBUG_H_ */ 
-/*! \file */
diff --git a/lib/bind/resolv/res_findzonecut.c b/lib/bind/resolv/res_findzonecut.c
deleted file mode 100644 (file)
index 933169e..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: res_findzonecut.c,v 1.10 2005/10/11 00:10:16 marka Exp $";
-#endif /* not lint */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/* Import. */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <limits.h>
-#include <netdb.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/list.h>
-
-#include "port_after.h"
-
-#include <resolv.h>
-
-/* Data structures. */
-
-typedef struct rr_a {
-       LINK(struct rr_a)       link;
-       union res_sockaddr_union addr;
-} rr_a;
-typedef LIST(rr_a) rrset_a;
-
-typedef struct rr_ns {
-       LINK(struct rr_ns)      link;
-       const char *            name;
-       unsigned int            flags;
-       rrset_a                 addrs;
-} rr_ns;
-typedef LIST(rr_ns) rrset_ns;
-
-#define        RR_NS_HAVE_V4           0x01
-#define        RR_NS_HAVE_V6           0x02
-
-/* Forward. */
-
-static int     satisfy(res_state, const char *, rrset_ns *,
-                       union res_sockaddr_union *, int);
-static int     add_addrs(res_state, rr_ns *,
-                         union res_sockaddr_union *, int);
-static int     get_soa(res_state, const char *, ns_class, int,
-                       char *, size_t, char *, size_t,
-                       rrset_ns *);
-static int     get_ns(res_state, const char *, ns_class, int, rrset_ns *);
-static int     get_glue(res_state, ns_class, int, rrset_ns *);
-static int     save_ns(res_state, ns_msg *, ns_sect,
-                       const char *, ns_class, int, rrset_ns *);
-static int     save_a(res_state, ns_msg *, ns_sect,
-                      const char *, ns_class, int, rr_ns *);
-static void    free_nsrrset(rrset_ns *);
-static void    free_nsrr(rrset_ns *, rr_ns *);
-static rr_ns * find_ns(rrset_ns *, const char *);
-static int     do_query(res_state, const char *, ns_class, ns_type,
-                        u_char *, ns_msg *);
-static void    res_dprintf(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
-
-/* Macros. */
-
-#define DPRINTF(x) do {\
-               int save_errno = errno; \
-               if ((statp->options & RES_DEBUG) != 0U) res_dprintf x; \
-               errno = save_errno; \
-       } while (0)
-
-/* Public. */
-
-/*%
- *     find enclosing zone for a <dname,class>, and some server addresses
- *
- * parameters:
- *\li  res - resolver context to work within (is modified)
- *\li  dname - domain name whose enclosing zone is desired
- *\li  class - class of dname (and its enclosing zone)
- *\li  zname - found zone name
- *\li  zsize - allocated size of zname
- *\li  addrs - found server addresses
- *\li  naddrs - max number of addrs
- *
- * return values:
- *\li  < 0 - an error occurred (check errno)
- *\li  = 0 - zname is now valid, but addrs[] wasn't changed
- *\li  > 0 - zname is now valid, and return value is number of addrs[] found
- *
- * notes:
- *\li  this function calls res_nsend() which means it depends on correctly
- *     functioning recursive nameservers (usually defined in /etc/resolv.conf
- *     or its local equivilent).
- *
- *\li  we start by asking for an SOA<dname,class>.  if we get one as an
- *     answer, that just means <dname,class> is a zone top, which is fine.
- *     more than likely we'll be told to go pound sand, in the form of a
- *     negative answer.
- *
- *\li  note that we are not prepared to deal with referrals since that would
- *     only come from authority servers and our correctly functioning local
- *     recursive server would have followed the referral and got us something
- *     more definite.
- *
- *\li  if the authority section contains an SOA, this SOA should also be the
- *     closest enclosing zone, since any intermediary zone cuts would've been
- *     returned as referrals and dealt with by our correctly functioning local
- *     recursive name server.  but an SOA in the authority section should NOT
- *     match our dname (since that would have been returned in the answer
- *     section).  an authority section SOA has to be "above" our dname.
- *
- *\li  however, since authority section SOA's were once optional, it's
- *     possible that we'll have to go hunting for the enclosing SOA by
- *     ripping labels off the front of our dname -- this is known as "doing
- *     it the hard way."
- *
- *\li  ultimately we want some server addresses, which are ideally the ones
- *     pertaining to the SOA.MNAME, but only if there is a matching NS RR.
- *     so the second phase (after we find an SOA) is to go looking for the
- *     NS RRset for that SOA's zone.
- *
- *\li  no answer section processed by this code is allowed to contain CNAME
- *     or DNAME RR's.  for the SOA query this means we strip a label and
- *     keep going.  for the NS and A queries this means we just give up.
- */
-
-int
-res_findzonecut(res_state statp, const char *dname, ns_class class, int opts,
-               char *zname, size_t zsize, struct in_addr *addrs, int naddrs)
-{
-       int result, i;
-       union res_sockaddr_union *u;
-
-       
-       opts |= RES_IPV4ONLY;
-       opts &= ~RES_IPV6ONLY;
-
-       u = calloc(naddrs, sizeof(*u));
-       if (u == NULL)
-               return(-1);
-
-       result = res_findzonecut2(statp, dname, class, opts, zname, zsize,
-                                 u, naddrs);
-
-       for (i = 0; i < result; i++) {
-               addrs[i] = u[i].sin.sin_addr;
-       }
-       free(u);
-       return (result);
-}
-
-int
-res_findzonecut2(res_state statp, const char *dname, ns_class class, int opts,
-                char *zname, size_t zsize, union res_sockaddr_union *addrs,
-                int naddrs)
-{
-       char mname[NS_MAXDNAME];
-       u_long save_pfcode;
-       rrset_ns nsrrs;
-       int n;
-
-       DPRINTF(("START dname='%s' class=%s, zsize=%ld, naddrs=%d",
-                dname, p_class(class), (long)zsize, naddrs));
-       save_pfcode = statp->pfcode;
-       statp->pfcode |= RES_PRF_HEAD2 | RES_PRF_HEAD1 | RES_PRF_HEADX |
-                        RES_PRF_QUES | RES_PRF_ANS |
-                        RES_PRF_AUTH | RES_PRF_ADD;
-       INIT_LIST(nsrrs);
-
-       DPRINTF(("get the soa, and see if it has enough glue"));
-       if ((n = get_soa(statp, dname, class, opts, zname, zsize,
-                        mname, sizeof mname, &nsrrs)) < 0 ||
-           ((opts & RES_EXHAUSTIVE) == 0 &&
-            (n = satisfy(statp, mname, &nsrrs, addrs, naddrs)) > 0))
-               goto done;
-
-       DPRINTF(("get the ns rrset and see if it has enough glue"));
-       if ((n = get_ns(statp, zname, class, opts, &nsrrs)) < 0 ||
-           ((opts & RES_EXHAUSTIVE) == 0 &&
-            (n = satisfy(statp, mname, &nsrrs, addrs, naddrs)) > 0))
-               goto done;
-
-       DPRINTF(("get the missing glue and see if it's finally enough"));
-       if ((n = get_glue(statp, class, opts, &nsrrs)) >= 0)
-               n = satisfy(statp, mname, &nsrrs, addrs, naddrs);
-
- done:
-       DPRINTF(("FINISH n=%d (%s)", n, (n < 0) ? strerror(errno) : "OK"));
-       free_nsrrset(&nsrrs);
-       statp->pfcode = save_pfcode;
-       return (n);
-}
-
-/* Private. */
-
-static int
-satisfy(res_state statp, const char *mname, rrset_ns *nsrrsp,
-       union res_sockaddr_union *addrs, int naddrs)
-{
-       rr_ns *nsrr;
-       int n, x;
-
-       n = 0;
-       nsrr = find_ns(nsrrsp, mname);
-       if (nsrr != NULL) {
-               x = add_addrs(statp, nsrr, addrs, naddrs);
-               addrs += x;
-               naddrs -= x;
-               n += x;
-       }
-       for (nsrr = HEAD(*nsrrsp);
-            nsrr != NULL && naddrs > 0;
-            nsrr = NEXT(nsrr, link))
-               if (ns_samename(nsrr->name, mname) != 1) {
-                       x = add_addrs(statp, nsrr, addrs, naddrs);
-                       addrs += x;
-                       naddrs -= x;
-                       n += x;
-               }
-       DPRINTF(("satisfy(%s): %d", mname, n));
-       return (n);
-}
-
-static int
-add_addrs(res_state statp, rr_ns *nsrr,
-         union res_sockaddr_union *addrs, int naddrs)
-{
-       rr_a *arr;
-       int n = 0;
-
-       for (arr = HEAD(nsrr->addrs); arr != NULL; arr = NEXT(arr, link)) {
-               if (naddrs <= 0)
-                       return (0);
-               *addrs++ = arr->addr;
-               naddrs--;
-               n++;
-       }
-       DPRINTF(("add_addrs: %d", n));
-       return (n);
-}
-
-static int
-get_soa(res_state statp, const char *dname, ns_class class, int opts,
-       char *zname, size_t zsize, char *mname, size_t msize,
-       rrset_ns *nsrrsp)
-{
-       char tname[NS_MAXDNAME];
-       u_char *resp = NULL;
-       int n, i, ancount, nscount;
-       ns_sect sect;
-       ns_msg msg;
-       u_int rcode;
-
-       /*
-        * Find closest enclosing SOA, even if it's for the root zone.
-        */
-
-       /* First canonicalize dname (exactly one unescaped trailing "."). */
-       if (ns_makecanon(dname, tname, sizeof tname) < 0)
-               goto cleanup;
-       dname = tname;
-
-       resp = malloc(NS_MAXMSG);
-       if (resp == NULL)
-               goto cleanup;
-
-       /* Now grovel the subdomains, hunting for an SOA answer or auth. */
-       for (;;) {
-               /* Leading or inter-label '.' are skipped here. */
-               while (*dname == '.')
-                       dname++;
-
-               /* Is there an SOA? */
-               n = do_query(statp, dname, class, ns_t_soa, resp, &msg);
-               if (n < 0) {
-                       DPRINTF(("get_soa: do_query('%s', %s) failed (%d)",
-                                dname, p_class(class), n));
-                       goto cleanup;
-               }
-               if (n > 0) {
-                       DPRINTF(("get_soa: CNAME or DNAME found"));
-                       sect = ns_s_max, n = 0;
-               } else {
-                       rcode = ns_msg_getflag(msg, ns_f_rcode);
-                       ancount = ns_msg_count(msg, ns_s_an);
-                       nscount = ns_msg_count(msg, ns_s_ns);
-                       if (ancount > 0 && rcode == ns_r_noerror)
-                               sect = ns_s_an, n = ancount;
-                       else if (nscount > 0)
-                               sect = ns_s_ns, n = nscount;
-                       else
-                               sect = ns_s_max, n = 0;
-               }
-               for (i = 0; i < n; i++) {
-                       const char *t;
-                       const u_char *rdata;
-                       ns_rr rr;
-
-                       if (ns_parserr(&msg, sect, i, &rr) < 0) {
-                               DPRINTF(("get_soa: ns_parserr(%s, %d) failed",
-                                        p_section(sect, ns_o_query), i));
-                               goto cleanup;
-                       }
-                       if (ns_rr_type(rr) == ns_t_cname ||
-                           ns_rr_type(rr) == ns_t_dname)
-                               break;
-                       if (ns_rr_type(rr) != ns_t_soa ||
-                           ns_rr_class(rr) != class)
-                               continue;
-                       t = ns_rr_name(rr);
-                       switch (sect) {
-                       case ns_s_an:
-                               if (ns_samedomain(dname, t) == 0) {
-                                       DPRINTF(
-                                   ("get_soa: ns_samedomain('%s', '%s') == 0",
-                                               dname, t)
-                                               );
-                                       errno = EPROTOTYPE;
-                                       goto cleanup;
-                               }
-                               break;
-                       case ns_s_ns:
-                               if (ns_samename(dname, t) == 1 ||
-                                   ns_samedomain(dname, t) == 0) {
-                                       DPRINTF(
-                      ("get_soa: ns_samename() || !ns_samedomain('%s', '%s')",
-                                               dname, t)
-                                               );
-                                       errno = EPROTOTYPE;
-                                       goto cleanup;
-                               }
-                               break;
-                       default:
-                               abort();
-                       }
-                       if (strlen(t) + 1 > zsize) {
-                               DPRINTF(("get_soa: zname(%lu) too small (%lu)",
-                                        (unsigned long)zsize,
-                                        (unsigned long)strlen(t) + 1));
-                               errno = EMSGSIZE;
-                               goto cleanup;
-                       }
-                       strcpy(zname, t);
-                       rdata = ns_rr_rdata(rr);
-                       if (ns_name_uncompress(resp, ns_msg_end(msg), rdata,
-                                              mname, msize) < 0) {
-                               DPRINTF(("get_soa: ns_name_uncompress failed")
-                                       );
-                               goto cleanup;
-                       }
-                       if (save_ns(statp, &msg, ns_s_ns,
-                                   zname, class, opts, nsrrsp) < 0) {
-                               DPRINTF(("get_soa: save_ns failed"));
-                               goto cleanup;
-                       }
-                       free(resp);
-                       return (0);
-               }
-
-               /* If we're out of labels, then not even "." has an SOA! */
-               if (*dname == '\0')
-                       break;
-
-               /* Find label-terminating "."; top of loop will skip it. */
-               while (*dname != '.') {
-                       if (*dname == '\\')
-                               if (*++dname == '\0') {
-                                       errno = EMSGSIZE;
-                                       goto cleanup;
-                               }
-                       dname++;
-               }
-       }
-       DPRINTF(("get_soa: out of labels"));
-       errno = EDESTADDRREQ;
- cleanup:
-       if (resp != NULL)
-               free(resp);
-       return (-1);
-}
-
-static int
-get_ns(res_state statp, const char *zname, ns_class class, int opts,
-      rrset_ns *nsrrsp)
-{
-       u_char *resp;
-       ns_msg msg;
-       int n;
-
-       resp = malloc(NS_MAXMSG);
-       if (resp == NULL)
-               return (-1);
-
-       /* Go and get the NS RRs for this zone. */
-       n = do_query(statp, zname, class, ns_t_ns, resp, &msg);
-       if (n != 0) {
-               DPRINTF(("get_ns: do_query('%s', %s) failed (%d)",
-                        zname, p_class(class), n));
-               free(resp);
-               return (-1);
-       }
-
-       /* Remember the NS RRs and associated A RRs that came back. */
-       if (save_ns(statp, &msg, ns_s_an, zname, class, opts, nsrrsp) < 0) {
-               DPRINTF(("get_ns save_ns('%s', %s) failed",
-                        zname, p_class(class)));
-               free(resp);
-               return (-1);
-       }
-
-       free(resp);
-       return (0);
-}
-
-static int
-get_glue(res_state statp, ns_class class, int opts, rrset_ns *nsrrsp) {
-       rr_ns *nsrr, *nsrr_n;
-       u_char *resp;
-
-       resp = malloc(NS_MAXMSG);
-       if (resp == NULL)
-               return(-1);
-
-       /* Go and get the A RRs for each empty NS RR on our list. */
-       for (nsrr = HEAD(*nsrrsp); nsrr != NULL; nsrr = nsrr_n) {
-               ns_msg msg;
-               int n;
-
-               nsrr_n = NEXT(nsrr, link);
-
-               if ((nsrr->flags & RR_NS_HAVE_V4) == 0) {
-                       n = do_query(statp, nsrr->name, class, ns_t_a,
-                                    resp, &msg);
-                       if (n < 0) {
-                               DPRINTF(
-                                      ("get_glue: do_query('%s', %s') failed",
-                                       nsrr->name, p_class(class)));
-                               goto cleanup;
-                       }
-                       if (n > 0) {
-                               DPRINTF((
-                       "get_glue: do_query('%s', %s') CNAME or DNAME found",
-                                        nsrr->name, p_class(class)));
-                       }
-                       if (save_a(statp, &msg, ns_s_an, nsrr->name, class,
-                                  opts, nsrr) < 0) {
-                               DPRINTF(("get_glue: save_r('%s', %s) failed",
-                                        nsrr->name, p_class(class)));
-                               goto cleanup;
-                       }
-               }
-
-               if ((nsrr->flags & RR_NS_HAVE_V6) == 0) {
-                       n = do_query(statp, nsrr->name, class, ns_t_aaaa,
-                                    resp, &msg);
-                       if (n < 0) {
-                               DPRINTF(
-                                      ("get_glue: do_query('%s', %s') failed",
-                                       nsrr->name, p_class(class)));
-                               goto cleanup;
-                       }
-                       if (n > 0) {
-                               DPRINTF((
-                       "get_glue: do_query('%s', %s') CNAME or DNAME found",
-                                        nsrr->name, p_class(class)));
-                       }
-                       if (save_a(statp, &msg, ns_s_an, nsrr->name, class,
-                                  opts, nsrr) < 0) {
-                               DPRINTF(("get_glue: save_r('%s', %s) failed",
-                                        nsrr->name, p_class(class)));
-                               goto cleanup;
-                       }
-               }
-
-               /* If it's still empty, it's just chaff. */
-               if (EMPTY(nsrr->addrs)) {
-                       DPRINTF(("get_glue: removing empty '%s' NS",
-                                nsrr->name));
-                       free_nsrr(nsrrsp, nsrr);
-               }
-       }
-       free(resp);
-       return (0);
-
- cleanup:
-       free(resp);
-       return (-1);
-}
-
-static int
-save_ns(res_state statp, ns_msg *msg, ns_sect sect,
-       const char *owner, ns_class class, int opts,
-       rrset_ns *nsrrsp)
-{
-       int i;
-
-       for (i = 0; i < ns_msg_count(*msg, sect); i++) {
-               char tname[MAXDNAME];
-               const u_char *rdata;
-               rr_ns *nsrr;
-               ns_rr rr;
-
-               if (ns_parserr(msg, sect, i, &rr) < 0) {
-                       DPRINTF(("save_ns: ns_parserr(%s, %d) failed",
-                                p_section(sect, ns_o_query), i));
-                       return (-1);
-               }
-               if (ns_rr_type(rr) != ns_t_ns ||
-                   ns_rr_class(rr) != class ||
-                   ns_samename(ns_rr_name(rr), owner) != 1)
-                       continue;
-               nsrr = find_ns(nsrrsp, ns_rr_name(rr));
-               if (nsrr == NULL) {
-                       nsrr = malloc(sizeof *nsrr);
-                       if (nsrr == NULL) {
-                               DPRINTF(("save_ns: malloc failed"));
-                               return (-1);
-                       }
-                       rdata = ns_rr_rdata(rr);
-                       if (ns_name_uncompress(ns_msg_base(*msg),
-                                              ns_msg_end(*msg), rdata,
-                                              tname, sizeof tname) < 0) {
-                               DPRINTF(("save_ns: ns_name_uncompress failed")
-                                       );
-                               free(nsrr);
-                               return (-1);
-                       }
-                       nsrr->name = strdup(tname);
-                       if (nsrr->name == NULL) {
-                               DPRINTF(("save_ns: strdup failed"));
-                               free(nsrr);
-                               return (-1);
-                       }
-                       INIT_LINK(nsrr, link);
-                       INIT_LIST(nsrr->addrs);
-                       nsrr->flags = 0;
-                       APPEND(*nsrrsp, nsrr, link);
-               }
-               if (save_a(statp, msg, ns_s_ar,
-                          nsrr->name, class, opts, nsrr) < 0) {
-                       DPRINTF(("save_ns: save_r('%s', %s) failed",
-                                nsrr->name, p_class(class)));
-                       return (-1);
-               }
-       }
-       return (0);
-}
-
-static int
-save_a(res_state statp, ns_msg *msg, ns_sect sect,
-       const char *owner, ns_class class, int opts,
-       rr_ns *nsrr)
-{
-       int i;
-
-       for (i = 0; i < ns_msg_count(*msg, sect); i++) {
-               ns_rr rr;
-               rr_a *arr;
-
-               if (ns_parserr(msg, sect, i, &rr) < 0) {
-                       DPRINTF(("save_a: ns_parserr(%s, %d) failed",
-                                p_section(sect, ns_o_query), i));
-                       return (-1);
-               }
-               if ((ns_rr_type(rr) != ns_t_a &&
-                    ns_rr_type(rr) != ns_t_aaaa) ||
-                   ns_rr_class(rr) != class ||
-                   ns_samename(ns_rr_name(rr), owner) != 1 ||
-                   ns_rr_rdlen(rr) != NS_INADDRSZ)
-                       continue;
-               if ((opts & RES_IPV6ONLY) != 0 && ns_rr_type(rr) != ns_t_aaaa)
-                       continue;
-               if ((opts & RES_IPV4ONLY) != 0 && ns_rr_type(rr) != ns_t_a)
-                       continue;
-               arr = malloc(sizeof *arr);
-               if (arr == NULL) {
-                       DPRINTF(("save_a: malloc failed"));
-                       return (-1);
-               }
-               INIT_LINK(arr, link);
-               memset(&arr->addr, 0, sizeof(arr->addr));
-               switch (ns_rr_type(rr)) {
-               case ns_t_a:
-                       arr->addr.sin.sin_family = AF_INET;
-#ifdef HAVE_SA_LEN
-                       arr->addr.sin.sin_len = sizeof(arr->addr.sin);
-#endif
-                       memcpy(&arr->addr.sin.sin_addr, ns_rr_rdata(rr),
-                              NS_INADDRSZ);
-                       arr->addr.sin.sin_port = htons(NAMESERVER_PORT);
-                       nsrr->flags |= RR_NS_HAVE_V4;
-                       break;
-               case ns_t_aaaa:
-                       arr->addr.sin6.sin6_family = AF_INET6;
-#ifdef HAVE_SA_LEN
-                       arr->addr.sin6.sin6_len = sizeof(arr->addr.sin6);
-#endif
-                       memcpy(&arr->addr.sin6.sin6_addr, ns_rr_rdata(rr), 16);
-                       arr->addr.sin.sin_port = htons(NAMESERVER_PORT);
-                       nsrr->flags |= RR_NS_HAVE_V6;
-                       break;
-               default:
-                       abort();
-               }
-               APPEND(nsrr->addrs, arr, link);
-       }
-       return (0);
-}
-
-static void
-free_nsrrset(rrset_ns *nsrrsp) {
-       rr_ns *nsrr;
-
-       while ((nsrr = HEAD(*nsrrsp)) != NULL)
-               free_nsrr(nsrrsp, nsrr);
-}
-
-static void
-free_nsrr(rrset_ns *nsrrsp, rr_ns *nsrr) {
-       rr_a *arr;
-       char *tmp;
-
-       while ((arr = HEAD(nsrr->addrs)) != NULL) {
-               UNLINK(nsrr->addrs, arr, link);
-               free(arr);
-       }
-       DE_CONST(nsrr->name, tmp);
-       free(tmp);
-       UNLINK(*nsrrsp, nsrr, link);
-       free(nsrr);
-}
-
-static rr_ns *
-find_ns(rrset_ns *nsrrsp, const char *dname) {
-       rr_ns *nsrr;
-
-       for (nsrr = HEAD(*nsrrsp); nsrr != NULL; nsrr = NEXT(nsrr, link))
-               if (ns_samename(nsrr->name, dname) == 1)
-                       return (nsrr);
-       return (NULL);
-}
-
-static int
-do_query(res_state statp, const char *dname, ns_class class, ns_type qtype,
-        u_char *resp, ns_msg *msg)
-{
-       u_char req[NS_PACKETSZ];
-       int i, n;
-
-       n = res_nmkquery(statp, ns_o_query, dname, class, qtype,
-                        NULL, 0, NULL, req, NS_PACKETSZ);
-       if (n < 0) {
-               DPRINTF(("do_query: res_nmkquery failed"));
-               return (-1);
-       }
-       n = res_nsend(statp, req, n, resp, NS_MAXMSG);
-       if (n < 0) {
-               DPRINTF(("do_query: res_nsend failed"));
-               return (-1);
-       }
-       if (n == 0) {
-               DPRINTF(("do_query: res_nsend returned 0"));
-               errno = EMSGSIZE;
-               return (-1);
-       }
-       if (ns_initparse(resp, n, msg) < 0) {
-               DPRINTF(("do_query: ns_initparse failed"));
-               return (-1);
-       }
-       n = 0;
-       for (i = 0; i < ns_msg_count(*msg, ns_s_an); i++) {
-               ns_rr rr;
-
-               if (ns_parserr(msg, ns_s_an, i, &rr) < 0) {
-                       DPRINTF(("do_query: ns_parserr failed"));
-                       return (-1);
-               }
-               n += (ns_rr_class(rr) == class &&
-                     (ns_rr_type(rr) == ns_t_cname ||
-                      ns_rr_type(rr) == ns_t_dname));
-       }
-       return (n);
-}
-
-static void
-res_dprintf(const char *fmt, ...) {
-       va_list ap;
-
-       va_start(ap, fmt);
-       fputs(";; res_findzonecut: ", stderr);
-       vfprintf(stderr, fmt, ap);
-       fputc('\n', stderr);
-       va_end(ap);
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/res_init.c b/lib/bind/resolv/res_init.c
deleted file mode 100644 (file)
index d88d10d..0000000
+++ /dev/null
@@ -1,801 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_init.c   8.1 (Berkeley) 6/7/93";
-static const char rcsid[] = "$Id: res_init.c,v 1.23 2007/07/09 01:43:23 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <netdb.h>
-
-#include "port_after.h"
-
-/* ensure that sockaddr_in6 and IN6ADDR_ANY_INIT are declared / defined */
-#include <resolv.h>
-
-#include "res_private.h"
-
-/*% Options.  Should all be left alone. */
-#define RESOLVSORT
-#define DEBUG
-
-#ifdef SOLARIS2
-#include <sys/systeminfo.h>
-#endif
-
-static void res_setoptions __P((res_state, const char *, const char *));
-
-#ifdef RESOLVSORT
-static const char sort_mask[] = "/&";
-#define ISSORTMASK(ch) (strchr(sort_mask, ch) != NULL)
-static u_int32_t net_mask __P((struct in_addr));
-#endif
-
-#if !defined(isascii)  /*%< XXX - could be a function */
-# define isascii(c) (!(c & 0200))
-#endif
-
-/*
- * Resolver state default settings.
- */
-
-/*%
- * Set up default settings.  If the configuration file exist, the values
- * there will have precedence.  Otherwise, the server address is set to
- * INADDR_ANY and the default domain name comes from the gethostname().
- *
- * An interrim version of this code (BIND 4.9, pre-4.4BSD) used 127.0.0.1
- * rather than INADDR_ANY ("0.0.0.0") as the default name server address
- * since it was noted that INADDR_ANY actually meant ``the first interface
- * you "ifconfig"'d at boot time'' and if this was a SLIP or PPP interface,
- * it had to be "up" in order for you to reach your own name server.  It
- * was later decided that since the recommended practice is to always 
- * install local static routes through 127.0.0.1 for all your network
- * interfaces, that we could solve this problem without a code change.
- *
- * The configuration file should always be used, since it is the only way
- * to specify a default domain.  If you are running a server on your local
- * machine, you should say "nameserver 0.0.0.0" or "nameserver 127.0.0.1"
- * in the configuration file.
- *
- * Return 0 if completes successfully, -1 on error
- */
-int
-res_ninit(res_state statp) {
-       extern int __res_vinit(res_state, int);
-
-       return (__res_vinit(statp, 0));
-}
-
-/*% This function has to be reachable by res_data.c but not publically. */
-int
-__res_vinit(res_state statp, int preinit) {
-       register FILE *fp;
-       register char *cp, **pp;
-       register int n;
-       char buf[BUFSIZ];
-       int nserv = 0;    /*%< number of nameserver records read from file */
-       int haveenv = 0;
-       int havesearch = 0;
-#ifdef RESOLVSORT
-       int nsort = 0;
-       char *net;
-#endif
-       int dots;
-       union res_sockaddr_union u[2];
-       int maxns = MAXNS;
-
-       RES_SET_H_ERRNO(statp, 0);
-       if (statp->_u._ext.ext != NULL)
-               res_ndestroy(statp);
-
-       if (!preinit) {
-               statp->retrans = RES_TIMEOUT;
-               statp->retry = RES_DFLRETRY;
-               statp->options = RES_DEFAULT;
-               statp->id = res_randomid();
-       }
-
-       memset(u, 0, sizeof(u));
-#ifdef USELOOPBACK
-       u[nserv].sin.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1);
-#else
-       u[nserv].sin.sin_addr.s_addr = INADDR_ANY;
-#endif
-       u[nserv].sin.sin_family = AF_INET;
-       u[nserv].sin.sin_port = htons(NAMESERVER_PORT);
-#ifdef HAVE_SA_LEN
-       u[nserv].sin.sin_len = sizeof(struct sockaddr_in);
-#endif
-       nserv++;
-#ifdef HAS_INET6_STRUCTS
-#ifdef USELOOPBACK
-       u[nserv].sin6.sin6_addr = in6addr_loopback;
-#else
-       u[nserv].sin6.sin6_addr = in6addr_any;
-#endif
-       u[nserv].sin6.sin6_family = AF_INET6;
-       u[nserv].sin6.sin6_port = htons(NAMESERVER_PORT);
-#ifdef HAVE_SA_LEN
-       u[nserv].sin6.sin6_len = sizeof(struct sockaddr_in6);
-#endif
-       nserv++;
-#endif
-       statp->nscount = 0;
-       statp->ndots = 1;
-       statp->pfcode = 0;
-       statp->_vcsock = -1;
-       statp->_flags = 0;
-       statp->qhook = NULL;
-       statp->rhook = NULL;
-       statp->_u._ext.nscount = 0;
-       statp->_u._ext.ext = malloc(sizeof(*statp->_u._ext.ext));
-       if (statp->_u._ext.ext != NULL) {
-               memset(statp->_u._ext.ext, 0, sizeof(*statp->_u._ext.ext));
-               statp->_u._ext.ext->nsaddrs[0].sin = statp->nsaddr;
-               strcpy(statp->_u._ext.ext->nsuffix, "ip6.arpa");
-               strcpy(statp->_u._ext.ext->nsuffix2, "ip6.int");
-       } else {
-               /*
-                * Historically res_init() rarely, if at all, failed.
-                * Examples and applications exist which do not check
-                * our return code.  Furthermore several applications
-                * simply call us to get the systems domainname.  So
-                * rather then immediately fail here we store the
-                * failure, which is returned later, in h_errno.  And
-                * prevent the collection of 'nameserver' information
-                * by setting maxns to 0.  Thus applications that fail
-                * to check our return code wont be able to make
-                * queries anyhow.
-                */
-               RES_SET_H_ERRNO(statp, NETDB_INTERNAL);
-               maxns = 0;
-       }
-#ifdef RESOLVSORT
-       statp->nsort = 0;
-#endif
-       res_setservers(statp, u, nserv);
-
-#ifdef SOLARIS2
-       /*
-        * The old libresolv derived the defaultdomain from NIS/NIS+.
-        * We want to keep this behaviour
-        */
-       {
-               char buf[sizeof(statp->defdname)], *cp;
-               int ret;
-
-               if ((ret = sysinfo(SI_SRPC_DOMAIN, buf, sizeof(buf))) > 0 &&
-                       (unsigned int)ret <= sizeof(buf)) {
-                       if (buf[0] == '+')
-                               buf[0] = '.';
-                       cp = strchr(buf, '.');
-                       cp = (cp == NULL) ? buf : (cp + 1);
-                       strncpy(statp->defdname, cp,
-                               sizeof(statp->defdname) - 1);
-                       statp->defdname[sizeof(statp->defdname) - 1] = '\0';
-               }
-       }
-#endif /* SOLARIS2 */
-
-       /* Allow user to override the local domain definition */
-       if ((cp = getenv("LOCALDOMAIN")) != NULL) {
-               (void)strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
-               statp->defdname[sizeof(statp->defdname) - 1] = '\0';
-               haveenv++;
-
-               /*
-                * Set search list to be blank-separated strings
-                * from rest of env value.  Permits users of LOCALDOMAIN
-                * to still have a search list, and anyone to set the
-                * one that they want to use as an individual (even more
-                * important now that the rfc1535 stuff restricts searches)
-                */
-               cp = statp->defdname;
-               pp = statp->dnsrch;
-               *pp++ = cp;
-               for (n = 0; *cp && pp < statp->dnsrch + MAXDNSRCH; cp++) {
-                       if (*cp == '\n')        /*%< silly backwards compat */
-                               break;
-                       else if (*cp == ' ' || *cp == '\t') {
-                               *cp = 0;
-                               n = 1;
-                       } else if (n) {
-                               *pp++ = cp;
-                               n = 0;
-                               havesearch = 1;
-                       }
-               }
-               /* null terminate last domain if there are excess */
-               while (*cp != '\0' && *cp != ' ' && *cp != '\t' && *cp != '\n')
-                       cp++;
-               *cp = '\0';
-               *pp++ = 0;
-       }
-
-#define        MATCH(line, name) \
-       (!strncmp(line, name, sizeof(name) - 1) && \
-       (line[sizeof(name) - 1] == ' ' || \
-        line[sizeof(name) - 1] == '\t'))
-
-       nserv = 0;
-       if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) {
-           /* read the config file */
-           while (fgets(buf, sizeof(buf), fp) != NULL) {
-               /* skip comments */
-               if (*buf == ';' || *buf == '#')
-                       continue;
-               /* read default domain name */
-               if (MATCH(buf, "domain")) {
-                   if (haveenv)        /*%< skip if have from environ */
-                           continue;
-                   cp = buf + sizeof("domain") - 1;
-                   while (*cp == ' ' || *cp == '\t')
-                           cp++;
-                   if ((*cp == '\0') || (*cp == '\n'))
-                           continue;
-                   strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
-                   statp->defdname[sizeof(statp->defdname) - 1] = '\0';
-                   if ((cp = strpbrk(statp->defdname, " \t\n")) != NULL)
-                           *cp = '\0';
-                   havesearch = 0;
-                   continue;
-               }
-               /* set search list */
-               if (MATCH(buf, "search")) {
-                   if (haveenv)        /*%< skip if have from environ */
-                           continue;
-                   cp = buf + sizeof("search") - 1;
-                   while (*cp == ' ' || *cp == '\t')
-                           cp++;
-                   if ((*cp == '\0') || (*cp == '\n'))
-                           continue;
-                   strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
-                   statp->defdname[sizeof(statp->defdname) - 1] = '\0';
-                   if ((cp = strchr(statp->defdname, '\n')) != NULL)
-                           *cp = '\0';
-                   /*
-                    * Set search list to be blank-separated strings
-                    * on rest of line.
-                    */
-                   cp = statp->defdname;
-                   pp = statp->dnsrch;
-                   *pp++ = cp;
-                   for (n = 0; *cp && pp < statp->dnsrch + MAXDNSRCH; cp++) {
-                           if (*cp == ' ' || *cp == '\t') {
-                                   *cp = 0;
-                                   n = 1;
-                           } else if (n) {
-                                   *pp++ = cp;
-                                   n = 0;
-                           }
-                   }
-                   /* null terminate last domain if there are excess */
-                   while (*cp != '\0' && *cp != ' ' && *cp != '\t')
-                           cp++;
-                   *cp = '\0';
-                   *pp++ = 0;
-                   havesearch = 1;
-                   continue;
-               }
-               /* read nameservers to query */
-               if (MATCH(buf, "nameserver") && nserv < maxns) {
-                   struct addrinfo hints, *ai;
-                   char sbuf[NI_MAXSERV];
-                   const size_t minsiz =
-                       sizeof(statp->_u._ext.ext->nsaddrs[0]);
-
-                   cp = buf + sizeof("nameserver") - 1;
-                   while (*cp == ' ' || *cp == '\t')
-                       cp++;
-                   cp[strcspn(cp, ";# \t\n")] = '\0';
-                   if ((*cp != '\0') && (*cp != '\n')) {
-                       memset(&hints, 0, sizeof(hints));
-                       hints.ai_family = PF_UNSPEC;
-                       hints.ai_socktype = SOCK_DGRAM; /*dummy*/
-                       hints.ai_flags = AI_NUMERICHOST;
-                       sprintf(sbuf, "%u", NAMESERVER_PORT);
-                       if (getaddrinfo(cp, sbuf, &hints, &ai) == 0 &&
-                           ai->ai_addrlen <= minsiz) {
-                           if (statp->_u._ext.ext != NULL) {
-                               memcpy(&statp->_u._ext.ext->nsaddrs[nserv],
-                                   ai->ai_addr, ai->ai_addrlen);
-                           }
-                           if (ai->ai_addrlen <=
-                               sizeof(statp->nsaddr_list[nserv])) {
-                               memcpy(&statp->nsaddr_list[nserv],
-                                   ai->ai_addr, ai->ai_addrlen);
-                           } else
-                               statp->nsaddr_list[nserv].sin_family = 0;
-                           freeaddrinfo(ai);
-                           nserv++;
-                       }
-                   }
-                   continue;
-               }
-#ifdef RESOLVSORT
-               if (MATCH(buf, "sortlist")) {
-                   struct in_addr a;
-
-                   cp = buf + sizeof("sortlist") - 1;
-                   while (nsort < MAXRESOLVSORT) {
-                       while (*cp == ' ' || *cp == '\t')
-                           cp++;
-                       if (*cp == '\0' || *cp == '\n' || *cp == ';')
-                           break;
-                       net = cp;
-                       while (*cp && !ISSORTMASK(*cp) && *cp != ';' &&
-                              isascii(*cp) && !isspace((unsigned char)*cp))
-                               cp++;
-                       n = *cp;
-                       *cp = 0;
-                       if (inet_aton(net, &a)) {
-                           statp->sort_list[nsort].addr = a;
-                           if (ISSORTMASK(n)) {
-                               *cp++ = n;
-                               net = cp;
-                               while (*cp && *cp != ';' &&
-                                       isascii(*cp) &&
-                                       !isspace((unsigned char)*cp))
-                                   cp++;
-                               n = *cp;
-                               *cp = 0;
-                               if (inet_aton(net, &a)) {
-                                   statp->sort_list[nsort].mask = a.s_addr;
-                               } else {
-                                   statp->sort_list[nsort].mask = 
-                                       net_mask(statp->sort_list[nsort].addr);
-                               }
-                           } else {
-                               statp->sort_list[nsort].mask = 
-                                   net_mask(statp->sort_list[nsort].addr);
-                           }
-                           nsort++;
-                       }
-                       *cp = n;
-                   }
-                   continue;
-               }
-#endif
-               if (MATCH(buf, "options")) {
-                   res_setoptions(statp, buf + sizeof("options") - 1, "conf");
-                   continue;
-               }
-           }
-           if (nserv > 0) 
-               statp->nscount = nserv;
-#ifdef RESOLVSORT
-           statp->nsort = nsort;
-#endif
-           (void) fclose(fp);
-       }
-/*
- * Last chance to get a nameserver.  This should not normally
- * be necessary
- */
-#ifdef NO_RESOLV_CONF
-       if(nserv == 0)
-               nserv = get_nameservers(statp);
-#endif
-
-       if (statp->defdname[0] == 0 &&
-           gethostname(buf, sizeof(statp->defdname) - 1) == 0 &&
-           (cp = strchr(buf, '.')) != NULL)
-               strcpy(statp->defdname, cp + 1);
-
-       /* find components of local domain that might be searched */
-       if (havesearch == 0) {
-               pp = statp->dnsrch;
-               *pp++ = statp->defdname;
-               *pp = NULL;
-
-               dots = 0;
-               for (cp = statp->defdname; *cp; cp++)
-                       dots += (*cp == '.');
-
-               cp = statp->defdname;
-               while (pp < statp->dnsrch + MAXDFLSRCH) {
-                       if (dots < LOCALDOMAINPARTS)
-                               break;
-                       cp = strchr(cp, '.') + 1;    /*%< we know there is one */
-                       *pp++ = cp;
-                       dots--;
-               }
-               *pp = NULL;
-#ifdef DEBUG
-               if (statp->options & RES_DEBUG) {
-                       printf(";; res_init()... default dnsrch list:\n");
-                       for (pp = statp->dnsrch; *pp; pp++)
-                               printf(";;\t%s\n", *pp);
-                       printf(";;\t..END..\n");
-               }
-#endif
-       }
-
-       if ((cp = getenv("RES_OPTIONS")) != NULL)
-               res_setoptions(statp, cp, "env");
-       statp->options |= RES_INIT;
-       return (statp->res_h_errno);
-}
-
-static void
-res_setoptions(res_state statp, const char *options, const char *source)
-{
-       const char *cp = options;
-       int i;
-       struct __res_state_ext *ext = statp->_u._ext.ext;
-
-#ifdef DEBUG
-       if (statp->options & RES_DEBUG)
-               printf(";; res_setoptions(\"%s\", \"%s\")...\n",
-                      options, source);
-#endif
-       while (*cp) {
-               /* skip leading and inner runs of spaces */
-               while (*cp == ' ' || *cp == '\t')
-                       cp++;
-               /* search for and process individual options */
-               if (!strncmp(cp, "ndots:", sizeof("ndots:") - 1)) {
-                       i = atoi(cp + sizeof("ndots:") - 1);
-                       if (i <= RES_MAXNDOTS)
-                               statp->ndots = i;
-                       else
-                               statp->ndots = RES_MAXNDOTS;
-#ifdef DEBUG
-                       if (statp->options & RES_DEBUG)
-                               printf(";;\tndots=%d\n", statp->ndots);
-#endif
-               } else if (!strncmp(cp, "timeout:", sizeof("timeout:") - 1)) {
-                       i = atoi(cp + sizeof("timeout:") - 1);
-                       if (i <= RES_MAXRETRANS)
-                               statp->retrans = i;
-                       else
-                               statp->retrans = RES_MAXRETRANS;
-#ifdef DEBUG
-                       if (statp->options & RES_DEBUG)
-                               printf(";;\ttimeout=%d\n", statp->retrans);
-#endif
-#ifdef SOLARIS2
-               } else if (!strncmp(cp, "retrans:", sizeof("retrans:") - 1)) {
-                       /*
-                        * For backward compatibility, 'retrans' is
-                        * supported as an alias for 'timeout', though
-                        * without an imposed maximum.
-                        */
-                       statp->retrans = atoi(cp + sizeof("retrans:") - 1);
-               } else if (!strncmp(cp, "retry:", sizeof("retry:") - 1)){
-                       /*
-                        * For backward compatibility, 'retry' is
-                        * supported as an alias for 'attempts', though
-                        * without an imposed maximum.
-                        */
-                       statp->retry = atoi(cp + sizeof("retry:") - 1);
-#endif /* SOLARIS2 */
-               } else if (!strncmp(cp, "attempts:", sizeof("attempts:") - 1)){
-                       i = atoi(cp + sizeof("attempts:") - 1);
-                       if (i <= RES_MAXRETRY)
-                               statp->retry = i;
-                       else
-                               statp->retry = RES_MAXRETRY;
-#ifdef DEBUG
-                       if (statp->options & RES_DEBUG)
-                               printf(";;\tattempts=%d\n", statp->retry);
-#endif
-               } else if (!strncmp(cp, "debug", sizeof("debug") - 1)) {
-#ifdef DEBUG
-                       if (!(statp->options & RES_DEBUG)) {
-                               printf(";; res_setoptions(\"%s\", \"%s\")..\n",
-                                      options, source);
-                               statp->options |= RES_DEBUG;
-                       }
-                       printf(";;\tdebug\n");
-#endif
-               } else if (!strncmp(cp, "no_tld_query",
-                                   sizeof("no_tld_query") - 1) ||
-                          !strncmp(cp, "no-tld-query",
-                                   sizeof("no-tld-query") - 1)) {
-                       statp->options |= RES_NOTLDQUERY;
-               } else if (!strncmp(cp, "inet6", sizeof("inet6") - 1)) {
-                       statp->options |= RES_USE_INET6;
-               } else if (!strncmp(cp, "rotate", sizeof("rotate") - 1)) {
-                       statp->options |= RES_ROTATE;
-               } else if (!strncmp(cp, "no-check-names",
-                                   sizeof("no-check-names") - 1)) {
-                       statp->options |= RES_NOCHECKNAME;
-               }
-#ifdef RES_USE_EDNS0
-               else if (!strncmp(cp, "edns0", sizeof("edns0") - 1)) {
-                       statp->options |= RES_USE_EDNS0;
-               }
-#endif
-               else if (!strncmp(cp, "dname", sizeof("dname") - 1)) {
-                       statp->options |= RES_USE_DNAME;
-               }
-               else if (!strncmp(cp, "nibble:", sizeof("nibble:") - 1)) {
-                       if (ext == NULL)
-                               goto skip;
-                       cp += sizeof("nibble:") - 1;
-                       i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix) - 1);
-                       strncpy(ext->nsuffix, cp, i);
-                       ext->nsuffix[i] = '\0';
-               }
-               else if (!strncmp(cp, "nibble2:", sizeof("nibble2:") - 1)) {
-                       if (ext == NULL)
-                               goto skip;
-                       cp += sizeof("nibble2:") - 1;
-                       i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix2) - 1);
-                       strncpy(ext->nsuffix2, cp, i);
-                       ext->nsuffix2[i] = '\0';
-               }
-               else if (!strncmp(cp, "v6revmode:", sizeof("v6revmode:") - 1)) {
-                       cp += sizeof("v6revmode:") - 1;
-                       /* "nibble" and "bitstring" used to be valid */
-                       if (!strncmp(cp, "single", sizeof("single") - 1)) {
-                               statp->options |= RES_NO_NIBBLE2;
-                       } else if (!strncmp(cp, "both", sizeof("both") - 1)) {
-                               statp->options &=
-                                        ~RES_NO_NIBBLE2;
-                       }
-               }
-               else {
-                       /* XXX - print a warning here? */
-               }
-   skip:
-               /* skip to next run of spaces */
-               while (*cp && *cp != ' ' && *cp != '\t')
-                       cp++;
-       }
-}
-
-#ifdef RESOLVSORT
-/* XXX - should really support CIDR which means explicit masks always. */
-static u_int32_t
-net_mask(in)           /*!< XXX - should really use system's version of this  */
-       struct in_addr in;
-{
-       register u_int32_t i = ntohl(in.s_addr);
-
-       if (IN_CLASSA(i))
-               return (htonl(IN_CLASSA_NET));
-       else if (IN_CLASSB(i))
-               return (htonl(IN_CLASSB_NET));
-       return (htonl(IN_CLASSC_NET));
-}
-#endif
-
-u_int
-res_randomid(void) {
-       struct timeval now;
-
-       gettimeofday(&now, NULL);
-       return (0xffff & (now.tv_sec ^ now.tv_usec ^ getpid()));
-}
-
-/*%
- * This routine is for closing the socket if a virtual circuit is used and
- * the program wants to close it.  This provides support for endhostent()
- * which expects to close the socket.
- *
- * This routine is not expected to be user visible.
- */
-void
-res_nclose(res_state statp) {
-       int ns;
-
-       if (statp->_vcsock >= 0) { 
-               (void) close(statp->_vcsock);
-               statp->_vcsock = -1;
-               statp->_flags &= ~(RES_F_VC | RES_F_CONN);
-       }
-       for (ns = 0; ns < statp->_u._ext.nscount; ns++) {
-               if (statp->_u._ext.nssocks[ns] != -1) {
-                       (void) close(statp->_u._ext.nssocks[ns]);
-                       statp->_u._ext.nssocks[ns] = -1;
-               }
-       }
-}
-
-void
-res_ndestroy(res_state statp) {
-       res_nclose(statp);
-       if (statp->_u._ext.ext != NULL)
-               free(statp->_u._ext.ext);
-       statp->options &= ~RES_INIT;
-       statp->_u._ext.ext = NULL;
-}
-
-const char *
-res_get_nibblesuffix(res_state statp) {
-       if (statp->_u._ext.ext)
-               return (statp->_u._ext.ext->nsuffix);
-       return ("ip6.arpa");
-}
-
-const char *
-res_get_nibblesuffix2(res_state statp) {
-       if (statp->_u._ext.ext)
-               return (statp->_u._ext.ext->nsuffix2);
-       return ("ip6.int");
-}
-
-void
-res_setservers(res_state statp, const union res_sockaddr_union *set, int cnt) {
-       int i, nserv;
-       size_t size;
-
-       /* close open servers */
-       res_nclose(statp);
-
-       /* cause rtt times to be forgotten */
-       statp->_u._ext.nscount = 0;
-
-       nserv = 0;
-       for (i = 0; i < cnt && nserv < MAXNS; i++) {
-               switch (set->sin.sin_family) {
-               case AF_INET:
-                       size = sizeof(set->sin);
-                       if (statp->_u._ext.ext)
-                               memcpy(&statp->_u._ext.ext->nsaddrs[nserv],
-                                       &set->sin, size);
-                       if (size <= sizeof(statp->nsaddr_list[nserv]))
-                               memcpy(&statp->nsaddr_list[nserv],
-                                       &set->sin, size);
-                       else
-                               statp->nsaddr_list[nserv].sin_family = 0;
-                       nserv++;
-                       break;
-
-#ifdef HAS_INET6_STRUCTS
-               case AF_INET6:
-                       size = sizeof(set->sin6);
-                       if (statp->_u._ext.ext)
-                               memcpy(&statp->_u._ext.ext->nsaddrs[nserv],
-                                       &set->sin6, size);
-                       if (size <= sizeof(statp->nsaddr_list[nserv]))
-                               memcpy(&statp->nsaddr_list[nserv],
-                                       &set->sin6, size);
-                       else
-                               statp->nsaddr_list[nserv].sin_family = 0;
-                       nserv++;
-                       break;
-#endif
-
-               default:
-                       break;
-               }
-               set++;
-       }
-       statp->nscount = nserv;
-       
-}
-
-int
-res_getservers(res_state statp, union res_sockaddr_union *set, int cnt) {
-       int i;
-       size_t size;
-       u_int16_t family;
-
-       for (i = 0; i < statp->nscount && i < cnt; i++) {
-               if (statp->_u._ext.ext)
-                       family = statp->_u._ext.ext->nsaddrs[i].sin.sin_family;
-               else 
-                       family = statp->nsaddr_list[i].sin_family;
-
-               switch (family) {
-               case AF_INET:
-                       size = sizeof(set->sin);
-                       if (statp->_u._ext.ext)
-                               memcpy(&set->sin,
-                                      &statp->_u._ext.ext->nsaddrs[i],
-                                      size);
-                       else
-                               memcpy(&set->sin, &statp->nsaddr_list[i],
-                                      size);
-                       break;
-
-#ifdef HAS_INET6_STRUCTS
-               case AF_INET6:
-                       size = sizeof(set->sin6);
-                       if (statp->_u._ext.ext)
-                               memcpy(&set->sin6,
-                                      &statp->_u._ext.ext->nsaddrs[i],
-                                      size);
-                       else
-                               memcpy(&set->sin6, &statp->nsaddr_list[i],
-                                      size);
-                       break;
-#endif
-
-               default:
-                       set->sin.sin_family = 0;
-                       break;
-               }
-               set++;
-       }
-       return (statp->nscount);
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/res_mkquery.c b/lib/bind/resolv/res_mkquery.c
deleted file mode 100644 (file)
index cd98636..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Copyright (c) 1985, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_mkquery.c        8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_mkquery.c,v 1.7 2008/04/03 02:01:08 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include "port_after.h"
-
-/* Options.  Leave them on. */
-#define DEBUG
-
-extern const char *_res_opcodes[];
-
-/*%
- * Form all types of queries.
- * Returns the size of the result or -1.
- */
-int
-res_nmkquery(res_state statp,
-            int op,                    /*!< opcode of query  */
-            const char *dname,         /*!< domain name  */
-            int class, int type,       /*!< class and type of query  */
-            const u_char *data,        /*!< resource record data  */
-            int datalen,               /*!< length of data  */
-            const u_char *newrr_in,    /*!< new rr for modify or append  */
-            u_char *buf,               /*!< buffer to put query  */
-            int buflen)                /*!< size of buffer  */
-{
-       register HEADER *hp;
-       register u_char *cp, *ep;
-       register int n;
-       u_char *dnptrs[20], **dpp, **lastdnptr;
-
-       UNUSED(newrr_in);
-
-#ifdef DEBUG
-       if (statp->options & RES_DEBUG)
-               printf(";; res_nmkquery(%s, %s, %s, %s)\n",
-                      _res_opcodes[op], dname, p_class(class), p_type(type));
-#endif
-       /*
-        * Initialize header fields.
-        */
-       if ((buf == NULL) || (buflen < HFIXEDSZ))
-               return (-1);
-       memset(buf, 0, HFIXEDSZ);
-       hp = (HEADER *) buf;
-       hp->id = htons(++statp->id);
-       hp->opcode = op;
-       hp->rd = (statp->options & RES_RECURSE) != 0U;
-       hp->rcode = NOERROR;
-       cp = buf + HFIXEDSZ;
-       ep = buf + buflen;
-       dpp = dnptrs;
-       *dpp++ = buf;
-       *dpp++ = NULL;
-       lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
-       /*
-        * perform opcode specific processing
-        */
-       switch (op) {
-       case QUERY:     /*FALLTHROUGH*/
-       case NS_NOTIFY_OP:
-               if (ep - cp < QFIXEDSZ)
-                       return (-1);
-               if ((n = dn_comp(dname, cp, ep - cp - QFIXEDSZ, dnptrs,
-                   lastdnptr)) < 0)
-                       return (-1);
-               cp += n;
-               ns_put16(type, cp);
-               cp += INT16SZ;
-               ns_put16(class, cp);
-               cp += INT16SZ;
-               hp->qdcount = htons(1);
-               if (op == QUERY || data == NULL)
-                       break;
-               /*
-                * Make an additional record for completion domain.
-                */
-               if ((ep - cp) < RRFIXEDSZ)
-                       return (-1);
-               n = dn_comp((const char *)data, cp, ep - cp - RRFIXEDSZ,
-                           dnptrs, lastdnptr);
-               if (n < 0)
-                       return (-1);
-               cp += n;
-               ns_put16(T_NULL, cp);
-               cp += INT16SZ;
-               ns_put16(class, cp);
-               cp += INT16SZ;
-               ns_put32(0, cp);
-               cp += INT32SZ;
-               ns_put16(0, cp);
-               cp += INT16SZ;
-               hp->arcount = htons(1);
-               break;
-
-       case IQUERY:
-               /*
-                * Initialize answer section
-                */
-               if (ep - cp < 1 + RRFIXEDSZ + datalen)
-                       return (-1);
-               *cp++ = '\0';   /*%< no domain name */
-               ns_put16(type, cp);
-               cp += INT16SZ;
-               ns_put16(class, cp);
-               cp += INT16SZ;
-               ns_put32(0, cp);
-               cp += INT32SZ;
-               ns_put16(datalen, cp);
-               cp += INT16SZ;
-               if (datalen) {
-                       memcpy(cp, data, datalen);
-                       cp += datalen;
-               }
-               hp->ancount = htons(1);
-               break;
-
-       default:
-               return (-1);
-       }
-       return (cp - buf);
-}
-
-#ifdef RES_USE_EDNS0
-/* attach OPT pseudo-RR, as documented in RFC2671 (EDNS0). */
-
-int
-res_nopt(res_state statp,
-        int n0,                /*%< current offset in buffer */
-        u_char *buf,           /*%< buffer to put query */
-        int buflen,            /*%< size of buffer */
-        int anslen)            /*%< UDP answer buffer size */
-{
-       register HEADER *hp;
-       register u_char *cp, *ep;
-       u_int16_t flags = 0;
-
-#ifdef DEBUG
-       if ((statp->options & RES_DEBUG) != 0U)
-               printf(";; res_nopt()\n");
-#endif
-
-       hp = (HEADER *) buf;
-       cp = buf + n0;
-       ep = buf + buflen;
-
-       if ((ep - cp) < 1 + RRFIXEDSZ)
-               return (-1);
-
-       *cp++ = 0;                              /*%< "." */
-       ns_put16(ns_t_opt, cp);                 /*%< TYPE */
-       cp += INT16SZ;
-       ns_put16(anslen & 0xffff, cp);          /*%< CLASS = UDP payload size */
-       cp += INT16SZ;
-       *cp++ = NOERROR;                        /*%< extended RCODE */
-       *cp++ = 0;                              /*%< EDNS version */
-
-       if (statp->options & RES_USE_DNSSEC) {
-#ifdef DEBUG
-               if (statp->options & RES_DEBUG)
-                       printf(";; res_opt()... ENDS0 DNSSEC\n");
-#endif
-               flags |= NS_OPT_DNSSEC_OK;
-       }
-       ns_put16(flags, cp);
-       cp += INT16SZ;
-
-       ns_put16(0U, cp);                       /*%< RDLEN */
-       cp += INT16SZ;
-
-       hp->arcount = htons(ntohs(hp->arcount) + 1);
-
-       return (cp - buf);
-}
-
-/*
- * Construct variable data (RDATA) block for OPT psuedo-RR, append it
- * to the buffer, then update the RDLEN field (previously set to zero by
- * res_nopt()) with the new RDATA length.
- */
-int
-res_nopt_rdata(res_state statp,
-         int n0,               /*%< current offset in buffer */
-         u_char *buf,          /*%< buffer to put query */
-         int buflen,           /*%< size of buffer */
-         u_char *rdata,        /*%< ptr to start of opt rdata */
-         u_short code,         /*%< OPTION-CODE */
-         u_short len,          /*%< OPTION-LENGTH */
-         u_char *data)         /*%< OPTION_DATA */
-{
-       register u_char *cp, *ep;
-
-#ifdef DEBUG
-       if ((statp->options & RES_DEBUG) != 0U)
-               printf(";; res_nopt_rdata()\n");
-#endif
-
-       cp = buf + n0;
-       ep = buf + buflen;
-
-       if ((ep - cp) < (4 + len))
-               return (-1);
-
-       if (rdata < (buf + 2) || rdata >= ep)
-               return (-1);
-
-       ns_put16(code, cp);
-       cp += INT16SZ;
-
-       ns_put16(len, cp);
-       cp += INT16SZ;
-
-       memcpy(cp, data, len);
-       cp += len;
-
-       len = cp - rdata;
-       ns_put16(len, rdata - 2);       /* Update RDLEN field */
-
-       return (cp - buf);
-}
-#endif
-
-/*! \file */
diff --git a/lib/bind/resolv/res_mkupdate.c b/lib/bind/resolv/res_mkupdate.c
deleted file mode 100644 (file)
index d04a4b1..0000000
+++ /dev/null
@@ -1,1162 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*! \file
- * \brief
- * Based on the Dynamic DNS reference implementation by Viraj Bais
- * &lt;viraj_bais@ccm.fm.intel.com>
- */
-
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: res_mkupdate.c,v 1.8 2005/10/14 05:44:26 marka Exp $";
-#endif /* not lint */
-
-#include "port_before.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <limits.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <res_update.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include "port_after.h"
-
-/* Options.  Leave them on. */
-#define DEBUG
-#define MAXPORT 1024
-
-static int getnum_str(u_char **, u_char *);
-static int gethexnum_str(u_char **, u_char *);
-static int getword_str(char *, int, u_char **, u_char *);
-static int getstr_str(char *, int, u_char **, u_char *);
-
-#define ShrinkBuffer(x)  if ((buflen -= x) < 0) return (-2);
-
-/* Forward. */
-
-int res_protocolnumber(const char *);
-int res_servicenumber(const char *);
-
-/*%
- * Form update packets.
- * Returns the size of the resulting packet if no error
- *
- * On error,
- *     returns 
- *\li              -1 if error in reading a word/number in rdata
- *                portion for update packets
- *\li          -2 if length of buffer passed is insufficient
- *\li          -3 if zone section is not the first section in
- *                the linked list, or section order has a problem
- *\li          -4 on a number overflow
- *\li          -5 unknown operation or no records
- */
-int
-res_nmkupdate(res_state statp, ns_updrec *rrecp_in, u_char *buf, int buflen) {
-       ns_updrec *rrecp_start = rrecp_in;
-       HEADER *hp;
-       u_char *cp, *sp2, *startp, *endp;
-       int n, i, soanum, multiline;
-       ns_updrec *rrecp;
-       struct in_addr ina;
-       struct in6_addr in6a;
-        char buf2[MAXDNAME];
-       u_char buf3[MAXDNAME];
-       int section, numrrs = 0, counts[ns_s_max];
-       u_int16_t rtype, rclass;
-       u_int32_t n1, rttl;
-       u_char *dnptrs[20], **dpp, **lastdnptr;
-       int siglen, keylen, certlen;
-
-       /*
-        * Initialize header fields.
-        */
-       if ((buf == NULL) || (buflen < HFIXEDSZ))
-               return (-1);
-       memset(buf, 0, HFIXEDSZ);
-       hp = (HEADER *) buf;
-       hp->id = htons(++statp->id);
-       hp->opcode = ns_o_update;
-       hp->rcode = NOERROR;
-       cp = buf + HFIXEDSZ;
-       buflen -= HFIXEDSZ;
-       dpp = dnptrs;
-       *dpp++ = buf;
-       *dpp++ = NULL;
-       lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
-
-       if (rrecp_start == NULL)
-               return (-5);
-       else if (rrecp_start->r_section != S_ZONE)
-               return (-3);
-
-       memset(counts, 0, sizeof counts);
-       for (rrecp = rrecp_start; rrecp; rrecp = NEXT(rrecp, r_glink)) {
-               numrrs++;
-                section = rrecp->r_section;
-               if (section < 0 || section >= ns_s_max)
-                       return (-1);
-               counts[section]++;
-               for (i = section + 1; i < ns_s_max; i++)
-                       if (counts[i])
-                               return (-3);
-               rtype = rrecp->r_type;
-               rclass = rrecp->r_class;
-               rttl = rrecp->r_ttl;
-               /* overload class and type */
-               if (section == S_PREREQ) {
-                       rttl = 0;
-                       switch (rrecp->r_opcode) {
-                       case YXDOMAIN:
-                               rclass = C_ANY;
-                               rtype = T_ANY;
-                               rrecp->r_size = 0;
-                               break;
-                       case NXDOMAIN:
-                               rclass = C_NONE;
-                               rtype = T_ANY;
-                               rrecp->r_size = 0;
-                               break;
-                       case NXRRSET:
-                               rclass = C_NONE;
-                               rrecp->r_size = 0;
-                               break;
-                       case YXRRSET:
-                               if (rrecp->r_size == 0)
-                                       rclass = C_ANY;
-                               break;
-                       default:
-                               fprintf(stderr,
-                                       "res_mkupdate: incorrect opcode: %d\n",
-                                       rrecp->r_opcode);
-                               fflush(stderr);
-                               return (-1);
-                       }
-               } else if (section == S_UPDATE) {
-                       switch (rrecp->r_opcode) {
-                       case DELETE:
-                               rclass = rrecp->r_size == 0 ? C_ANY : C_NONE;
-                               break;
-                       case ADD:
-                               break;
-                       default:
-                               fprintf(stderr,
-                                       "res_mkupdate: incorrect opcode: %d\n",
-                                       rrecp->r_opcode);
-                               fflush(stderr);
-                               return (-1);
-                       }
-               }
-
-               /*
-                * XXX  appending default domain to owner name is omitted,
-                *      fqdn must be provided
-                */
-               if ((n = dn_comp(rrecp->r_dname, cp, buflen, dnptrs,
-                                lastdnptr)) < 0)
-                       return (-1);
-               cp += n;
-               ShrinkBuffer(n + 2*INT16SZ);
-               PUTSHORT(rtype, cp);
-               PUTSHORT(rclass, cp);
-               if (section == S_ZONE) {
-                       if (numrrs != 1 || rrecp->r_type != T_SOA)
-                               return (-3);
-                       continue;
-               }
-               ShrinkBuffer(INT32SZ + INT16SZ);
-               PUTLONG(rttl, cp);
-               sp2 = cp;  /*%< save pointer to length byte */
-               cp += INT16SZ;
-               if (rrecp->r_size == 0) {
-                       if (section == S_UPDATE && rclass != C_ANY)
-                               return (-1);
-                       else {
-                               PUTSHORT(0, sp2);
-                               continue;
-                       }
-               }
-               startp = rrecp->r_data;
-               endp = startp + rrecp->r_size - 1;
-               /* XXX this should be done centrally. */
-               switch (rrecp->r_type) {
-               case T_A:
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       if (!inet_aton(buf2, &ina))
-                               return (-1);
-                       n1 = ntohl(ina.s_addr);
-                       ShrinkBuffer(INT32SZ);
-                       PUTLONG(n1, cp);
-                       break;
-               case T_CNAME:
-               case T_MB:
-               case T_MG:
-               case T_MR:
-               case T_NS:
-               case T_PTR:
-               case ns_t_dname:
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       break;
-               case T_MINFO:
-               case T_SOA:
-               case T_RP:
-                       for (i = 0; i < 2; i++) {
-                               if (!getword_str(buf2, sizeof buf2, &startp,
-                                                endp))
-                               return (-1);
-                               n = dn_comp(buf2, cp, buflen,
-                                           dnptrs, lastdnptr);
-                               if (n < 0)
-                                       return (-1);
-                               cp += n;
-                               ShrinkBuffer(n);
-                       }
-                       if (rrecp->r_type == T_SOA) {
-                               ShrinkBuffer(5 * INT32SZ);
-                               while (isspace(*startp) || !*startp)
-                                       startp++;
-                               if (*startp == '(') {
-                                       multiline = 1;
-                                       startp++;
-                               } else
-                                       multiline = 0;
-                               /* serial, refresh, retry, expire, minimum */
-                               for (i = 0; i < 5; i++) {
-                                       soanum = getnum_str(&startp, endp);
-                                       if (soanum < 0)
-                                               return (-1);
-                                       PUTLONG(soanum, cp);
-                               }
-                               if (multiline) {
-                                       while (isspace(*startp) || !*startp)
-                                               startp++;
-                                       if (*startp != ')')
-                                               return (-1);
-                               }
-                       }
-                       break;
-               case T_MX:
-               case T_AFSDB:
-               case T_RT:
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       break;
-               case T_SRV:
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, NULL, NULL);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       break;
-               case T_PX:
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       PUTSHORT(n, cp);
-                       ShrinkBuffer(INT16SZ);
-                       for (i = 0; i < 2; i++) {
-                               if (!getword_str(buf2, sizeof buf2, &startp,
-                                                endp))
-                                       return (-1);
-                               n = dn_comp(buf2, cp, buflen, dnptrs,
-                                           lastdnptr);
-                               if (n < 0)
-                                       return (-1);
-                               cp += n;
-                               ShrinkBuffer(n);
-                       }
-                       break;
-               case T_WKS: {
-                       char bm[MAXPORT/8];
-                       unsigned int maxbm = 0;
-
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       if (!inet_aton(buf2, &ina))
-                               return (-1);
-                       n1 = ntohl(ina.s_addr);
-                       ShrinkBuffer(INT32SZ);
-                       PUTLONG(n1, cp);
-
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       if ((i = res_protocolnumber(buf2)) < 0)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = i & 0xff;
-                        
-                       for (i = 0; i < MAXPORT/8 ; i++)
-                               bm[i] = 0;
-
-                       while (getword_str(buf2, sizeof buf2, &startp, endp)) {
-                               if ((n = res_servicenumber(buf2)) <= 0)
-                                       return (-1);
-
-                               if (n < MAXPORT) {
-                                       bm[n/8] |= (0x80>>(n%8));
-                                       if ((unsigned)n > maxbm)
-                                               maxbm = n;
-                               } else
-                                       return (-1);
-                       }
-                       maxbm = maxbm/8 + 1;
-                       ShrinkBuffer(maxbm);
-                       memcpy(cp, bm, maxbm);
-                       cp += maxbm;
-                       break;
-               }
-               case T_HINFO:
-                       for (i = 0; i < 2; i++) {
-                               if ((n = getstr_str(buf2, sizeof buf2,
-                                               &startp, endp)) < 0)
-                                       return (-1);
-                               if (n > 255)
-                                       return (-1);
-                               ShrinkBuffer(n+1);
-                               *cp++ = n;
-                               memcpy(cp, buf2, n);
-                               cp += n;
-                       }
-                       break;
-               case T_TXT:
-                       for (;;) {
-                               if ((n = getstr_str(buf2, sizeof buf2,
-                                               &startp, endp)) < 0) {
-                                       if (cp != (sp2 + INT16SZ))
-                                               break;
-                                       return (-1);
-                               }
-                               if (n > 255)
-                                       return (-1);
-                               ShrinkBuffer(n+1);
-                               *cp++ = n;
-                               memcpy(cp, buf2, n);
-                               cp += n;
-                       }
-                       break;
-               case T_X25:
-                       /* RFC1183 */
-                       if ((n = getstr_str(buf2, sizeof buf2, &startp,
-                                        endp)) < 0)
-                               return (-1);
-                       if (n > 255)
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       break;
-               case T_ISDN:
-                       /* RFC1183 */
-                       if ((n = getstr_str(buf2, sizeof buf2, &startp,
-                                        endp)) < 0)
-                               return (-1);
-                       if ((n > 255) || (n == 0))
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       if ((n = getstr_str(buf2, sizeof buf2, &startp,
-                                        endp)) < 0)
-                               n = 0;
-                       if (n > 255)
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       break;
-               case T_NSAP:
-                       if ((n = inet_nsap_addr((char *)startp, (u_char *)buf2, sizeof(buf2))) != 0) {
-                               ShrinkBuffer(n);
-                               memcpy(cp, buf2, n);
-                               cp += n;
-                       } else {
-                               return (-1);
-                       }
-                       break;
-               case T_LOC:
-                       if ((n = loc_aton((char *)startp, (u_char *)buf2)) != 0) {
-                               ShrinkBuffer(n);
-                               memcpy(cp, buf2, n);
-                               cp += n;
-                       } else
-                               return (-1);
-                       break;
-               case ns_t_sig:
-                   {
-                       int sig_type, success, dateerror;
-                       u_int32_t exptime, timesigned;
-
-                       /* type */
-                       if ((n = getword_str(buf2, sizeof buf2,
-                                            &startp, endp)) < 0)
-                               return (-1);
-                       sig_type = sym_ston(__p_type_syms, buf2, &success);
-                       if (!success || sig_type == ns_t_any)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(sig_type, cp);
-                       /* alg */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = n;
-                       /* labels */
-                       n = getnum_str(&startp, endp);
-                       if (n <= 0 || n > 255)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = n;
-                       /* ottl  & expire */
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       exptime = ns_datetosecs(buf2, &dateerror);
-                       if (!dateerror) {
-                               ShrinkBuffer(INT32SZ);
-                               PUTLONG(rttl, cp);
-                       }
-                       else {
-                               char *ulendp;
-                               u_int32_t ottl;
-
-                               errno = 0;
-                               ottl = strtoul(buf2, &ulendp, 10);
-                               if (errno != 0 ||
-                                   (ulendp != NULL && *ulendp != '\0'))
-                                       return (-1);
-                               ShrinkBuffer(INT32SZ);
-                               PUTLONG(ottl, cp);
-                               if (!getword_str(buf2, sizeof buf2, &startp,
-                                                endp))
-                                       return (-1);
-                               exptime = ns_datetosecs(buf2, &dateerror);
-                               if (dateerror)
-                                       return (-1);
-                       }
-                       /* expire */
-                       ShrinkBuffer(INT32SZ);
-                       PUTLONG(exptime, cp);
-                       /* timesigned */
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       timesigned = ns_datetosecs(buf2, &dateerror);
-                       if (!dateerror) {
-                               ShrinkBuffer(INT32SZ);
-                               PUTLONG(timesigned, cp);
-                       }
-                       else
-                               return (-1);
-                       /* footprint */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* signer name */
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       /* sig */
-                       if ((n = getword_str(buf2, sizeof buf2,
-                                            &startp, endp)) < 0)
-                               return (-1);
-                       siglen = b64_pton(buf2, buf3, sizeof(buf3));
-                       if (siglen < 0)
-                               return (-1);
-                       ShrinkBuffer(siglen);
-                       memcpy(cp, buf3, siglen);
-                       cp += siglen;
-                       break;
-                   }
-               case ns_t_key:
-                       /* flags */
-                       n = gethexnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* proto */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = n;
-                       /* alg */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = n;
-                       /* key */
-                       if ((n = getword_str(buf2, sizeof buf2,
-                                            &startp, endp)) < 0)
-                               return (-1);
-                       keylen = b64_pton(buf2, buf3, sizeof(buf3));
-                       if (keylen < 0)
-                               return (-1);
-                       ShrinkBuffer(keylen);
-                       memcpy(cp, buf3, keylen);
-                       cp += keylen;
-                       break;
-               case ns_t_nxt:
-                   {
-                       int success, nxt_type;
-                       u_char data[32];
-                       int maxtype;
-
-                       /* next name */
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, NULL, NULL);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       maxtype = 0;
-                       memset(data, 0, sizeof data);
-                       for (;;) {
-                               if (!getword_str(buf2, sizeof buf2, &startp,
-                                                endp))
-                                       break;
-                               nxt_type = sym_ston(__p_type_syms, buf2,
-                                                   &success);
-                               if (!success || !ns_t_rr_p(nxt_type))
-                                       return (-1);
-                               NS_NXT_BIT_SET(nxt_type, data);
-                               if (nxt_type > maxtype)
-                                       maxtype = nxt_type;
-                       }
-                       n = maxtype/NS_NXT_BITS+1;
-                       ShrinkBuffer(n);
-                       memcpy(cp, data, n);
-                       cp += n;
-                       break;
-                   }
-               case ns_t_cert:
-                       /* type */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* key tag */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* alg */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0)
-                               return (-1);
-                       ShrinkBuffer(1);
-                       *cp++ = n;
-                       /* cert */
-                       if ((n = getword_str(buf2, sizeof buf2,
-                                            &startp, endp)) < 0)
-                               return (-1);
-                       certlen = b64_pton(buf2, buf3, sizeof(buf3));
-                       if (certlen < 0)
-                               return (-1);
-                       ShrinkBuffer(certlen);
-                       memcpy(cp, buf3, certlen);
-                       cp += certlen;
-                       break;
-               case ns_t_aaaa:
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       if (inet_pton(AF_INET6, buf2, &in6a) <= 0)
-                               return (-1);
-                       ShrinkBuffer(NS_IN6ADDRSZ);
-                       memcpy(cp, &in6a, NS_IN6ADDRSZ);
-                       cp += NS_IN6ADDRSZ;
-                       break;
-               case ns_t_naptr:
-                       /* Order Preference Flags Service Replacement Regexp */
-                       /* Order */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0 || n > 65535)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* Preference */
-                       n = getnum_str(&startp, endp);
-                       if (n < 0 || n > 65535)
-                               return (-1);
-                       ShrinkBuffer(INT16SZ);
-                       PUTSHORT(n, cp);
-                       /* Flags */
-                       if ((n = getstr_str(buf2, sizeof buf2,
-                                       &startp, endp)) < 0) {
-                               return (-1);
-                       }
-                       if (n > 255)
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       /* Service Classes */
-                       if ((n = getstr_str(buf2, sizeof buf2,
-                                       &startp, endp)) < 0) {
-                               return (-1);
-                       }
-                       if (n > 255)
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       /* Pattern */
-                       if ((n = getstr_str(buf2, sizeof buf2,
-                                       &startp, endp)) < 0) {
-                               return (-1);
-                       }
-                       if (n > 255)
-                               return (-1);
-                       ShrinkBuffer(n+1);
-                       *cp++ = n;
-                       memcpy(cp, buf2, n);
-                       cp += n;
-                       /* Replacement */
-                       if (!getword_str(buf2, sizeof buf2, &startp, endp))
-                               return (-1);
-                       n = dn_comp(buf2, cp, buflen, NULL, NULL);
-                       if (n < 0)
-                               return (-1);
-                       cp += n;
-                       ShrinkBuffer(n);
-                       break;
-               default:
-                       return (-1);
-               } /*switch*/
-               n = (u_int16_t)((cp - sp2) - INT16SZ);
-               PUTSHORT(n, sp2);
-       } /*for*/
-               
-       hp->qdcount = htons(counts[0]);
-       hp->ancount = htons(counts[1]);
-       hp->nscount = htons(counts[2]);
-       hp->arcount = htons(counts[3]);
-       return (cp - buf);
-}
-
-/*%
- * Get a whitespace delimited word from a string (not file)
- * into buf. modify the start pointer to point after the
- * word in the string.
- */
-static int
-getword_str(char *buf, int size, u_char **startpp, u_char *endp) {
-        char *cp;
-        int c;
-        for (cp = buf; *startpp <= endp; ) {
-                c = **startpp;
-                if (isspace(c) || c == '\0') {
-                        if (cp != buf) /*%< trailing whitespace */
-                                break;
-                        else { /*%< leading whitespace */
-                                (*startpp)++;
-                                continue;
-                        }
-                }
-                (*startpp)++;
-                if (cp >= buf+size-1)
-                        break;
-                *cp++ = (u_char)c;
-        }
-        *cp = '\0';
-        return (cp != buf);
-}
-
-/*%
- * get a white spae delimited string from memory.  Process quoted strings
- * and \\DDD escapes.  Return length or -1 on error.  Returned string may
- * contain nulls.
- */
-static char digits[] = "0123456789";
-static int
-getstr_str(char *buf, int size, u_char **startpp, u_char *endp) {
-        char *cp;
-        int c, c1 = 0;
-       int inquote = 0;
-       int seen_quote = 0;
-       int escape = 0;
-       int dig = 0;
-       for (cp = buf; *startpp <= endp; ) {
-                if ((c = **startpp) == '\0')
-                       break;
-               /* leading white space */
-               if ((cp == buf) && !seen_quote && isspace(c)) {
-                       (*startpp)++;
-                       continue;
-               }
-
-               switch (c) {
-               case '\\':
-                       if (!escape)  {
-                               escape = 1;
-                               dig = 0;
-                               c1 = 0;
-                               (*startpp)++;
-                               continue;
-                       } 
-                       goto do_escape;
-               case '"':
-                       if (!escape) {
-                               inquote = !inquote;
-                               seen_quote = 1;
-                               (*startpp)++;
-                               continue;
-                       }
-                       /* fall through */
-               default:
-               do_escape:
-                       if (escape) {
-                               switch (c) {
-                               case '0':
-                               case '1':
-                               case '2':
-                               case '3':
-                               case '4':
-                               case '5':
-                               case '6':
-                               case '7':
-                               case '8':
-                               case '9':
-                                       c1 = c1 * 10 + 
-                                               (strchr(digits, c) - digits);
-
-                                       if (++dig == 3) {
-                                               c = c1 &0xff;
-                                               break;
-                                       }
-                                       (*startpp)++;
-                                       continue;
-                               }
-                               escape = 0;
-                       } else if (!inquote && isspace(c))
-                               goto done;
-                       if (cp >= buf+size-1)
-                               goto done;
-                       *cp++ = (u_char)c;
-                       (*startpp)++;
-               }
-       }
- done:
-       *cp = '\0';
-       return ((cp == buf)?  (seen_quote? 0: -1): (cp - buf));
-}
-
-/*%
- * Get a whitespace delimited base 16 number from a string (not file) into buf
- * update the start pointer to point after the number in the string.
- */
-static int
-gethexnum_str(u_char **startpp, u_char *endp) {
-        int c, n;
-        int seendigit = 0;
-        int m = 0;
-
-       if (*startpp + 2 >= endp || strncasecmp((char *)*startpp, "0x", 2) != 0)
-               return getnum_str(startpp, endp);
-       (*startpp)+=2;
-        for (n = 0; *startpp <= endp; ) {
-                c = **startpp;
-                if (isspace(c) || c == '\0') {
-                        if (seendigit) /*%< trailing whitespace */
-                                break;
-                        else { /*%< leading whitespace */
-                                (*startpp)++;
-                                continue;
-                        }
-                }
-                if (c == ';') {
-                        while ((*startpp <= endp) &&
-                              ((c = **startpp) != '\n'))
-                                       (*startpp)++;
-                        if (seendigit)
-                                break;
-                        continue;
-                }
-                if (!isxdigit(c)) {
-                        if (c == ')' && seendigit) {
-                                (*startpp)--;
-                                break;
-                        }
-                       return (-1);
-                }        
-                (*startpp)++;
-               if (isdigit(c))
-                       n = n * 16 + (c - '0');
-               else
-                       n = n * 16 + (tolower(c) - 'a' + 10);
-                seendigit = 1;
-        }
-        return (n + m);
-}
-
-/*%
- * Get a whitespace delimited base 10 number from a string (not file) into buf
- * update the start pointer to point after the number in the string.
- */
-static int
-getnum_str(u_char **startpp, u_char *endp) {
-        int c, n;
-        int seendigit = 0;
-        int m = 0;
-
-        for (n = 0; *startpp <= endp; ) {
-                c = **startpp;
-                if (isspace(c) || c == '\0') {
-                        if (seendigit) /*%< trailing whitespace */
-                                break;
-                        else { /*%< leading whitespace */
-                                (*startpp)++;
-                                continue;
-                        }
-                }
-                if (c == ';') {
-                        while ((*startpp <= endp) &&
-                              ((c = **startpp) != '\n'))
-                                       (*startpp)++;
-                        if (seendigit)
-                                break;
-                        continue;
-                }
-                if (!isdigit(c)) {
-                        if (c == ')' && seendigit) {
-                                (*startpp)--;
-                                break;
-                        }
-                       return (-1);
-                }        
-                (*startpp)++;
-                n = n * 10 + (c - '0');
-                seendigit = 1;
-        }
-        return (n + m);
-}
-
-/*%
- * Allocate a resource record buffer & save rr info.
- */
-ns_updrec *
-res_mkupdrec(int section, const char *dname,
-            u_int class, u_int type, u_long ttl) {
-       ns_updrec *rrecp = (ns_updrec *)calloc(1, sizeof(ns_updrec));
-
-       if (!rrecp || !(rrecp->r_dname = strdup(dname))) {
-               if (rrecp)
-                       free((char *)rrecp);
-               return (NULL);
-       }
-       INIT_LINK(rrecp, r_link);
-       INIT_LINK(rrecp, r_glink);
-       rrecp->r_class = (ns_class)class;
-       rrecp->r_type = (ns_type)type;
-       rrecp->r_ttl = ttl;
-       rrecp->r_section = (ns_sect)section;
-       return (rrecp);
-}
-
-/*%
- * Free a resource record buffer created by res_mkupdrec.
- */
-void
-res_freeupdrec(ns_updrec *rrecp) {
-       /* Note: freeing r_dp is the caller's responsibility. */
-       if (rrecp->r_dname != NULL)
-               free(rrecp->r_dname);
-       free(rrecp);
-}
-
-struct valuelist {
-       struct valuelist *      next;
-       struct valuelist *      prev;
-       char *                  name;
-       char *                  proto;
-       int                     port;
-};
-static struct valuelist *servicelist, *protolist;
-
-static void
-res_buildservicelist() {
-       struct servent *sp;
-       struct valuelist *slp;
-
-#ifdef MAYBE_HESIOD
-       setservent(0);
-#else
-       setservent(1);
-#endif
-       while ((sp = getservent()) != NULL) {
-               slp = (struct valuelist *)malloc(sizeof(struct valuelist));
-               if (!slp)
-                       break;
-               slp->name = strdup(sp->s_name);
-               slp->proto = strdup(sp->s_proto);
-               if ((slp->name == NULL) || (slp->proto == NULL)) {
-                       if (slp->name) free(slp->name);
-                       if (slp->proto) free(slp->proto);
-                       free(slp);
-                       break;
-               }
-               slp->port = ntohs((u_int16_t)sp->s_port);  /*%< host byt order */
-               slp->next = servicelist;
-               slp->prev = NULL;
-               if (servicelist)
-                       servicelist->prev = slp;
-               servicelist = slp;
-       }
-       endservent();
-}
-
-void
-res_destroyservicelist() {
-       struct valuelist *slp, *slp_next;
-
-       for (slp = servicelist; slp != NULL; slp = slp_next) {
-               slp_next = slp->next;
-               free(slp->name);
-               free(slp->proto);
-               free(slp);
-       }
-       servicelist = (struct valuelist *)0;
-}
-
-void
-res_buildprotolist(void) {
-       struct protoent *pp;
-       struct valuelist *slp;
-
-#ifdef MAYBE_HESIOD
-       setprotoent(0);
-#else
-       setprotoent(1);
-#endif
-       while ((pp = getprotoent()) != NULL) {
-               slp = (struct valuelist *)malloc(sizeof(struct valuelist));
-               if (!slp)
-                       break;
-               slp->name = strdup(pp->p_name);
-               if (slp->name == NULL) {
-                       free(slp);
-                       break;
-               }
-               slp->port = pp->p_proto;        /*%< host byte order */
-               slp->next = protolist;
-               slp->prev = NULL;
-               if (protolist)
-                       protolist->prev = slp;
-               protolist = slp;
-       }
-       endprotoent();
-}
-
-void
-res_destroyprotolist(void) {
-       struct valuelist *plp, *plp_next;
-
-       for (plp = protolist; plp != NULL; plp = plp_next) {
-               plp_next = plp->next;
-               free(plp->name);
-               free(plp);
-       }
-       protolist = (struct valuelist *)0;
-}
-
-static int
-findservice(const char *s, struct valuelist **list) {
-       struct valuelist *lp = *list;
-       int n;
-
-       for (; lp != NULL; lp = lp->next)
-               if (strcasecmp(lp->name, s) == 0) {
-                       if (lp != *list) {
-                               lp->prev->next = lp->next;
-                               if (lp->next)
-                                       lp->next->prev = lp->prev;
-                               (*list)->prev = lp;
-                               lp->next = *list;
-                               *list = lp;
-                       }
-                       return (lp->port);      /*%< host byte order */
-               }
-       if (sscanf(s, "%d", &n) != 1 || n <= 0)
-               n = -1;
-       return (n);
-}
-
-/*%
- * Convert service name or (ascii) number to int.
- */
-int
-res_servicenumber(const char *p) {
-       if (servicelist == (struct valuelist *)0)
-               res_buildservicelist();
-       return (findservice(p, &servicelist));
-}
-
-/*%
- * Convert protocol name or (ascii) number to int.
- */
-int
-res_protocolnumber(const char *p) {
-       if (protolist == (struct valuelist *)0)
-               res_buildprotolist();
-       return (findservice(p, &protolist));
-}
-
-static struct servent *
-cgetservbyport(u_int16_t port, const char *proto) {    /*%< Host byte order. */
-       struct valuelist **list = &servicelist;
-       struct valuelist *lp = *list;
-       static struct servent serv;
-
-       port = ntohs(port);
-       for (; lp != NULL; lp = lp->next) {
-               if (port != (u_int16_t)lp->port)        /*%< Host byte order. */
-                       continue;
-               if (strcasecmp(lp->proto, proto) == 0) {
-                       if (lp != *list) {
-                               lp->prev->next = lp->next;
-                               if (lp->next)
-                                       lp->next->prev = lp->prev;
-                               (*list)->prev = lp;
-                               lp->next = *list;
-                               *list = lp;
-                       }
-                       serv.s_name = lp->name;
-                       serv.s_port = htons((u_int16_t)lp->port);
-                       serv.s_proto = lp->proto;
-                       return (&serv);
-               }
-       }
-       return (0);
-}
-
-static struct protoent *
-cgetprotobynumber(int proto) {                         /*%< Host byte order. */
-       struct valuelist **list = &protolist;
-       struct valuelist *lp = *list;
-       static struct protoent prot;
-
-       for (; lp != NULL; lp = lp->next)
-               if (lp->port == proto) {                /*%< Host byte order. */
-                       if (lp != *list) {
-                               lp->prev->next = lp->next;
-                               if (lp->next)
-                                       lp->next->prev = lp->prev;
-                               (*list)->prev = lp;
-                               lp->next = *list;
-                               *list = lp;
-                       }
-                       prot.p_name = lp->name;
-                       prot.p_proto = lp->port;        /*%< Host byte order. */
-                       return (&prot);
-               }
-       return (0);
-}
-
-const char *
-res_protocolname(int num) {
-       static char number[8];
-       struct protoent *pp;
-
-       if (protolist == (struct valuelist *)0)
-               res_buildprotolist();
-       pp = cgetprotobynumber(num);
-       if (pp == 0)  {
-               (void) sprintf(number, "%d", num);
-               return (number);
-       }
-       return (pp->p_name);
-}
-
-const char *
-res_servicename(u_int16_t port, const char *proto) {   /*%< Host byte order. */
-       static char number[8];
-       struct servent *ss;
-
-       if (servicelist == (struct valuelist *)0)
-               res_buildservicelist();
-       ss = cgetservbyport(htons(port), proto);
-       if (ss == 0)  {
-               (void) sprintf(number, "%d", port);
-               return (number);
-       }
-       return (ss->s_name);
-}
diff --git a/lib/bind/resolv/res_mkupdate.h b/lib/bind/resolv/res_mkupdate.h
deleted file mode 100644 (file)
index 96c452d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1998,1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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 _RES_MKUPDATE_H_
-#define _RES_MKUPDATE_H_
-
-__BEGIN_DECLS
-__END_DECLS
-
-#endif /* _RES_MKUPDATE_H_ */ 
-/*! \file */
diff --git a/lib/bind/resolv/res_private.h b/lib/bind/resolv/res_private.h
deleted file mode 100644 (file)
index 4e98157..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef res_private_h
-#define res_private_h
-
-struct __res_state_ext {
-       union res_sockaddr_union nsaddrs[MAXNS];
-       struct sort_list {
-               int     af;
-               union {
-                       struct in_addr  ina;
-                       struct in6_addr in6a;
-               } addr, mask;
-       } sort_list[MAXRESOLVSORT];
-       char nsuffix[64];
-       char nsuffix2[64];
-};
-
-extern int
-res_ourserver_p(const res_state statp, const struct sockaddr *sa);
-
-#endif
-
-/*! \file */
diff --git a/lib/bind/resolv/res_query.c b/lib/bind/resolv/res_query.c
deleted file mode 100644 (file)
index b14f196..0000000
+++ /dev/null
@@ -1,440 +0,0 @@
-/*
- * Copyright (c) 1988, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_query.c  8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_query.c,v 1.10 2008/04/03 10:39:13 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include "port_before.h"
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "port_after.h"
-
-/* Options.  Leave them on. */
-#define DEBUG
-
-#if PACKETSZ > 1024
-#define MAXPACKET      PACKETSZ
-#else
-#define MAXPACKET      1024
-#endif
-
-/*%
- * Formulate a normal query, send, and await answer.
- * Returned answer is placed in supplied buffer "answer".
- * Perform preliminary check of answer, returning success only
- * if no error is indicated and the answer count is nonzero.
- * Return the size of the response on success, -1 on error.
- * Error number is left in H_ERRNO.
- *
- * Caller must parse answer and determine whether it answers the question.
- */
-int
-res_nquery(res_state statp,
-          const char *name,    /*%< domain name */
-          int class, int type, /*%< class and type of query */
-          u_char *answer,      /*%< buffer to put answer */
-          int anslen)          /*%< size of answer buffer */
-{
-       u_char buf[MAXPACKET];
-       HEADER *hp = (HEADER *) answer;
-       u_int oflags;
-       u_char *rdata;
-       int n;
-
-       oflags = statp->_flags;
-
-again:
-       hp->rcode = NOERROR;    /*%< default */
-#ifdef DEBUG
-       if (statp->options & RES_DEBUG)
-               printf(";; res_query(%s, %d, %d)\n", name, class, type);
-#endif
-
-       n = res_nmkquery(statp, QUERY, name, class, type, NULL, 0, NULL,
-                        buf, sizeof(buf));
-#ifdef RES_USE_EDNS0
-       if (n > 0 && (statp->_flags & RES_F_EDNS0ERR) == 0 &&
-           (statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC|RES_NSID))) {
-               n = res_nopt(statp, n, buf, sizeof(buf), anslen);
-               rdata = &buf[n];
-               if (n > 0 && (statp->options & RES_NSID) != 0U) {
-                       n = res_nopt_rdata(statp, n, buf, sizeof(buf), rdata,
-                                          NS_OPT_NSID, 0, NULL);
-               }
-       }
-#endif
-       if (n <= 0) {
-#ifdef DEBUG
-               if (statp->options & RES_DEBUG)
-                       printf(";; res_query: mkquery failed\n");
-#endif
-               RES_SET_H_ERRNO(statp, NO_RECOVERY);
-               return (n);
-       }
-
-       n = res_nsend(statp, buf, n, answer, anslen);
-       if (n < 0) {
-#ifdef RES_USE_EDNS0
-               /* if the query choked with EDNS0, retry without EDNS0 */
-               if ((statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC)) != 0U &&
-                   ((oflags ^ statp->_flags) & RES_F_EDNS0ERR) != 0) {
-                       statp->_flags |= RES_F_EDNS0ERR;
-                       if (statp->options & RES_DEBUG)
-                               printf(";; res_nquery: retry without EDNS0\n");
-                       goto again;
-               }
-#endif
-#ifdef DEBUG
-               if (statp->options & RES_DEBUG)
-                       printf(";; res_query: send error\n");
-#endif
-               RES_SET_H_ERRNO(statp, TRY_AGAIN);
-               return (n);
-       }
-
-       if (hp->rcode != NOERROR || ntohs(hp->ancount) == 0) {
-#ifdef DEBUG
-               if (statp->options & RES_DEBUG)
-                       printf(";; rcode = (%s), counts = an:%d ns:%d ar:%d\n",
-                              p_rcode(hp->rcode),
-                              ntohs(hp->ancount),
-                              ntohs(hp->nscount),
-                              ntohs(hp->arcount));
-#endif
-               switch (hp->rcode) {
-               case NXDOMAIN:
-                       RES_SET_H_ERRNO(statp, HOST_NOT_FOUND);
-                       break;
-               case SERVFAIL:
-                       RES_SET_H_ERRNO(statp, TRY_AGAIN);
-                       break;
-               case NOERROR:
-                       RES_SET_H_ERRNO(statp, NO_DATA);
-                       break;
-               case FORMERR:
-               case NOTIMP:
-               case REFUSED:
-               default:
-                       RES_SET_H_ERRNO(statp, NO_RECOVERY);
-                       break;
-               }
-               return (-1);
-       }
-       return (n);
-}
-
-/*%
- * Formulate a normal query, send, and retrieve answer in supplied buffer.
- * Return the size of the response on success, -1 on error.
- * If enabled, implement search rules until answer or unrecoverable failure
- * is detected.  Error code, if any, is left in H_ERRNO.
- */
-int
-res_nsearch(res_state statp,
-           const char *name,   /*%< domain name */
-           int class, int type,        /*%< class and type of query */
-           u_char *answer,     /*%< buffer to put answer */
-           int anslen)         /*%< size of answer */
-{
-       const char *cp, * const *domain;
-       HEADER *hp = (HEADER *) answer;
-       char tmp[NS_MAXDNAME];
-       u_int dots;
-       int trailing_dot, ret, saved_herrno;
-       int got_nodata = 0, got_servfail = 0, root_on_list = 0;
-       int tried_as_is = 0;
-       int searched = 0;
-
-       errno = 0;
-       RES_SET_H_ERRNO(statp, HOST_NOT_FOUND);  /*%< True if we never query. */
-       dots = 0;
-       for (cp = name; *cp != '\0'; cp++)
-               dots += (*cp == '.');
-       trailing_dot = 0;
-       if (cp > name && *--cp == '.')
-               trailing_dot++;
-
-       /* If there aren't any dots, it could be a user-level alias. */
-       if (!dots && (cp = res_hostalias(statp, name, tmp, sizeof tmp))!= NULL)
-               return (res_nquery(statp, cp, class, type, answer, anslen));
-
-       /*
-        * If there are enough dots in the name, let's just give it a
-        * try 'as is'. The threshold can be set with the "ndots" option.
-        * Also, query 'as is', if there is a trailing dot in the name.
-        */
-       saved_herrno = -1;
-       if (dots >= statp->ndots || trailing_dot) {
-               ret = res_nquerydomain(statp, name, NULL, class, type,
-                                        answer, anslen);
-               if (ret > 0 || trailing_dot)
-                       return (ret);
-               saved_herrno = statp->res_h_errno;
-               tried_as_is++;
-       }
-
-       /*
-        * We do at least one level of search if
-        *      - there is no dot and RES_DEFNAME is set, or
-        *      - there is at least one dot, there is no trailing dot,
-        *        and RES_DNSRCH is set.
-        */
-       if ((!dots && (statp->options & RES_DEFNAMES) != 0U) ||
-           (dots && !trailing_dot && (statp->options & RES_DNSRCH) != 0U)) {
-               int done = 0;
-
-               for (domain = (const char * const *)statp->dnsrch;
-                    *domain && !done;
-                    domain++) {
-                       searched = 1;
-
-                       if (domain[0][0] == '\0' ||
-                           (domain[0][0] == '.' && domain[0][1] == '\0'))
-                               root_on_list++;
-
-                       ret = res_nquerydomain(statp, name, *domain,
-                                              class, type,
-                                              answer, anslen);
-                       if (ret > 0)
-                               return (ret);
-
-                       /*
-                        * If no server present, give up.
-                        * If name isn't found in this domain,
-                        * keep trying higher domains in the search list
-                        * (if that's enabled).
-                        * On a NO_DATA error, keep trying, otherwise
-                        * a wildcard entry of another type could keep us
-                        * from finding this entry higher in the domain.
-                        * If we get some other error (negative answer or
-                        * server failure), then stop searching up,
-                        * but try the input name below in case it's
-                        * fully-qualified.
-                        */
-                       if (errno == ECONNREFUSED) {
-                               RES_SET_H_ERRNO(statp, TRY_AGAIN);
-                               return (-1);
-                       }
-
-                       switch (statp->res_h_errno) {
-                       case NO_DATA:
-                               got_nodata++;
-                               /* FALLTHROUGH */
-                       case HOST_NOT_FOUND:
-                               /* keep trying */
-                               break;
-                       case TRY_AGAIN:
-                               if (hp->rcode == SERVFAIL) {
-                                       /* try next search element, if any */
-                                       got_servfail++;
-                                       break;
-                               }
-                               /* FALLTHROUGH */
-                       default:
-                               /* anything else implies that we're done */
-                               done++;
-                       }
-
-                       /* if we got here for some reason other than DNSRCH,
-                        * we only wanted one iteration of the loop, so stop.
-                        */
-                       if ((statp->options & RES_DNSRCH) == 0U)
-                               done++;
-               }
-       }
-
-       /*
-        * If the query has not already been tried as is then try it
-        * unless RES_NOTLDQUERY is set and there were no dots.
-        */
-       if ((dots || !searched || (statp->options & RES_NOTLDQUERY) == 0U) &&
-           !(tried_as_is || root_on_list)) {
-               ret = res_nquerydomain(statp, name, NULL, class, type,
-                                      answer, anslen);
-               if (ret > 0)
-                       return (ret);
-       }
-
-       /* if we got here, we didn't satisfy the search.
-        * if we did an initial full query, return that query's H_ERRNO
-        * (note that we wouldn't be here if that query had succeeded).
-        * else if we ever got a nodata, send that back as the reason.
-        * else send back meaningless H_ERRNO, that being the one from
-        * the last DNSRCH we did.
-        */
-       if (saved_herrno != -1)
-               RES_SET_H_ERRNO(statp, saved_herrno);
-       else if (got_nodata)
-               RES_SET_H_ERRNO(statp, NO_DATA);
-       else if (got_servfail)
-               RES_SET_H_ERRNO(statp, TRY_AGAIN);
-       return (-1);
-}
-
-/*%
- * Perform a call on res_query on the concatenation of name and domain,
- * removing a trailing dot from name if domain is NULL.
- */
-int
-res_nquerydomain(res_state statp,
-           const char *name,
-           const char *domain,
-           int class, int type,        /*%< class and type of query */
-           u_char *answer,             /*%< buffer to put answer */
-           int anslen)         /*%< size of answer */
-{
-       char nbuf[MAXDNAME];
-       const char *longname = nbuf;
-       int n, d;
-
-#ifdef DEBUG
-       if (statp->options & RES_DEBUG)
-               printf(";; res_nquerydomain(%s, %s, %d, %d)\n",
-                      name, domain?domain:"<Nil>", class, type);
-#endif
-       if (domain == NULL) {
-               /*
-                * Check for trailing '.';
-                * copy without '.' if present.
-                */
-               n = strlen(name);
-               if (n >= MAXDNAME) {
-                       RES_SET_H_ERRNO(statp, NO_RECOVERY);
-                       return (-1);
-               }
-               n--;
-               if (n >= 0 && name[n] == '.') {
-                       strncpy(nbuf, name, n);
-                       nbuf[n] = '\0';
-               } else
-                       longname = name;
-       } else {
-               n = strlen(name);
-               d = strlen(domain);
-               if (n + d + 1 >= MAXDNAME) {
-                       RES_SET_H_ERRNO(statp, NO_RECOVERY);
-                       return (-1);
-               }
-               sprintf(nbuf, "%s.%s", name, domain);
-       }
-       return (res_nquery(statp, longname, class, type, answer, anslen));
-}
-
-const char *
-res_hostalias(const res_state statp, const char *name, char *dst, size_t siz) {
-       char *file, *cp1, *cp2;
-       char buf[BUFSIZ];
-       FILE *fp;
-
-       if (statp->options & RES_NOALIASES)
-               return (NULL);
-       file = getenv("HOSTALIASES");
-       if (file == NULL || (fp = fopen(file, "r")) == NULL)
-               return (NULL);
-       setbuf(fp, NULL);
-       buf[sizeof(buf) - 1] = '\0';
-       while (fgets(buf, sizeof(buf), fp)) {
-               for (cp1 = buf; *cp1 && !isspace((unsigned char)*cp1); ++cp1)
-                       ;
-               if (!*cp1)
-                       break;
-               *cp1 = '\0';
-               if (ns_samename(buf, name) == 1) {
-                       while (isspace((unsigned char)*++cp1))
-                               ;
-                       if (!*cp1)
-                               break;
-                       for (cp2 = cp1 + 1; *cp2 &&
-                            !isspace((unsigned char)*cp2); ++cp2)
-                               ;
-                       *cp2 = '\0';
-                       strncpy(dst, cp1, siz - 1);
-                       dst[siz - 1] = '\0';
-                       fclose(fp);
-                       return (dst);
-               }
-       }
-       fclose(fp);
-       return (NULL);
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/res_send.c b/lib/bind/resolv/res_send.c
deleted file mode 100644 (file)
index 0b50464..0000000
+++ /dev/null
@@ -1,1108 +0,0 @@
-/*
- * Copyright (c) 1985, 1989, 1993
- *    The Regents of the University of California.  All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- * 
- * 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, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION 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.
- */
-
-/*
- * Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)res_send.c   8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_send.c,v 1.19 2008/01/27 01:58:19 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-/*! \file
- * \brief
- * Send query to name server and wait for reply.
- */
-
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <isc/eventlib.h>
-
-#include "port_after.h"
-
-#ifdef USE_POLL
-#ifdef HAVE_STROPTS_H
-#include <stropts.h>
-#endif
-#include <poll.h>
-#endif /* USE_POLL */
-
-/* Options.  Leave them on. */
-#define DEBUG
-#include "res_debug.h"
-#include "res_private.h"
-
-#define EXT(res) ((res)->_u._ext)
-
-#ifndef USE_POLL
-static const int highestFD = FD_SETSIZE - 1;
-#else
-static int highestFD = 0;
-#endif
-
-/* Forward. */
-
-static int             get_salen __P((const struct sockaddr *));
-static struct sockaddr * get_nsaddr __P((res_state, size_t));
-static int             send_vc(res_state, const u_char *, int,
-                               u_char *, int, int *, int);
-static int             send_dg(res_state, const u_char *, int,
-                               u_char *, int, int *, int, int,
-                               int *, int *);
-static void            Aerror(const res_state, FILE *, const char *, int,
-                              const struct sockaddr *, int);
-static void            Perror(const res_state, FILE *, const char *, int);
-static int             sock_eq(struct sockaddr *, struct sockaddr *);
-#if defined(NEED_PSELECT) && !defined(USE_POLL)
-static int             pselect(int, void *, void *, void *,
-                               struct timespec *,
-                               const sigset_t *);
-#endif
-void res_pquery(const res_state, const u_char *, int, FILE *);
-
-static const int niflags = NI_NUMERICHOST | NI_NUMERICSERV;
-
-/* Public. */
-
-/*%
- *     looks up "ina" in _res.ns_addr_list[]
- *
- * returns:
- *\li  0  : not found
- *\li  >0 : found
- *
- * author:
- *\li  paul vixie, 29may94
- */
-int
-res_ourserver_p(const res_state statp, const struct sockaddr *sa) {
-       const struct sockaddr_in *inp, *srv;
-       const struct sockaddr_in6 *in6p, *srv6;
-       int ns;
-
-       switch (sa->sa_family) {
-       case AF_INET:
-               inp = (const struct sockaddr_in *)sa;
-               for (ns = 0;  ns < statp->nscount;  ns++) {
-                       srv = (struct sockaddr_in *)get_nsaddr(statp, ns);
-                       if (srv->sin_family == inp->sin_family &&
-                           srv->sin_port == inp->sin_port &&
-                           (srv->sin_addr.s_addr == INADDR_ANY ||
-                            srv->sin_addr.s_addr == inp->sin_addr.s_addr))
-                               return (1);
-               }
-               break;
-       case AF_INET6:
-               if (EXT(statp).ext == NULL)
-                       break;
-               in6p = (const struct sockaddr_in6 *)sa;
-               for (ns = 0;  ns < statp->nscount;  ns++) {
-                       srv6 = (struct sockaddr_in6 *)get_nsaddr(statp, ns);
-                       if (srv6->sin6_family == in6p->sin6_family &&
-                           srv6->sin6_port == in6p->sin6_port &&
-#ifdef HAVE_SIN6_SCOPE_ID
-                           (srv6->sin6_scope_id == 0 ||
-                            srv6->sin6_scope_id == in6p->sin6_scope_id) &&
-#endif
-                           (IN6_IS_ADDR_UNSPECIFIED(&srv6->sin6_addr) ||
-                            IN6_ARE_ADDR_EQUAL(&srv6->sin6_addr, &in6p->sin6_addr)))
-                               return (1);
-               }
-               break;
-       default:
-               break;
-       }
-       return (0);
-}
-
-/*%
- *     look for (name,type,class) in the query section of packet (buf,eom)
- *
- * requires:
- *\li  buf + HFIXEDSZ <= eom
- *
- * returns:
- *\li  -1 : format error
- *\li  0  : not found
- *\li  >0 : found
- *
- * author:
- *\li  paul vixie, 29may94
- */
-int
-res_nameinquery(const char *name, int type, int class,
-               const u_char *buf, const u_char *eom)
-{
-       const u_char *cp = buf + HFIXEDSZ;
-       int qdcount = ntohs(((const HEADER*)buf)->qdcount);
-
-       while (qdcount-- > 0) {
-               char tname[MAXDNAME+1];
-               int n, ttype, tclass;
-
-               n = dn_expand(buf, eom, cp, tname, sizeof tname);
-               if (n < 0)
-                       return (-1);
-               cp += n;
-               if (cp + 2 * INT16SZ > eom)
-                       return (-1);
-               ttype = ns_get16(cp); cp += INT16SZ;
-               tclass = ns_get16(cp); cp += INT16SZ;
-               if (ttype == type && tclass == class &&
-                   ns_samename(tname, name) == 1)
-                       return (1);
-       }
-       return (0);
-}
-
-/*%
- *     is there a 1:1 mapping of (name,type,class)
- *     in (buf1,eom1) and (buf2,eom2)?
- *
- * returns:
- *\li  -1 : format error
- *\li  0  : not a 1:1 mapping
- *\li  >0 : is a 1:1 mapping
- *
- * author:
- *\li  paul vixie, 29may94
- */
-int
-res_queriesmatch(const u_char *buf1, const u_char *eom1,
-                const u_char *buf2, const u_char *eom2)
-{
-       const u_char *cp = buf1 + HFIXEDSZ;
-       int qdcount = ntohs(((const HEADER*)buf1)->qdcount);
-
-       if (buf1 + HFIXEDSZ > eom1 || buf2 + HFIXEDSZ > eom2)
-               return (-1);
-
-       /*
-        * Only header section present in replies to
-        * dynamic update packets.
-        */
-       if ((((const HEADER *)buf1)->opcode == ns_o_update) &&
-           (((const HEADER *)buf2)->opcode == ns_o_update))
-               return (1);
-
-       if (qdcount != ntohs(((const HEADER*)buf2)->qdcount))
-               return (0);
-       while (qdcount-- > 0) {
-               char tname[MAXDNAME+1];
-               int n, ttype, tclass;
-
-               n = dn_expand(buf1, eom1, cp, tname, sizeof tname);
-               if (n < 0)
-                       return (-1);
-               cp += n;
-               if (cp + 2 * INT16SZ > eom1)
-                       return (-1);
-               ttype = ns_get16(cp);   cp += INT16SZ;
-               tclass = ns_get16(cp); cp += INT16SZ;
-               if (!res_nameinquery(tname, ttype, tclass, buf2, eom2))
-                       return (0);
-       }
-       return (1);
-}
-
-int
-res_nsend(res_state statp,
-         const u_char *buf, int buflen, u_char *ans, int anssiz)
-{
-       int gotsomewhere, terrno, tries, v_circuit, resplen, ns, n;
-       char abuf[NI_MAXHOST];
-
-#ifdef USE_POLL
-       highestFD = sysconf(_SC_OPEN_MAX) - 1;
-#endif
-
-       /* No name servers or res_init() failure */
-       if (statp->nscount == 0 || EXT(statp).ext == NULL) {
-               errno = ESRCH;
-               return (-1);
-       }
-       if (anssiz < HFIXEDSZ) {
-               errno = EINVAL;
-               return (-1);
-       }
-       DprintQ((statp->options & RES_DEBUG) || (statp->pfcode & RES_PRF_QUERY),
-               (stdout, ";; res_send()\n"), buf, buflen);
-       v_circuit = (statp->options & RES_USEVC) || buflen > PACKETSZ;
-       gotsomewhere = 0;
-       terrno = ETIMEDOUT;
-
-       /*
-        * If the ns_addr_list in the resolver context has changed, then
-        * invalidate our cached copy and the associated timing data.
-        */
-       if (EXT(statp).nscount != 0) {
-               int needclose = 0;
-               struct sockaddr_storage peer;
-               ISC_SOCKLEN_T peerlen;
-
-               if (EXT(statp).nscount != statp->nscount)
-                       needclose++;
-               else
-                       for (ns = 0; ns < statp->nscount; ns++) {
-                               if (statp->nsaddr_list[ns].sin_family &&
-                                   !sock_eq((struct sockaddr *)&statp->nsaddr_list[ns],
-                                            (struct sockaddr *)&EXT(statp).ext->nsaddrs[ns])) {
-                                       needclose++;
-                                       break;
-                               }
-
-                               if (EXT(statp).nssocks[ns] == -1)
-                                       continue;
-                               peerlen = sizeof(peer);
-                               if (getsockname(EXT(statp).nssocks[ns],
-                                   (struct sockaddr *)&peer, &peerlen) < 0) {
-                                       needclose++;
-                                       break;
-                               }
-                               if (!sock_eq((struct sockaddr *)&peer,
-                                   get_nsaddr(statp, ns))) {
-                                       needclose++;
-                                       break;
-                               }
-                       }
-               if (needclose) {
-                       res_nclose(statp);
-                       EXT(statp).nscount = 0;
-               }
-       }
-
-       /*
-        * Maybe initialize our private copy of the ns_addr_list.
-        */
-       if (EXT(statp).nscount == 0) {
-               for (ns = 0; ns < statp->nscount; ns++) {
-                       EXT(statp).nstimes[ns] = RES_MAXTIME;
-                       EXT(statp).nssocks[ns] = -1;
-                       if (!statp->nsaddr_list[ns].sin_family)
-                               continue;
-                       EXT(statp).ext->nsaddrs[ns].sin =
-                                statp->nsaddr_list[ns];
-               }
-               EXT(statp).nscount = statp->nscount;
-       }
-
-       /*
-        * Some resolvers want to even out the load on their nameservers.
-        * Note that RES_BLAST overrides RES_ROTATE.
-        */
-       if ((statp->options & RES_ROTATE) != 0U &&
-           (statp->options & RES_BLAST) == 0U) {
-               union res_sockaddr_union inu;
-               struct sockaddr_in ina;
-               int lastns = statp->nscount - 1;
-               int fd;
-               u_int16_t nstime;
-
-               if (EXT(statp).ext != NULL)
-                       inu = EXT(statp).ext->nsaddrs[0];
-               ina = statp->nsaddr_list[0];
-               fd = EXT(statp).nssocks[0];
-               nstime = EXT(statp).nstimes[0];
-               for (ns = 0; ns < lastns; ns++) {
-                       if (EXT(statp).ext != NULL)
-                                EXT(statp).ext->nsaddrs[ns] = 
-                                       EXT(statp).ext->nsaddrs[ns + 1];
-                       statp->nsaddr_list[ns] = statp->nsaddr_list[ns + 1];
-                       EXT(statp).nssocks[ns] = EXT(statp).nssocks[ns + 1];
-                       EXT(statp).nstimes[ns] = EXT(statp).nstimes[ns + 1];
-               }
-               if (EXT(statp).ext != NULL)
-                       EXT(statp).ext->nsaddrs[lastns] = inu;
-               statp->nsaddr_list[lastns] = ina;
-               EXT(statp).nssocks[lastns] = fd;
-               EXT(statp).nstimes[lastns] = nstime;
-       }
-
-       /*
-        * Send request, RETRY times, or until successful.
-        */
-       for (tries = 0; tries < statp->retry; tries++) {
-           for (ns = 0; ns < statp->nscount; ns++) {
-               struct sockaddr *nsap;
-               int nsaplen;
-               nsap = get_nsaddr(statp, ns);
-               nsaplen = get_salen(nsap);
-               statp->_flags &= ~RES_F_LASTMASK;
-               statp->_flags |= (ns << RES_F_LASTSHIFT);
- same_ns:
-               if (statp->qhook) {
-                       int done = 0, loops = 0;
-
-                       do {
-                               res_sendhookact act;
-
-                               act = (*statp->qhook)(&nsap, &buf, &buflen,
-                                                     ans, anssiz, &resplen);
-                               switch (act) {
-                               case res_goahead:
-                                       done = 1;
-                                       break;
-                               case res_nextns:
-                                       res_nclose(statp);
-                                       goto next_ns;
-                               case res_done:
-                                       return (resplen);
-                               case res_modified:
-                                       /* give the hook another try */
-                                       if (++loops < 42) /*doug adams*/
-                                               break;
-                                       /*FALLTHROUGH*/
-                               case res_error:
-                                       /*FALLTHROUGH*/
-                               default:
-                                       goto fail;
-                               }
-                       } while (!done);
-               }
-
-               Dprint(((statp->options & RES_DEBUG) &&
-                       getnameinfo(nsap, nsaplen, abuf, sizeof(abuf),
-                                   NULL, 0, niflags) == 0),
-                      (stdout, ";; Querying server (# %d) address = %s\n",
-                       ns + 1, abuf));
-
-
-               if (v_circuit) {
-                       /* Use VC; at most one attempt per server. */
-                       tries = statp->retry;
-                       n = send_vc(statp, buf, buflen, ans, anssiz, &terrno,
-                                   ns);
-                       if (n < 0)
-                               goto fail;
-                       if (n == 0)
-                               goto next_ns;
-                       resplen = n;
-               } else {
-                       /* Use datagrams. */
-                       n = send_dg(statp, buf, buflen, ans, anssiz, &terrno,
-                                   ns, tries, &v_circuit, &gotsomewhere);
-                       if (n < 0)
-                               goto fail;
-                       if (n == 0)
-                               goto next_ns;
-                       if (v_circuit)
-                               goto same_ns;
-                       resplen = n;
-               }
-
-               Dprint((statp->options & RES_DEBUG) ||
-                      ((statp->pfcode & RES_PRF_REPLY) &&
-                       (statp->pfcode & RES_PRF_HEAD1)),
-                      (stdout, ";; got answer:\n"));
-
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, "%s", ""),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-
-               /*
-                * If we have temporarily opened a virtual circuit,
-                * or if we haven't been asked to keep a socket open,
-                * close the socket.
-                */
-               if ((v_circuit && (statp->options & RES_USEVC) == 0U) ||
-                   (statp->options & RES_STAYOPEN) == 0U) {
-                       res_nclose(statp);
-               }
-               if (statp->rhook) {
-                       int done = 0, loops = 0;
-
-                       do {
-                               res_sendhookact act;
-
-                               act = (*statp->rhook)(nsap, buf, buflen,
-                                                     ans, anssiz, &resplen);
-                               switch (act) {
-                               case res_goahead:
-                               case res_done:
-                                       done = 1;
-                                       break;
-                               case res_nextns:
-                                       res_nclose(statp);
-                                       goto next_ns;
-                               case res_modified:
-                                       /* give the hook another try */
-                                       if (++loops < 42) /*doug adams*/
-                                               break;
-                                       /*FALLTHROUGH*/
-                               case res_error:
-                                       /*FALLTHROUGH*/
-                               default:
-                                       goto fail;
-                               }
-                       } while (!done);
-
-               }
-               return (resplen);
- next_ns: ;
-          } /*foreach ns*/
-       } /*foreach retry*/
-       res_nclose(statp);
-       if (!v_circuit) {
-               if (!gotsomewhere)
-                       errno = ECONNREFUSED;   /*%< no nameservers found */
-               else
-                       errno = ETIMEDOUT;      /*%< no answer obtained */
-       } else
-               errno = terrno;
-       return (-1);
- fail:
-       res_nclose(statp);
-       return (-1);
-}
-
-/* Private */
-
-static int
-get_salen(sa)
-       const struct sockaddr *sa;
-{
-
-#ifdef HAVE_SA_LEN
-       /* There are people do not set sa_len.  Be forgiving to them. */
-       if (sa->sa_len)
-               return (sa->sa_len);
-#endif
-
-       if (sa->sa_family == AF_INET)
-               return (sizeof(struct sockaddr_in));
-       else if (sa->sa_family == AF_INET6)
-               return (sizeof(struct sockaddr_in6));
-       else
-               return (0);     /*%< unknown, die on connect */
-}
-
-/*%
- * pick appropriate nsaddr_list for use.  see res_init() for initialization.
- */
-static struct sockaddr *
-get_nsaddr(statp, n)
-       res_state statp;
-       size_t n;
-{
-
-       if (!statp->nsaddr_list[n].sin_family && EXT(statp).ext) {
-               /*
-                * - EXT(statp).ext->nsaddrs[n] holds an address that is larger
-                *   than struct sockaddr, and
-                * - user code did not update statp->nsaddr_list[n].
-                */
-               return (struct sockaddr *)(void *)&EXT(statp).ext->nsaddrs[n];
-       } else {
-               /*
-                * - user code updated statp->nsaddr_list[n], or
-                * - statp->nsaddr_list[n] has the same content as
-                *   EXT(statp).ext->nsaddrs[n].
-                */
-               return (struct sockaddr *)(void *)&statp->nsaddr_list[n];
-       }
-}
-
-static int
-send_vc(res_state statp,
-       const u_char *buf, int buflen, u_char *ans, int anssiz,
-       int *terrno, int ns)
-{
-       const HEADER *hp = (const HEADER *) buf;
-       HEADER *anhp = (HEADER *) ans;
-       struct sockaddr *nsap;
-       int nsaplen;
-       int truncating, connreset, resplen, n;
-       struct iovec iov[2];
-       u_short len;
-       u_char *cp;
-       void *tmp;
-#ifdef SO_NOSIGPIPE
-       int on = 1;
-#endif
-
-       nsap = get_nsaddr(statp, ns);
-       nsaplen = get_salen(nsap);
-
-       connreset = 0;
- same_ns:
-       truncating = 0;
-
-       /* Are we still talking to whom we want to talk to? */
-       if (statp->_vcsock >= 0 && (statp->_flags & RES_F_VC) != 0) {
-               struct sockaddr_storage peer;
-               ISC_SOCKLEN_T size = sizeof peer;
-
-               if (getpeername(statp->_vcsock,
-                               (struct sockaddr *)&peer, &size) < 0 ||
-                   !sock_eq((struct sockaddr *)&peer, nsap)) {
-                       res_nclose(statp);
-                       statp->_flags &= ~RES_F_VC;
-               }
-       }
-
-       if (statp->_vcsock < 0 || (statp->_flags & RES_F_VC) == 0) {
-               if (statp->_vcsock >= 0)
-                       res_nclose(statp);
-
-               statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM, 0);
-               if (statp->_vcsock > highestFD) {
-                       res_nclose(statp);
-                       errno = ENOTSOCK;
-               }
-               if (statp->_vcsock < 0) {
-                       switch (errno) {
-                       case EPROTONOSUPPORT:
-#ifdef EPFNOSUPPORT
-                       case EPFNOSUPPORT:
-#endif
-                       case EAFNOSUPPORT:
-                               Perror(statp, stderr, "socket(vc)", errno);
-                               return (0);
-                       default:
-                               *terrno = errno;
-                               Perror(statp, stderr, "socket(vc)", errno);
-                               return (-1);
-                       }
-               }
-#ifdef SO_NOSIGPIPE
-               /*
-                * Disable generation of SIGPIPE when writing to a closed
-                * socket.  Write should return -1 and set errno to EPIPE
-                * instead. 
-                *
-                * Push on even if setsockopt(SO_NOSIGPIPE) fails.
-                */
-               (void)setsockopt(statp->_vcsock, SOL_SOCKET, SO_NOSIGPIPE, &on,
-                                sizeof(on));
-#endif
-               errno = 0;
-               if (connect(statp->_vcsock, nsap, nsaplen) < 0) {
-                       *terrno = errno;
-                       Aerror(statp, stderr, "connect/vc", errno, nsap,
-                           nsaplen);
-                       res_nclose(statp);
-                       return (0);
-               }
-               statp->_flags |= RES_F_VC;
-       }
-
-       /*
-        * Send length & message
-        */
-       ns_put16((u_short)buflen, (u_char*)&len);
-       iov[0] = evConsIovec(&len, INT16SZ);
-       DE_CONST(buf, tmp);
-       iov[1] = evConsIovec(tmp, buflen);
-       if (writev(statp->_vcsock, iov, 2) != (INT16SZ + buflen)) {
-               *terrno = errno;
-               Perror(statp, stderr, "write failed", errno);
-               res_nclose(statp);
-               return (0);
-       }
-       /*
-        * Receive length & response
-        */
- read_len:
-       cp = ans;
-       len = INT16SZ;
-       while ((n = read(statp->_vcsock, (char *)cp, (int)len)) > 0) {
-               cp += n;
-               if ((len -= n) == 0)
-                       break;
-       }
-       if (n <= 0) {
-               *terrno = errno;
-               Perror(statp, stderr, "read failed", errno);
-               res_nclose(statp);
-               /*
-                * A long running process might get its TCP
-                * connection reset if the remote server was
-                * restarted.  Requery the server instead of
-                * trying a new one.  When there is only one
-                * server, this means that a query might work
-                * instead of failing.  We only allow one reset
-                * per query to prevent looping.
-                */
-               if (*terrno == ECONNRESET && !connreset) {
-                       connreset = 1;
-                       res_nclose(statp);
-                       goto same_ns;
-               }
-               res_nclose(statp);
-               return (0);
-       }
-       resplen = ns_get16(ans);
-       if (resplen > anssiz) {
-               Dprint(statp->options & RES_DEBUG,
-                      (stdout, ";; response truncated\n")
-                      );
-               truncating = 1;
-               len = anssiz;
-       } else
-               len = resplen;
-       if (len < HFIXEDSZ) {
-               /*
-                * Undersized message.
-                */
-               Dprint(statp->options & RES_DEBUG,
-                      (stdout, ";; undersized: %d\n", len));
-               *terrno = EMSGSIZE;
-               res_nclose(statp);
-               return (0);
-       }
-       cp = ans;
-       while (len != 0 && (n = read(statp->_vcsock, (char *)cp, (int)len)) > 0){
-               cp += n;
-               len -= n;
-       }
-       if (n <= 0) {
-               *terrno = errno;
-               Perror(statp, stderr, "read(vc)", errno);
-               res_nclose(statp);
-               return (0);
-       }
-       if (truncating) {
-               /*
-                * Flush rest of answer so connection stays in synch.
-                */
-               anhp->tc = 1;
-               len = resplen - anssiz;
-               while (len != 0) {
-                       char junk[PACKETSZ];
-
-                       n = read(statp->_vcsock, junk,
-                                (len > sizeof junk) ? sizeof junk : len);
-                       if (n > 0)
-                               len -= n;
-                       else
-                               break;
-               }
-       }
-       /*
-        * If the calling applicating has bailed out of
-        * a previous call and failed to arrange to have
-        * the circuit closed or the server has got
-        * itself confused, then drop the packet and
-        * wait for the correct one.
-        */
-       if (hp->id != anhp->id) {
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, ";; old answer (unexpected):\n"),
-                       ans, (resplen > anssiz) ? anssiz: resplen);
-               goto read_len;
-       }
-
-       /*
-        * All is well, or the error is fatal.  Signal that the
-        * next nameserver ought not be tried.
-        */
-       return (resplen);
-}
-
-static int
-send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans,
-       int anssiz, int *terrno, int ns, int tries, int *v_circuit,
-       int *gotsomewhere)
-{
-       const HEADER *hp = (const HEADER *) buf;
-       HEADER *anhp = (HEADER *) ans;
-       const struct sockaddr *nsap;
-       int nsaplen;
-       struct timespec now, timeout, finish;
-       struct sockaddr_storage from;
-       ISC_SOCKLEN_T fromlen;
-       int resplen, seconds, n, s;
-#ifdef USE_POLL
-       int     polltimeout;
-       struct pollfd   pollfd;
-#else
-       fd_set dsmask;
-#endif
-
-       nsap = get_nsaddr(statp, ns);
-       nsaplen = get_salen(nsap);
-       if (EXT(statp).nssocks[ns] == -1) {
-               EXT(statp).nssocks[ns] = socket(nsap->sa_family, SOCK_DGRAM, 0);
-               if (EXT(statp).nssocks[ns] > highestFD) {
-                       res_nclose(statp);
-                       errno = ENOTSOCK;
-               }
-               if (EXT(statp).nssocks[ns] < 0) {
-                       switch (errno) {
-                       case EPROTONOSUPPORT:
-#ifdef EPFNOSUPPORT
-                       case EPFNOSUPPORT:
-#endif
-                       case EAFNOSUPPORT:
-                               Perror(statp, stderr, "socket(dg)", errno);
-                               return (0);
-                       default:
-                               *terrno = errno;
-                               Perror(statp, stderr, "socket(dg)", errno);
-                               return (-1);
-                       }
-               }
-#ifndef CANNOT_CONNECT_DGRAM
-               /*
-                * On a 4.3BSD+ machine (client and server,
-                * actually), sending to a nameserver datagram
-                * port with no nameserver will cause an
-                * ICMP port unreachable message to be returned.
-                * If our datagram socket is "connected" to the
-                * server, we get an ECONNREFUSED error on the next
-                * socket operation, and select returns if the
-                * error message is received.  We can thus detect
-                * the absence of a nameserver without timing out.
-                */
-               if (connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) {
-                       Aerror(statp, stderr, "connect(dg)", errno, nsap,
-                           nsaplen);
-                       res_nclose(statp);
-                       return (0);
-               }
-#endif /* !CANNOT_CONNECT_DGRAM */
-               Dprint(statp->options & RES_DEBUG,
-                      (stdout, ";; new DG socket\n"))
-       }
-       s = EXT(statp).nssocks[ns];
-#ifndef CANNOT_CONNECT_DGRAM
-       if (send(s, (const char*)buf, buflen, 0) != buflen) {
-               Perror(statp, stderr, "send", errno);
-               res_nclose(statp);
-               return (0);
-       }
-#else /* !CANNOT_CONNECT_DGRAM */
-       if (sendto(s, (const char*)buf, buflen, 0, nsap, nsaplen) != buflen)
-       {
-               Aerror(statp, stderr, "sendto", errno, nsap, nsaplen);
-               res_nclose(statp);
-               return (0);
-       }
-#endif /* !CANNOT_CONNECT_DGRAM */
-
-       /*
-        * Wait for reply.
-        */
-       seconds = (statp->retrans << tries);
-       if (ns > 0)
-               seconds /= statp->nscount;
-       if (seconds <= 0)
-               seconds = 1;
-       now = evNowTime();
-       timeout = evConsTime(seconds, 0);
-       finish = evAddTime(now, timeout);
-       goto nonow;
- wait:
-       now = evNowTime();
- nonow:
-#ifndef USE_POLL
-       FD_ZERO(&dsmask);
-       FD_SET(s, &dsmask);
-       if (evCmpTime(finish, now) > 0)
-               timeout = evSubTime(finish, now);
-       else
-               timeout = evConsTime(0, 0);
-       n = pselect(s + 1, &dsmask, NULL, NULL, &timeout, NULL);
-#else
-       timeout = evSubTime(finish, now);
-       if (timeout.tv_sec < 0)
-               timeout = evConsTime(0, 0);
-       polltimeout = 1000*timeout.tv_sec +
-               timeout.tv_nsec/1000000;
-       pollfd.fd = s;
-       pollfd.events = POLLRDNORM;
-       n = poll(&pollfd, 1, polltimeout);
-#endif /* USE_POLL */
-
-       if (n == 0) {
-               Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n"));
-               *gotsomewhere = 1;
-               return (0);
-       }
-       if (n < 0) {
-               if (errno == EINTR)
-                       goto wait;
-#ifndef USE_POLL
-               Perror(statp, stderr, "select", errno);
-#else
-               Perror(statp, stderr, "poll", errno);
-#endif /* USE_POLL */
-               res_nclose(statp);
-               return (0);
-       }
-       errno = 0;
-       fromlen = sizeof(from);
-       resplen = recvfrom(s, (char*)ans, anssiz,0,
-                          (struct sockaddr *)&from, &fromlen);
-       if (resplen <= 0) {
-               Perror(statp, stderr, "recvfrom", errno);
-               res_nclose(statp);
-               return (0);
-       }
-       *gotsomewhere = 1;
-       if (resplen < HFIXEDSZ) {
-               /*
-                * Undersized message.
-                */
-               Dprint(statp->options & RES_DEBUG,
-                      (stdout, ";; undersized: %d\n",
-                       resplen));
-               *terrno = EMSGSIZE;
-               res_nclose(statp);
-               return (0);
-       }
-       if (hp->id != anhp->id) {
-               /*
-                * response from old query, ignore it.
-                * XXX - potential security hazard could
-                *       be detected here.
-                */
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, ";; old answer:\n"),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-               goto wait;
-       }
-       if (!(statp->options & RES_INSECURE1) &&
-           !res_ourserver_p(statp, (struct sockaddr *)&from)) {
-               /*
-                * response from wrong server? ignore it.
-                * XXX - potential security hazard could
-                *       be detected here.
-                */
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, ";; not our server:\n"),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-               goto wait;
-       }
-#ifdef RES_USE_EDNS0
-       if (anhp->rcode == FORMERR && (statp->options & RES_USE_EDNS0) != 0U) {
-               /*
-                * Do not retry if the server do not understand EDNS0.
-                * The case has to be captured here, as FORMERR packet do not
-                * carry query section, hence res_queriesmatch() returns 0.
-                */
-               DprintQ(statp->options & RES_DEBUG,
-                       (stdout, "server rejected query with EDNS0:\n"),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-               /* record the error */
-               statp->_flags |= RES_F_EDNS0ERR;
-               res_nclose(statp);
-               return (0);
-       }
-#endif
-       if (!(statp->options & RES_INSECURE2) &&
-           !res_queriesmatch(buf, buf + buflen,
-                             ans, ans + anssiz)) {
-               /*
-                * response contains wrong query? ignore it.
-                * XXX - potential security hazard could
-                *       be detected here.
-                */
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, ";; wrong query name:\n"),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-               goto wait;
-       }
-       if (anhp->rcode == SERVFAIL ||
-           anhp->rcode == NOTIMP ||
-           anhp->rcode == REFUSED) {
-               DprintQ(statp->options & RES_DEBUG,
-                       (stdout, "server rejected query:\n"),
-                       ans, (resplen > anssiz) ? anssiz : resplen);
-               res_nclose(statp);
-               /* don't retry if called from dig */
-               if (!statp->pfcode)
-                       return (0);
-       }
-       if (!(statp->options & RES_IGNTC) && anhp->tc) {
-               /*
-                * To get the rest of answer,
-                * use TCP with same server.
-                */
-               Dprint(statp->options & RES_DEBUG,
-                      (stdout, ";; truncated answer\n"));
-               *v_circuit = 1;
-               res_nclose(statp);
-               return (1);
-       }
-       /*
-        * All is well, or the error is fatal.  Signal that the
-        * next nameserver ought not be tried.
-        */
-       return (resplen);
-}
-
-static void
-Aerror(const res_state statp, FILE *file, const char *string, int error,
-       const struct sockaddr *address, int alen)
-{
-       int save = errno;
-       char hbuf[NI_MAXHOST];
-       char sbuf[NI_MAXSERV];
-
-       alen = alen;
-
-       if ((statp->options & RES_DEBUG) != 0U) {
-               if (getnameinfo(address, alen, hbuf, sizeof(hbuf),
-                   sbuf, sizeof(sbuf), niflags)) {
-                       strncpy(hbuf, "?", sizeof(hbuf) - 1);
-                       hbuf[sizeof(hbuf) - 1] = '\0';
-                       strncpy(sbuf, "?", sizeof(sbuf) - 1);
-                       sbuf[sizeof(sbuf) - 1] = '\0';
-               }
-               fprintf(file, "res_send: %s ([%s].%s): %s\n",
-                       string, hbuf, sbuf, strerror(error));
-       }
-       errno = save;
-}
-
-static void
-Perror(const res_state statp, FILE *file, const char *string, int error) {
-       int save = errno;
-
-       if ((statp->options & RES_DEBUG) != 0U)
-               fprintf(file, "res_send: %s: %s\n",
-                       string, strerror(error));
-       errno = save;
-}
-
-static int
-sock_eq(struct sockaddr *a, struct sockaddr *b) {
-       struct sockaddr_in *a4, *b4;
-       struct sockaddr_in6 *a6, *b6;
-
-       if (a->sa_family != b->sa_family)
-               return 0;
-       switch (a->sa_family) {
-       case AF_INET:
-               a4 = (struct sockaddr_in *)a;
-               b4 = (struct sockaddr_in *)b;
-               return a4->sin_port == b4->sin_port &&
-                   a4->sin_addr.s_addr == b4->sin_addr.s_addr;
-       case AF_INET6:
-               a6 = (struct sockaddr_in6 *)a;
-               b6 = (struct sockaddr_in6 *)b;
-               return a6->sin6_port == b6->sin6_port &&
-#ifdef HAVE_SIN6_SCOPE_ID
-                   a6->sin6_scope_id == b6->sin6_scope_id &&
-#endif
-                   IN6_ARE_ADDR_EQUAL(&a6->sin6_addr, &b6->sin6_addr);
-       default:
-               return 0;
-       }
-}
-
-#if defined(NEED_PSELECT) && !defined(USE_POLL)
-/* XXX needs to move to the porting library. */
-static int
-pselect(int nfds, void *rfds, void *wfds, void *efds,
-       struct timespec *tsp, const sigset_t *sigmask)
-{
-       struct timeval tv, *tvp;
-       sigset_t sigs;
-       int n;
-
-       if (tsp) {
-               tvp = &tv;
-               tv = evTimeVal(*tsp);
-       } else
-               tvp = NULL;
-       if (sigmask)
-               sigprocmask(SIG_SETMASK, sigmask, &sigs);
-       n = select(nfds, rfds, wfds, efds, tvp);
-       if (sigmask)
-               sigprocmask(SIG_SETMASK, &sigs, NULL);
-       if (tsp)
-               *tsp = evTimeSpec(tv);
-       return (n);
-}
-#endif
diff --git a/lib/bind/resolv/res_sendsigned.c b/lib/bind/resolv/res_sendsigned.c
deleted file mode 100644 (file)
index 63ae07c..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-#include "port_before.h"
-#include "fd_setsize.h"
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <isc/dst.h>
-
-#include <errno.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "port_after.h"
-
-#define DEBUG
-#include "res_debug.h"
-
-
-/*% res_nsendsigned */
-int
-res_nsendsigned(res_state statp, const u_char *msg, int msglen,
-               ns_tsig_key *key, u_char *answer, int anslen)
-{
-       res_state nstatp;
-       DST_KEY *dstkey;
-       int usingTCP = 0;
-       u_char *newmsg;
-       int newmsglen, bufsize, siglen;
-       u_char sig[64];
-       HEADER *hp;
-       time_t tsig_time;
-       int ret;
-       int len;
-
-       dst_init();
-
-       nstatp = (res_state) malloc(sizeof(*statp));
-       if (nstatp == NULL) {
-               errno = ENOMEM;
-               return (-1);
-       }
-       memcpy(nstatp, statp, sizeof(*statp));
-
-       bufsize = msglen + 1024;
-       newmsg = (u_char *) malloc(bufsize);
-       if (newmsg == NULL) {
-               free(nstatp);
-               errno = ENOMEM;
-               return (-1);
-       }
-       memcpy(newmsg, msg, msglen);
-       newmsglen = msglen;
-
-       if (ns_samename(key->alg, NS_TSIG_ALG_HMAC_MD5) != 1)
-               dstkey = NULL;
-       else
-               dstkey = dst_buffer_to_key(key->name, KEY_HMAC_MD5,
-                                          NS_KEY_TYPE_AUTH_ONLY,
-                                          NS_KEY_PROT_ANY,
-                                          key->data, key->len);
-       if (dstkey == NULL) {
-               errno = EINVAL;
-               free(nstatp);
-               free(newmsg);
-               return (-1);
-       }
-
-       nstatp->nscount = 1;
-       siglen = sizeof(sig);
-       ret = ns_sign(newmsg, &newmsglen, bufsize, NOERROR, dstkey, NULL, 0,
-                     sig, &siglen, 0);
-       if (ret < 0) {
-               free (nstatp);
-               free (newmsg);
-               dst_free_key(dstkey);
-               if (ret == NS_TSIG_ERROR_NO_SPACE)
-                       errno  = EMSGSIZE;
-               else if (ret == -1)
-                       errno  = EINVAL;
-               return (ret);
-       }
-
-       if (newmsglen > PACKETSZ || nstatp->options & RES_USEVC)
-               usingTCP = 1;
-       if (usingTCP == 0)
-               nstatp->options |= RES_IGNTC;
-       else
-               nstatp->options |= RES_USEVC;
-       /*
-        * Stop res_send printing the answer.
-        */
-       nstatp->options &= ~RES_DEBUG;
-       nstatp->pfcode &= ~RES_PRF_REPLY;
-
-retry:
-
-       len = res_nsend(nstatp, newmsg, newmsglen, answer, anslen);
-       if (len < 0) {
-               free (nstatp);
-               free (newmsg);
-               dst_free_key(dstkey);
-               return (len);
-       }
-
-       ret = ns_verify(answer, &len, dstkey, sig, siglen,
-                       NULL, NULL, &tsig_time, nstatp->options & RES_KEEPTSIG);
-       if (ret != 0) {
-               Dprint((statp->options & RES_DEBUG) ||
-                      ((statp->pfcode & RES_PRF_REPLY) &&
-                       (statp->pfcode & RES_PRF_HEAD1)),
-                      (stdout, ";; got answer:\n"));
-
-               DprintQ((statp->options & RES_DEBUG) ||
-                       (statp->pfcode & RES_PRF_REPLY),
-                       (stdout, "%s", ""),
-                       answer, (anslen > len) ? len : anslen);
-
-               if (ret > 0) {
-                       Dprint(statp->pfcode & RES_PRF_REPLY,
-                              (stdout, ";; server rejected TSIG (%s)\n",
-                               p_rcode(ret)));
-               } else {
-                       Dprint(statp->pfcode & RES_PRF_REPLY,
-                              (stdout, ";; TSIG invalid (%s)\n",
-                               p_rcode(-ret)));
-               }
-
-               free (nstatp);
-               free (newmsg);
-               dst_free_key(dstkey);
-               if (ret == -1)
-                       errno = EINVAL;
-               else
-                       errno = ENOTTY;
-               return (-1);
-       }
-
-       hp = (HEADER *) answer;
-       if (hp->tc && !usingTCP && (statp->options & RES_IGNTC) == 0U) {
-               nstatp->options &= ~RES_IGNTC;
-               usingTCP = 1;
-               goto retry;
-       }
-       Dprint((statp->options & RES_DEBUG) ||
-              ((statp->pfcode & RES_PRF_REPLY) &&
-               (statp->pfcode & RES_PRF_HEAD1)),
-              (stdout, ";; got answer:\n"));
-
-       DprintQ((statp->options & RES_DEBUG) ||
-               (statp->pfcode & RES_PRF_REPLY),
-               (stdout, "%s", ""),
-               answer, (anslen > len) ? len : anslen);
-
-       Dprint(statp->pfcode & RES_PRF_REPLY, (stdout, ";; TSIG ok\n"));
-
-       free (nstatp);
-       free (newmsg);
-       dst_free_key(dstkey);
-       return (len);
-}
-
-/*! \file */
diff --git a/lib/bind/resolv/res_update.c b/lib/bind/resolv/res_update.c
deleted file mode 100644 (file)
index 5b2ecb1..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: res_update.c,v 1.13 2005/04/27 04:56:43 sra Exp $";
-#endif /* not lint */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by 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 ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC 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.
- */
-
-/*! \file
- * \brief
- * Based on the Dynamic DNS reference implementation by Viraj Bais
- * &lt;viraj_bais@ccm.fm.intel.com>
- */
-
-#include "port_before.h"
-
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <arpa/nameser.h>
-
-#include <errno.h>
-#include <limits.h>
-#include <netdb.h>
-#include <res_update.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <isc/list.h>
-#include <resolv.h>
-
-#include "port_after.h"
-#include "res_private.h"
-
-/*%
- * Separate a linked list of records into groups so that all records
- * in a group will belong to a single zone on the nameserver.
- * Create a dynamic update packet for each zone and send it to the
- * nameservers for that zone, and await answer.
- * Abort if error occurs in updating any zone.
- * Return the number of zones updated on success, < 0 on error.
- *
- * On error, caller must deal with the unsynchronized zones
- * eg. an A record might have been successfully added to the forward
- * zone but the corresponding PTR record would be missing if error
- * was encountered while updating the reverse zone.
- */
-
-struct zonegrp {
-       char                    z_origin[MAXDNAME];
-       ns_class                z_class;
-       union res_sockaddr_union z_nsaddrs[MAXNS];
-       int                     z_nscount;
-       int                     z_flags;
-       LIST(ns_updrec)         z_rrlist;
-       LINK(struct zonegrp)    z_link;
-};
-
-#define ZG_F_ZONESECTADDED     0x0001
-
-/* Forward. */
-
-static void    res_dprintf(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
-
-/* Macros. */
-
-#define DPRINTF(x) do {\
-               int save_errno = errno; \
-               if ((statp->options & RES_DEBUG) != 0U) res_dprintf x; \
-               errno = save_errno; \
-       } while (0)
-
-/* Public. */
-
-int
-res_nupdate(res_state statp, ns_updrec *rrecp_in, ns_tsig_key *key) {
-       ns_updrec *rrecp;
-       u_char answer[PACKETSZ];
-       u_char *packet;
-       struct zonegrp *zptr, tgrp;
-       LIST(struct zonegrp) zgrps;
-       int nzones = 0, nscount = 0, n;
-       union res_sockaddr_union nsaddrs[MAXNS];
-
-       packet = malloc(NS_MAXMSG);
-       if (packet == NULL) {
-               DPRINTF(("malloc failed"));
-               return (0);
-       }
-       /* Thread all of the updates onto a list of groups. */
-       INIT_LIST(zgrps);
-       memset(&tgrp, 0, sizeof (tgrp));
-       for (rrecp = rrecp_in; rrecp;
-            rrecp = LINKED(rrecp, r_link) ? NEXT(rrecp, r_link) : NULL) {
-               int nscnt;
-               /* Find the origin for it if there is one. */
-               tgrp.z_class = rrecp->r_class;
-               nscnt = res_findzonecut2(statp, rrecp->r_dname, tgrp.z_class,
-                                        RES_EXHAUSTIVE, tgrp.z_origin,
-                                        sizeof tgrp.z_origin, 
-                                        tgrp.z_nsaddrs, MAXNS);
-               if (nscnt <= 0) {
-                       DPRINTF(("res_findzonecut failed (%d)", nscnt));
-                       goto done;
-               }
-               tgrp.z_nscount = nscnt;
-               /* Find the group for it if there is one. */
-               for (zptr = HEAD(zgrps); zptr != NULL; zptr = NEXT(zptr, z_link))
-                       if (ns_samename(tgrp.z_origin, zptr->z_origin) == 1 &&
-                           tgrp.z_class == zptr->z_class)
-                               break;
-               /* Make a group for it if there isn't one. */
-               if (zptr == NULL) {
-                       zptr = malloc(sizeof *zptr);
-                       if (zptr == NULL) {
-                               DPRINTF(("malloc failed"));
-                               goto done;
-                       }
-                       *zptr = tgrp;
-                       zptr->z_flags = 0;
-                       INIT_LINK(zptr, z_link);
-                       INIT_LIST(zptr->z_rrlist);
-                       APPEND(zgrps, zptr, z_link);
-               }
-               /* Thread this rrecp onto the right group. */
-               APPEND(zptr->z_rrlist, rrecp, r_glink);
-       }
-
-       for (zptr = HEAD(zgrps); zptr != NULL; zptr = NEXT(zptr, z_link)) {
-               /* Construct zone section and prepend it. */
-               rrecp = res_mkupdrec(ns_s_zn, zptr->z_origin,
-                                    zptr->z_class, ns_t_soa, 0);
-               if (rrecp == NULL) {
-                       DPRINTF(("res_mkupdrec failed"));
-                       goto done;
-               }
-               PREPEND(zptr->z_rrlist, rrecp, r_glink);
-               zptr->z_flags |= ZG_F_ZONESECTADDED;
-
-               /* Marshall the update message. */
-               n = res_nmkupdate(statp, HEAD(zptr->z_rrlist),
-                                 packet, NS_MAXMSG);
-               DPRINTF(("res_mkupdate -> %d", n));
-               if (n < 0)
-                       goto done;
-
-               /* Temporarily replace the resolver's nameserver set. */
-               nscount = res_getservers(statp, nsaddrs, MAXNS);
-               res_setservers(statp, zptr->z_nsaddrs, zptr->z_nscount);
-
-               /* Send the update and remember the result. */
-               if (key != NULL)
-                       n = res_nsendsigned(statp, packet, n, key,
-                                           answer, sizeof answer);
-               else
-                       n = res_nsend(statp, packet, n, answer, sizeof answer);
-               if (n < 0) {
-                       DPRINTF(("res_nsend: send error, n=%d (%s)\n",
-                                n, strerror(errno)));
-                       goto done;
-               }
-               if (((HEADER *)answer)->rcode == NOERROR)
-                       nzones++;
-
-               /* Restore resolver's nameserver set. */
-               res_setservers(statp, nsaddrs, nscount);
-               nscount = 0;
-       }
- done:
-       while (!EMPTY(zgrps)) {
-               zptr = HEAD(zgrps);
-               if ((zptr->z_flags & ZG_F_ZONESECTADDED) != 0)
-                       res_freeupdrec(HEAD(zptr->z_rrlist));
-               UNLINK(zgrps, zptr, z_link);
-               free(zptr);
-       }
-       if (nscount != 0)
-               res_setservers(statp, nsaddrs, nscount);
-
-       free(packet);
-       return (nzones);
-}
-
-/* Private. */
-
-static void
-res_dprintf(const char *fmt, ...) {
-       va_list ap;
-
-       va_start(ap, fmt);
-       fputs(";; res_nupdate: ", stderr);
-       vfprintf(stderr, fmt, ap);
-       fputc('\n', stderr);
-       va_end(ap);
-}