]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
1916. [func] Integrate contibuted IDN code from JPNIC. [RT #15383]
authorMark Andrews <marka@isc.org>
Fri, 9 Sep 2005 06:23:39 +0000 (06:23 +0000)
committerMark Andrews <marka@isc.org>
Fri, 9 Sep 2005 06:23:39 +0000 (06:23 +0000)
12 files changed:
bin/dig/Makefile.in
bin/dig/dig.docbook
bin/dig/dighost.c
bin/dig/host.docbook
config.h.in
configure
configure.in
contrib/idn/idnkit-1.0-src/patch/bind9/bind-9.4.0-patch [deleted file]
lib/dns/include/dns/name.h
lib/dns/name.c
lib/dns/win32/libdns.def
lib/isc/pthreads/include/isc/thread.h

index e4338e4fb722b6c18961c9058e890610266f12f1..3c10a6b5c2a0b666c9b365a994a197aaa145f511 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.33.18.4 2004/08/20 01:08:36 marka Exp $
+# $Id: Makefile.in,v 1.33.18.5 2005/09/09 06:22:04 marka Exp $
 
 srcdir =       @srcdir@
 VPATH =                @srcdir@
@@ -45,7 +45,7 @@ DEPLIBS =     ${DNSDEPLIBS} ${BIND9DEPLIBS} ${ISCDEPLIBS} ${ISCCFGDEPLIBS} \
                ${LWRESDEPLIBS}
 
 LIBS =         ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} ${ISCLIBS} \
-               ${ISCCFGLIBS} @LIBS@
+               ${ISCCFGLIBS} @IDNLIBS@ @LIBS@
 
 SUBDIRS =
 
index d384b7fab4f3db77b4c71c5438c7134a4ad645fe..07a1028710cdb855a43dd116918ed63cfd5b3b75 100644 (file)
@@ -18,7 +18,7 @@
  - PERFORMANCE OF THIS SOFTWARE.
 -->
 
-<!-- $Id: dig.docbook,v 1.17.18.9 2005/08/30 00:47:49 marka Exp $ -->
+<!-- $Id: dig.docbook,v 1.17.18.10 2005/09/09 06:22:05 marka Exp $ -->
 <refentry id="man.dig">
 
   <refentryinfo>
@@ -874,6 +874,21 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
 
   </refsect1>
 
+  <refsect1>
+    <title>IDN SUPPORT</title>
+    <para>
+      If <command>dig</command> has been built with IDN (internationalized
+      domain name) support, it can accept and display non-ASCII domain names.
+      <command>dig</command> appropriately converts character encoding of
+      domain name before sending a request to DNS server or displaying a
+      reply from the server.
+      If you'd like to turn off the IDN support for some reason, defines
+      the <envar>IDN_DISABLE</envar> environment variable.
+      The IDN support is disabled if the variable is set when 
+      <command>dig</command> runs.
+    </para>
+  </refsect1>
+
   <refsect1>
     <title>FILES</title>
     <para><filename>/etc/resolv.conf</filename>
index b166d47e5eb08aad646e0da465dba493e018d4b0..86b331e68a21f909fbfc1b83beb0ed6033cfd797 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.259.18.25 2005/09/09 00:24:39 marka Exp $ */
+/* $Id: dighost.c,v 1.259.18.26 2005/09/09 06:22:05 marka Exp $ */
 
 /*! \file
  *  \note
 #include <string.h>
 #include <limits.h>
 
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#ifdef WITH_IDN
+#include <idn/result.h>
+#include <idn/log.h>
+#include <idn/resconf.h>
+#include <idn/api.h>
+#endif
+
 #include <dns/byaddr.h>
 #ifdef DIG_SIGCHASE
 #include <dns/dnssec.h>
@@ -123,6 +134,18 @@ int ndots = -1;
 int tries = 3;
 int lookup_counter = 0;
 
+#ifdef WITH_IDN
+static void            initialize_idn(void);
+static isc_result_t    output_filter(isc_buffer_t *buffer,
+                                     unsigned int used_org,
+                                     isc_boolean_t absolute);
+static idn_result_t    append_textname(char *name, const char *origin,
+                                       size_t namesize);
+static void            idn_check_result(idn_result_t r, const char *msg);
+
+#define MAXDLEN                256
+#endif
+
 /*%
  * Exit Codes:
  *
@@ -992,6 +1015,10 @@ setup_system(void) {
        if (ISC_LIST_EMPTY(server_list))
                copy_server_list(lwconf, &server_list);
 
+#ifdef WITH_IDN
+       initialize_idn();
+#endif
+
        if (keyfile[0] != 0)
                setup_file_key();
        else if (keysecret[0] != 0)
@@ -1650,6 +1677,15 @@ setup_lookup(dig_lookup_t *lookup) {
        isc_buffer_t b;
        dns_compress_t cctx;
        char store[MXNAME];
+#ifdef WITH_IDN
+       idn_result_t mr;
+       char utf8_textname[MXNAME], utf8_origin[MXNAME], idn_textname[MXNAME];
+#endif
+
+#ifdef WITH_IDN
+       result = dns_name_settotextfilter(output_filter);
+       check_result(result, "dns_name_settotextfilter");
+#endif
 
        REQUIRE(lookup != NULL);
        INSIST(!free_now);
@@ -1678,6 +1714,17 @@ setup_lookup(dig_lookup_t *lookup) {
        isc_buffer_init(&lookup->onamebuf, lookup->onamespace,
                        sizeof(lookup->onamespace));
 
+#ifdef WITH_IDN
+       /*
+        * We cannot convert `textname' and `origin' separately.
+        * `textname' doesn't contain TLD, but local mapping needs
+        * TLD.
+        */
+       mr = idn_encodename(IDN_LOCALCONV | IDN_DELIMMAP, lookup->textname,
+                           utf8_textname, sizeof(utf8_textname));
+       idn_check_result(mr, "convert textname to UTF-8");
+#endif
+
        /*
         * If the name has too many dots, force the origin to be NULL
         * (which produces an absolute lookup).  Otherwise, take the origin
@@ -1686,11 +1733,33 @@ setup_lookup(dig_lookup_t *lookup) {
         * is TRUE or we got a domain line in the resolv.conf file.
         */
        /* XXX New search here? */
+#ifdef WITH_IDN
+       if ((count_dots(utf8_textname) >= ndots) || !usesearch)
+               lookup->origin = NULL; /* Force abs lookup */
+       else if (lookup->origin == NULL && lookup->new_search && usesearch)
+               lookup->origin = ISC_LIST_HEAD(search_list);
+#else
        if ((count_dots(lookup->textname) >= ndots) || !usesearch)
                lookup->origin = NULL; /* Force abs lookup */
        else if (lookup->origin == NULL && lookup->new_search && usesearch)
                lookup->origin = ISC_LIST_HEAD(search_list);
+#endif
 
+#ifdef WITH_IDN
+       if (lookup->origin != NULL) {
+               mr = idn_encodename(IDN_LOCALCONV | IDN_DELIMMAP,
+                                   lookup->origin->origin, utf8_origin,
+                                   sizeof(utf8_origin));
+               idn_check_result(mr, "convert origin to UTF-8");
+               mr = append_textname(utf8_textname, utf8_origin,
+                                    sizeof(utf8_textname));
+               idn_check_result(mr, "append origin to textname");
+       }
+       mr = idn_encodename(IDN_LOCALMAP | IDN_NAMEPREP | IDN_ASCCHECK |
+                           IDN_IDNCONV | IDN_LENCHECK, utf8_textname,
+                           idn_textname, sizeof(idn_textname));
+       idn_check_result(mr, "convert UTF-8 textname to IDN encoding");
+#else
        if (lookup->origin != NULL) {
                debug("trying origin %s", lookup->origin->origin);
                result = dns_message_gettempname(lookup->sendmsg,
@@ -1731,11 +1800,22 @@ setup_lookup(dig_lookup_t *lookup) {
                              lookup->textname, isc_result_totext(result));
                }
                dns_message_puttempname(lookup->sendmsg, &lookup->oname);
-       } else {
+       } else
+#endif
+       {
                debug("using root origin");
                if (lookup->trace && lookup->trace_root)
                        dns_name_clone(dns_rootname, lookup->name);
                else {
+#ifdef WITH_IDN
+                       len = strlen(idn_textname);
+                       isc_buffer_init(&b, idn_textname, len);
+                       isc_buffer_add(&b, len);
+                       result = dns_name_fromtext(lookup->name, &b,
+                                                  dns_rootname,
+                                                  ISC_FALSE,
+                                                  &lookup->namebuf);
+#else
                        len = strlen(lookup->textname);
                        isc_buffer_init(&b, lookup->textname, len);
                        isc_buffer_add(&b, len);
@@ -1743,6 +1823,7 @@ setup_lookup(dig_lookup_t *lookup) {
                                                   dns_rootname,
                                                   ISC_FALSE,
                                                   &lookup->namebuf);
+#endif
                }
                if (result != ISC_R_SUCCESS) {
                        dns_message_puttempname(lookup->sendmsg,
@@ -3249,8 +3330,104 @@ destroy_libs(void) {
                isc_mem_destroy(&mctx);
 }
 
+#ifdef WITH_IDN
+static void
+initialize_idn(void) {
+       idn_result_t r;
+       isc_result_t result;
+
+#ifdef HAVE_SETLOCALE
+       /* Set locale */
+       (void)setlocale(LC_ALL, "");
+#endif
+       /* Create configuration context. */
+       r = idn_nameinit(1);
+       if (r != idn_success)
+               fatal("idn api initialization failed: %s",
+                     idn_result_tostring(r));
+
+       /* Set domain name -> text post-conversion filter. */
+       result = dns_name_settotextfilter(output_filter);
+       check_result(result, "dns_name_settotextfilter");
+}
+
+static isc_result_t
+output_filter(isc_buffer_t *buffer, unsigned int used_org,
+             isc_boolean_t absolute)
+{
+       char tmp1[MAXDLEN], tmp2[MAXDLEN];
+       size_t fromlen, tolen;
+       isc_boolean_t end_with_dot;
+
+       /*
+        * Copy contents of 'buffer' to 'tmp1', supply trailing dot
+        * if 'absolute' is true, and terminate with NUL.
+        */
+       fromlen = isc_buffer_usedlength(buffer) - used_org;
+       if (fromlen >= MAXDLEN)
+               return (ISC_R_SUCCESS);
+       memcpy(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
+       end_with_dot = (tmp1[fromlen - 1] == '.') ? ISC_TRUE : ISC_FALSE;
+       if (absolute && !end_with_dot) {
+               fromlen++;
+               if (fromlen >= MAXDLEN)
+                       return (ISC_R_SUCCESS);
+               tmp1[fromlen - 1] = '.';
+       }
+       tmp1[fromlen] = '\0';
 
+       /*
+        * Convert contents of 'tmp1' to local encoding.
+        */
+       if (idn_decodename(IDN_DECODE_APP, tmp1, tmp2, MAXDLEN) != idn_success)
+               return (ISC_R_SUCCESS);
+       strcpy(tmp1, tmp2);
+
+       /*
+        * Copy the converted contents in 'tmp1' back to 'buffer'.
+        * If we have appended trailing dot, remove it.
+        */
+       tolen = strlen(tmp1);
+       if (absolute && !end_with_dot && tmp1[tolen - 1] == '.')
+               tolen--;
+
+       if (isc_buffer_length(buffer) < used_org + tolen)
+               return (ISC_R_NOSPACE);
+
+       isc_buffer_subtract(buffer, isc_buffer_usedlength(buffer) - used_org);
+       memcpy(isc_buffer_used(buffer), tmp1, tolen);
+       isc_buffer_add(buffer, tolen);
+
+       return (ISC_R_SUCCESS);
+}
+
+static idn_result_t
+append_textname(char *name, const char *origin, size_t namesize) {
+       size_t namelen = strlen(name);
+       size_t originlen = strlen(origin);
+
+       /* Already absolute? */
+       if (namelen > 0 && name[namelen - 1] == '.')
+               return idn_success;
+
+       /* Append dot and origin */
+
+       if (namelen + 1 + originlen >= namesize)
+               return idn_buffer_overflow;
+
+       name[namelen++] = '.';
+       (void)strcpy(name + namelen, origin);
+       return idn_success;
+}
+static void
+idn_check_result(idn_result_t r, const char *msg) {
+       if (r != idn_success) {
+               exitcode = 1;
+               fatal("%s: %s", msg, idn_result_tostring(r));
+       }
+}
+#endif /* WITH_IDN */
 
 #ifdef DIG_SIGCHASE
 void
index f4d5042b723237cbedb23c82ecac6463978fbdff..5e512ccef1f8a902820a6edaaff729ae946afb36 100644 (file)
@@ -18,7 +18,7 @@
  - PERFORMANCE OF THIS SOFTWARE.
 -->
 
-<!-- $Id: host.docbook,v 1.5.18.6 2005/08/25 00:33:36 marka Exp $ -->
+<!-- $Id: host.docbook,v 1.5.18.7 2005/09/09 06:22:06 marka Exp $ -->
 <refentry id="man.host">
 
   <refentryinfo>
     </para>
   </refsect1>
 
+  <refsect1>
+    <title>IDN SUPPORT</title>
+    <para>
+      If <command>host</command> has been built with IDN (internationalized
+      domain name) support, it can accept and display non-ASCII domain names. 
+      <command>host</command> appropriately converts character encoding of
+      domain name before sending a request to DNS server or displaying a
+      reply from the server.
+      If you'd like to turn off the IDN support for some reason, defines
+      the <envar>IDN_DISABLE</envar> environment variable.
+      The IDN support is disabled if the variable is set when
+      <command>host</command> runs.
+    </para>
+  </refsect1>
+
   <refsect1>
     <title>FILES</title>
     <para><filename>/etc/resolv.conf</filename>
index 8f0f8edb1d1a066fd52c4026693e6e86a85df2c1..c44edd584f586ff529a66c1c5e67e50d92c7c4c9 100644 (file)
@@ -16,7 +16,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: config.h.in,v 1.60.18.11 2005/09/09 06:22:03 marka Exp $ */
+/* $Id: config.h.in,v 1.60.18.12 2005/09/09 06:23:39 marka Exp $ */
 
 /*! \file */
 
index 3eb5347c0b5ad02b6b43287eb49aba202a65c1a1..6c589f7991a1c1ffb90335153ebcd6ed2122403a 100755 (executable)
--- a/configure
+++ b/configure
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 #
-# $Id: configure,v 1.339.18.38 2005/09/05 03:16:30 marka Exp $
+# $Id: configure,v 1.339.18.39 2005/09/09 06:23:39 marka Exp $
 #
 # Portions Copyright (C) 1996-2001  Nominum, Inc.
 #
@@ -495,7 +495,7 @@ ac_includes_default="\
 # 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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS subdirs build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S STD_CINCLUDES STD_CDEFINES STD_CWARNINGS CCOPT AR ARFLAGS LN ETAGS PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP ISC_SOCKADDR_LEN_T ISC_PLATFORM_HAVELONGLONG ISC_PLATFORM_HAVELIFCONF ISC_PLATFORM_NEEDSYSSELECTH LWRES_PLATFORM_NEEDSYSSELECTH USE_OPENSSL DST_OPENSSL_INC USE_GSSAPI DST_GSSAPI_INC DNS_CRYPTO_LIBS ALWAYS_DEFINES ISC_PLATFORM_USETHREADS ISC_THREAD_DIR MKDEPCC MKDEPCFLAGS MKDEPPROG IRIX_DNSSEC_WARNINGS_HACK purify_path PURIFY ECHO ac_ct_AR STRIP ac_ct_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 LIBTOOL_ALLOW_UNDEFINED LIBTOOL_IN_MAIN LIBBIND ISC_PLATFORM_HAVEIPV6 LWRES_PLATFORM_HAVEIPV6 ISC_PLATFORM_NEEDNETINETIN6H LWRES_PLATFORM_NEEDNETINETIN6H ISC_PLATFORM_NEEDNETINET6IN6H LWRES_PLATFORM_NEEDNETINET6IN6H ISC_PLATFORM_HAVEINADDR6 LWRES_PLATFORM_HAVEINADDR6 ISC_PLATFORM_NEEDIN6ADDRANY LWRES_PLATFORM_NEEDIN6ADDRANY ISC_PLATFORM_NEEDIN6ADDRLOOPBACK LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK ISC_PLATFORM_HAVEIN6PKTINFO ISC_PLATFORM_FIXIN6ISADDR ISC_IPV6_H ISC_IPV6_O ISC_ISCIPV6_O ISC_IPV6_C LWRES_HAVE_SIN6_SCOPE_ID ISC_PLATFORM_HAVESCOPEID ISC_PLATFORM_HAVEIF_LADDRREQ ISC_PLATFORM_HAVEIF_LADDRCONF ISC_PLATFORM_NEEDNTOP ISC_PLATFORM_NEEDPTON ISC_PLATFORM_NEEDATON ISC_PLATFORM_HAVESALEN LWRES_PLATFORM_HAVESALEN ISC_PLATFORM_MSGHDRFLAVOR ISC_PLATFORM_NEEDPORTT ISC_LWRES_NEEDADDRINFO ISC_LWRES_NEEDRRSETINFO ISC_LWRES_SETHOSTENTINT ISC_LWRES_ENDHOSTENTINT ISC_LWRES_GETNETBYADDRINADDR ISC_LWRES_SETNETENTINT ISC_LWRES_ENDNETENTINT ISC_LWRES_GETHOSTBYADDRVOID ISC_LWRES_NEEDHERRNO ISC_LWRES_GETIPNODEPROTO ISC_LWRES_GETADDRINFOPROTO ISC_LWRES_GETNAMEINFOPROTO ISC_PLATFORM_NEEDSTRSEP ISC_PLATFORM_NEEDMEMMOVE ISC_PLATFORM_NEEDSTRTOUL LWRES_PLATFORM_NEEDSTRTOUL GENRANDOMLIB ISC_PLATFORM_NEEDSTRLCPY ISC_PLATFORM_NEEDSTRLCAT ISC_PLATFORM_NEEDSPRINTF LWRES_PLATFORM_NEEDSPRINTF ISC_PLATFORM_NEEDVSNPRINTF LWRES_PLATFORM_NEEDVSNPRINTF ISC_EXTRA_OBJS ISC_EXTRA_SRCS ISC_PLATFORM_QUADFORMAT LWRES_PLATFORM_QUADFORMAT ISC_PLATFORM_HAVESYSUNH ISC_PLATFORM_RLIMITTYPE ISC_PLATFORM_USEDECLSPEC LWRES_PLATFORM_USEDECLSPEC ISC_PLATFORM_BRACEPTHREADONCEINIT ISC_PLATFORM_HAVEIFNAMETOINDEX ISC_PLATFORM_HAVEXADD ISC_PLATFORM_HAVECMPXCHG ISC_PLATFORM_HAVEATOMICSTORE ISC_PLATFORM_USEGCCASM ISC_PLATFORM_USEOSFASM ISC_PLATFORM_USESTDASM ISC_ARCH_DIR LATEX PDFLATEX W3M XSLTPROC XMLLINT XSLT_DOCBOOK_STYLE_HTML XSLT_DOCBOOK_STYLE_XHTML XSLT_DOCBOOK_STYLE_MAN XSLT_DOCBOOK_CHUNK_HTML XSLT_DOCBOOK_CHUNK_XHTML XSLT_DOCBOOK_CHUNKTOC_HTML XSLT_DOCBOOK_CHUNKTOC_XHTML XSLT_DOCBOOK_MAKETOC_HTML XSLT_DOCBOOK_MAKETOC_XHTML XSLT_DB2LATEX_STYLE XSLT_DB2LATEX_ADMONITIONS BIND9_TOP_BUILDDIR BIND9_ISC_BUILDINCLUDE BIND9_ISCCC_BUILDINCLUDE BIND9_ISCCFG_BUILDINCLUDE BIND9_DNS_BUILDINCLUDE BIND9_LWRES_BUILDINCLUDE BIND9_BIND9_BUILDINCLUDE BIND9_VERSION PG_CONFIG USE_DLZ DLZ_DRIVER_INCLUDES DLZ_DRIVER_LIBS DLZ_DRIVER_SRCS DLZ_DRIVER_OBJS LIBOBJS LTLIBOBJS'
+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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS subdirs build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S STD_CINCLUDES STD_CDEFINES STD_CWARNINGS CCOPT AR ARFLAGS LN ETAGS PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP ISC_SOCKADDR_LEN_T ISC_PLATFORM_HAVELONGLONG ISC_PLATFORM_HAVELIFCONF ISC_PLATFORM_NEEDSYSSELECTH LWRES_PLATFORM_NEEDSYSSELECTH USE_OPENSSL DST_OPENSSL_INC USE_GSSAPI DST_GSSAPI_INC DNS_CRYPTO_LIBS ALWAYS_DEFINES ISC_PLATFORM_USETHREADS ISC_THREAD_DIR MKDEPCC MKDEPCFLAGS MKDEPPROG IRIX_DNSSEC_WARNINGS_HACK purify_path PURIFY ECHO ac_ct_AR STRIP ac_ct_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 LIBTOOL_ALLOW_UNDEFINED LIBTOOL_IN_MAIN LIBBIND ISC_PLATFORM_HAVEIPV6 LWRES_PLATFORM_HAVEIPV6 ISC_PLATFORM_NEEDNETINETIN6H LWRES_PLATFORM_NEEDNETINETIN6H ISC_PLATFORM_NEEDNETINET6IN6H LWRES_PLATFORM_NEEDNETINET6IN6H ISC_PLATFORM_HAVEINADDR6 LWRES_PLATFORM_HAVEINADDR6 ISC_PLATFORM_NEEDIN6ADDRANY LWRES_PLATFORM_NEEDIN6ADDRANY ISC_PLATFORM_NEEDIN6ADDRLOOPBACK LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK ISC_PLATFORM_HAVEIN6PKTINFO ISC_PLATFORM_FIXIN6ISADDR ISC_IPV6_H ISC_IPV6_O ISC_ISCIPV6_O ISC_IPV6_C LWRES_HAVE_SIN6_SCOPE_ID ISC_PLATFORM_HAVESCOPEID ISC_PLATFORM_HAVEIF_LADDRREQ ISC_PLATFORM_HAVEIF_LADDRCONF ISC_PLATFORM_NEEDNTOP ISC_PLATFORM_NEEDPTON ISC_PLATFORM_NEEDATON ISC_PLATFORM_HAVESALEN LWRES_PLATFORM_HAVESALEN ISC_PLATFORM_MSGHDRFLAVOR ISC_PLATFORM_NEEDPORTT ISC_LWRES_NEEDADDRINFO ISC_LWRES_NEEDRRSETINFO ISC_LWRES_SETHOSTENTINT ISC_LWRES_ENDHOSTENTINT ISC_LWRES_GETNETBYADDRINADDR ISC_LWRES_SETNETENTINT ISC_LWRES_ENDNETENTINT ISC_LWRES_GETHOSTBYADDRVOID ISC_LWRES_NEEDHERRNO ISC_LWRES_GETIPNODEPROTO ISC_LWRES_GETADDRINFOPROTO ISC_LWRES_GETNAMEINFOPROTO ISC_PLATFORM_NEEDSTRSEP ISC_PLATFORM_NEEDMEMMOVE ISC_PLATFORM_NEEDSTRTOUL LWRES_PLATFORM_NEEDSTRTOUL GENRANDOMLIB ISC_PLATFORM_NEEDSTRLCPY ISC_PLATFORM_NEEDSTRLCAT ISC_PLATFORM_NEEDSPRINTF LWRES_PLATFORM_NEEDSPRINTF ISC_PLATFORM_NEEDVSNPRINTF LWRES_PLATFORM_NEEDVSNPRINTF ISC_EXTRA_OBJS ISC_EXTRA_SRCS ISC_PLATFORM_QUADFORMAT LWRES_PLATFORM_QUADFORMAT ISC_PLATFORM_HAVESYSUNH ISC_PLATFORM_RLIMITTYPE ISC_PLATFORM_USEDECLSPEC LWRES_PLATFORM_USEDECLSPEC ISC_PLATFORM_BRACEPTHREADONCEINIT ISC_PLATFORM_HAVEIFNAMETOINDEX ISC_PLATFORM_HAVEXADD ISC_PLATFORM_HAVECMPXCHG ISC_PLATFORM_HAVEATOMICSTORE ISC_PLATFORM_USEGCCASM ISC_PLATFORM_USEOSFASM ISC_PLATFORM_USESTDASM ISC_ARCH_DIR LATEX PDFLATEX W3M XSLTPROC XMLLINT XSLT_DOCBOOK_STYLE_HTML XSLT_DOCBOOK_STYLE_XHTML XSLT_DOCBOOK_STYLE_MAN XSLT_DOCBOOK_CHUNK_HTML XSLT_DOCBOOK_CHUNK_XHTML XSLT_DOCBOOK_CHUNKTOC_HTML XSLT_DOCBOOK_CHUNKTOC_XHTML XSLT_DOCBOOK_MAKETOC_HTML XSLT_DOCBOOK_MAKETOC_XHTML XSLT_DB2LATEX_STYLE XSLT_DB2LATEX_ADMONITIONS IDNLIBS BIND9_TOP_BUILDDIR BIND9_ISC_BUILDINCLUDE BIND9_ISCCC_BUILDINCLUDE BIND9_ISCCFG_BUILDINCLUDE BIND9_DNS_BUILDINCLUDE BIND9_LWRES_BUILDINCLUDE BIND9_BIND9_BUILDINCLUDE BIND9_VERSION PG_CONFIG USE_DLZ DLZ_DRIVER_INCLUDES DLZ_DRIVER_LIBS DLZ_DRIVER_SRCS DLZ_DRIVER_OBJS LIBOBJS LTLIBOBJS'
 ac_subst_files='BIND9_MAKE_INCLUDES BIND9_MAKE_RULES LIBISC_API LIBISCCC_API LIBISCCFG_API LIBDNS_API LIBBIND9_API LIBLWRES_API DLZ_DRIVER_RULES'
 
 # Initialize some variables set by options.
@@ -1082,6 +1082,10 @@ Optional Packages:
   --with-tags[=TAGS]
                           include additional configurations [automatic]
   --with-kame=PATH     use Kame IPv6 default path /usr/local/v6
+  --with-idn=MPREFIX   enable IDN support using idnkit default PREFIX
+  --with-libiconv=IPREFIX   GNU libiconv are in IPREFIX default PREFIX
+  --with-iconv=LIBSPEC   specify iconv library default -liconv
+  --with-idnlib=ARG    specify libidnkit
   --with-dlz-postgres=PATH   Build with Postgres DLZ driver yes|no|path.
                                (Required to use Postgres with DLZ)
   --with-dlz-mysql=PATH   Build with MySQL DLZ driver yes|no|path.
@@ -8157,7 +8161,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 8160 "configure"' > conftest.$ac_ext
+  echo '#line 8164 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -9154,7 +9158,7 @@ fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:9157:" \
+echo "$as_me:9161:" \
      "checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -10215,11 +10219,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10218: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10222: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10222: \$? = $ac_status" >&5
+   echo "$as_me:10226: \$? = $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
@@ -10458,11 +10462,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10461: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10465: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10465: \$? = $ac_status" >&5
+   echo "$as_me:10469: \$? = $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
@@ -10518,11 +10522,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10521: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10525: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10525: \$? = $ac_status" >&5
+   echo "$as_me:10529: \$? = $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
@@ -12703,7 +12707,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 12706 "configure"
+#line 12710 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12801,7 +12805,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 12804 "configure"
+#line 12808 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14998,11 +15002,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15001: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15005: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15005: \$? = $ac_status" >&5
+   echo "$as_me:15009: \$? = $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
@@ -15058,11 +15062,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15061: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15065: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15065: \$? = $ac_status" >&5
+   echo "$as_me:15069: \$? = $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
@@ -16419,7 +16423,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 16422 "configure"
+#line 16426 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16517,7 +16521,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 16520 "configure"
+#line 16524 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17354,11 +17358,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17357: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17361: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17361: \$? = $ac_status" >&5
+   echo "$as_me:17365: \$? = $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
@@ -17414,11 +17418,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17417: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17421: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17421: \$? = $ac_status" >&5
+   echo "$as_me:17425: \$? = $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
@@ -19453,11 +19457,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19456: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19460: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19460: \$? = $ac_status" >&5
+   echo "$as_me:19464: \$? = $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
@@ -19696,11 +19700,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19699: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19703: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19703: \$? = $ac_status" >&5
+   echo "$as_me:19707: \$? = $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
@@ -19756,11 +19760,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19759: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19763: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19763: \$? = $ac_status" >&5
+   echo "$as_me:19767: \$? = $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
@@ -21941,7 +21945,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 21944 "configure"
+#line 21948 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -22039,7 +22043,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 22042 "configure"
+#line 22046 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -28358,6 +28362,356 @@ echo "${ECHO_T}not found" >&6
 fi
 
 
+#
+# IDN support
+#
+
+# Check whether --with-idn or --without-idn was given.
+if test "${with_idn+set}" = set; then
+  withval="$with_idn"
+  use_idn="$withval"
+else
+  use_idn="no"
+fi;
+case "$use_idn" in
+yes)
+       if test X$prefix = XNONE ; then
+               idn_path=/usr/local
+       else
+               idn_path=$prefix
+       fi
+       ;;
+no)
+       ;;
+*)
+       idn_path="$use_idn"
+       ;;
+esac
+
+iconvinc=
+iconvlib=
+
+# Check whether --with-libiconv or --without-libiconv was given.
+if test "${with_libiconv+set}" = set; then
+  withval="$with_libiconv"
+  use_libiconv="$withval"
+else
+  use_libiconv="no"
+fi;
+case "$use_libiconv" in
+yes)
+       if test X$prefix = XNONE ; then
+               iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
+       else
+               iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
+       fi
+       ;;
+no)
+       iconvlib=
+       ;;
+*)
+       iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
+       ;;
+esac
+
+
+# Check whether --with-iconv or --without-iconv was given.
+if test "${with_iconv+set}" = set; then
+  withval="$with_iconv"
+  iconvlib="$withval"
+fi;
+case "$iconvlib" in
+no)
+       iconvlib=
+       ;;
+yes)
+       iconvlib=-liconv
+       ;;
+esac
+
+
+# Check whether --with-idnlib or --without-idnlib was given.
+if test "${with_idnlib+set}" = set; then
+  withval="$with_idnlib"
+  idnlib="$withval"
+else
+  idnlib="no"
+fi;
+if test "$idnlib" = yes; then
+       { { echo "$as_me:$LINENO: error: You must specify ARG for --with-idnlib." >&5
+echo "$as_me: error: You must specify ARG for --with-idnlib." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+IDNLIBS=
+if test "$use_idn" != no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define WITH_IDN 1
+_ACEOF
+
+       STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
+       if test "$idnlib" != no; then
+               IDNLIBS="$idnlib $iconvlib"
+       else
+               IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
+       fi
+fi
+
+
+
+for ac_header in locale.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&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); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; 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 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 { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&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; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_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;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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
+
+
+for ac_func in setlocale
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_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.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); 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 $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
 #
 # Substitutions
 #
@@ -29956,6 +30310,7 @@ s,@XSLT_DOCBOOK_MAKETOC_HTML@,$XSLT_DOCBOOK_MAKETOC_HTML,;t t
 s,@XSLT_DOCBOOK_MAKETOC_XHTML@,$XSLT_DOCBOOK_MAKETOC_XHTML,;t t
 s,@XSLT_DB2LATEX_STYLE@,$XSLT_DB2LATEX_STYLE,;t t
 s,@XSLT_DB2LATEX_ADMONITIONS@,$XSLT_DB2LATEX_ADMONITIONS,;t t
+s,@IDNLIBS@,$IDNLIBS,;t t
 s,@BIND9_TOP_BUILDDIR@,$BIND9_TOP_BUILDDIR,;t t
 s,@BIND9_ISC_BUILDINCLUDE@,$BIND9_ISC_BUILDINCLUDE,;t t
 s,@BIND9_ISCCC_BUILDINCLUDE@,$BIND9_ISCCC_BUILDINCLUDE,;t t
index 8f97529c5d5d6196e36cbdcf25768661db3e20a0..931fb104ebf1581d8794b740aa721618a30fdd31 100644 (file)
@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl
 esyscmd([sed "s/^/# /" COPYRIGHT])dnl
 AC_DIVERT_POP()dnl
 
-AC_REVISION($Revision: 1.355.18.37 $)
+AC_REVISION($Revision: 1.355.18.38 $)
 
 AC_INIT(lib/dns/name.c)
 AC_PREREQ(2.59)
@@ -2133,6 +2133,82 @@ then
 fi
 AC_SUBST(XSLT_DB2LATEX_ADMONITIONS)
 
+#
+# IDN support
+#
+AC_ARG_WITH(idn,
+       [  --with-idn[=MPREFIX]   enable IDN support using idnkit [default PREFIX]],
+       use_idn="$withval", use_idn="no")
+case "$use_idn" in
+yes)
+       if test X$prefix = XNONE ; then
+               idn_path=/usr/local
+       else
+               idn_path=$prefix
+       fi
+       ;;
+no)
+       ;;
+*)
+       idn_path="$use_idn"
+       ;;
+esac
+
+iconvinc=
+iconvlib=
+AC_ARG_WITH(libiconv,
+       [  --with-libiconv[=IPREFIX]   GNU libiconv are in IPREFIX [default PREFIX]],
+       use_libiconv="$withval", use_libiconv="no")
+case "$use_libiconv" in
+yes)
+       if test X$prefix = XNONE ; then
+               iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
+       else
+               iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
+       fi
+       ;;
+no)
+       iconvlib=
+       ;;
+*)
+       iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
+       ;;
+esac
+
+AC_ARG_WITH(iconv,
+       [  --with-iconv[=LIBSPEC]   specify iconv library [default -liconv]],
+       iconvlib="$withval")
+case "$iconvlib" in
+no)
+       iconvlib=
+       ;;
+yes)
+       iconvlib=-liconv
+       ;;
+esac
+
+AC_ARG_WITH(idnlib,
+       [  --with-idnlib=ARG    specify libidnkit],
+       idnlib="$withval", idnlib="no")
+if test "$idnlib" = yes; then
+       AC_MSG_ERROR([You must specify ARG for --with-idnlib.])
+fi
+
+IDNLIBS=
+if test "$use_idn" != no; then
+       AC_DEFINE(WITH_IDN, 1, [define if idnkit support is to be included.])
+       STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
+       if test "$idnlib" != no; then
+               IDNLIBS="$idnlib $iconvlib"
+       else
+               IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
+       fi
+fi
+AC_SUBST(IDNLIBS)
+
+AC_CHECK_HEADERS(locale.h)
+AC_CHECK_FUNCS(setlocale)
+
 #
 # Substitutions
 #
diff --git a/contrib/idn/idnkit-1.0-src/patch/bind9/bind-9.4.0-patch b/contrib/idn/idnkit-1.0-src/patch/bind9/bind-9.4.0-patch
deleted file mode 100644 (file)
index 32ccc4d..0000000
+++ /dev/null
@@ -1,939 +0,0 @@
-IDN patch for bind-9.4.0
-========================
-
-
-This is a patch file for ISC BIND 9.4.0 to make it work with
-internationalized domain names.  With this patch you'll get IDN-aware
-dig/host/nslookup.
-
-To apply this patch, you should go to the top directory of the BIND
-distribution (where you see `README' file), then invoke `patch'
-command like this:
-
-        % patch -p0 < this-file
-
-Then follow the instructions described in `README.idnkit' to compile
-and install.
-
-
-Index: README.idnkit
---- /dev/null  Tue Sep  6 13:54:49 2005
-+++ README.idnkit      Tue Sep  6 13:31:05 2005
-@@ -0,0 +1,112 @@
-+
-+                      BIND-9 IDN patch
-+
-+             Japan Network Information Center (JPNIC)
-+
-+
-+* What is this patch for?
-+
-+This patch adds internationalized domain name (IDN) support to BIND-9.
-+You'll get internationalized version of dig/host/nslookup commands.
-+
-+    + internationalized dig/host/nslookup
-+      dig/host/nslookup accepts non-ASCII domain names in the local
-+      codeset (such as Shift JIS, Big5 or ISO8859-1) determined by
-+      the locale information.  The domain names are normalized and
-+      converted to the encoding on the DNS protocol, and sent to DNS
-+      servers.  The replies are converted back to the local codeset
-+      and displayed.
-+
-+
-+* Compilation & installation
-+
-+0. Prerequisite
-+
-+You have to build and install idnkit before building this patched version
-+of bind-9.
-+
-+1. Running configure script
-+
-+Run `configure' in the top directory.  See `README' for the
-+configuration options.
-+
-+This patch adds the following 4 options to `configure'.  You should
-+at least specify `--with-idn' option to enable IDN support.
-+
-+    --with-idn[=IDN_PREFIX]
-+      To enable IDN support, you have to specify `--with-idn' option.
-+      The argument IDN_PREFIX is the install prefix of idnkit.  If
-+      IDN_PREFIX is omitted, PREFIX (derived from `--prefix=PREFIX')
-+      is assumed.
-+
-+    --with-libiconv[=LIBICONV_PREFIX]
-+      Specify this option if idnkit you have installed links GNU
-+      libiconv.  The argument LIBICONV_PREFIX is install prefix of
-+      GNU libiconv.  If the argument is omitted, PREFIX (derived
-+      from `--prefix=PREFIX') is assumed.
-+
-+      `--with-libiconv' is shorthand option for GNU libiconv.
-+
-+          --with-libiconv=/usr/local
-+
-+      This is equivalent to:
-+
-+          --with-iconv='-L/usr/local/lib -R/usr/local/lib -liconv'
-+
-+      `--with-libiconv' assumes that your C compiler has `-R'
-+      option, and that the option adds the specified run-time path
-+      to an exacutable binary.  If `-R' option of your compiler has
-+      different meaning, or your compiler lacks the option, you
-+      should use `--with-iconv' option instead.  Binary command
-+      without run-time path information might be unexecutable.
-+      In that case, you would see an error message like:
-+
-+          error in loading shared libraries: libiconv.so.2: cannot
-+          open shared object file
-+
-+      If both `--with-libiconv' and `--with-iconv' options are
-+      specified, `--with-iconv' is prior to `--with-libiconv'.
-+
-+    --with-iconv=ICONV_LIBSPEC
-+      If your libc doens't provide iconv(), you need to specify the
-+      library containing iconv() with this option.  `ICONV_LIBSPEC'
-+      is the argument(s) to `cc' or `ld' to link the library, for
-+      example, `--with-iconv="-L/usr/local/lib -liconv"'.
-+      You don't need to specify the header file directory for "iconv.h"
-+      to the compiler, as it isn't included directly by bind-9 with
-+      this patch.
-+
-+    --with-idnlib=IDN_LIBSPEC
-+      With this option, you can explicitly specify the argument(s)
-+      to `cc' or `ld' to link the idnkit's library, `libidnkit'.  If
-+      this option is not specified, `-L${PREFIX}/lib -lidnkit' is
-+      assumed, where ${PREFIX} is the installation prefix specified
-+      with `--with-idn' option above.  You may need to use this
-+      option to specify extra argments, for example,
-+      `--with-idnlib="-L/usr/local/lib -R/usr/local/lib -lidnkit"'.
-+
-+Please consult `README' for other configuration options.
-+
-+Note that if you want to specify some extra header file directories,
-+you should use the environment variable STD_CINCLUDES instead of
-+CFLAGS, as described in README.
-+
-+2. Compilation and installation
-+
-+After running "configure", just do
-+
-+      make
-+      make install
-+
-+for compiling and installing.
-+
-+
-+* Contact information
-+
-+Please see http//www.nic.ad.jp/en/idn/ for the latest news
-+about idnkit and this patch.
-+
-+Bug reports and comments on this kit should be sent to
-+mdnkit-bugs@nic.ad.jp and idn-cmt@nic.ad.jp, respectively.
-+
-+; $Id: bind-9.2.2-patch,v 1.1.1.1 2003/06/04 00:27:32 marka Exp $
-Index: config.h.in
-===================================================================
-RCS file: /proj/cvs/prod/bind9/config.h.in,v
-retrieving revision 1.60.18.10
-diff -U2 -r1.60.18.10 config.h.in
---- config.h.in        27 Jul 2005 04:25:03 -0000      1.60.18.10
-+++ config.h.in        6 Sep 2005 03:55:33 -0000
-@@ -17,5 +17,5 @@
-  */
--/* $Id: config.h.in,v 1.60.18.10 2005/07/27 04:25:03 marka Exp $ */
-+/* $Id: acconfig.h,v 1.44.18.5 2005/04/29 00:15:20 marka Exp $ */
- /*! \file */
-@@ -181,4 +181,7 @@
- #undef HAVE_LINUX_CAPABILITY_H
-+/* Define to 1 if you have the <locale.h> header file. */
-+#undef HAVE_LOCALE_H
-+
- /* Define to 1 if you have the <memory.h> header file. */
- #undef HAVE_MEMORY_H
-@@ -187,4 +190,7 @@
- #undef HAVE_NET_IF6_H
-+/* Define to 1 if you have the `setlocale' function. */
-+#undef HAVE_SETLOCALE
-+
- /* Define to 1 if you have the <stdint.h> header file. */
- #undef HAVE_STDINT_H
-@@ -268,4 +274,7 @@
- #undef USE_FIONBIO_IOCTL
-+/* define if idnkit support is to be included. */
-+#undef WITH_IDN
-+
- /* Define to 1 if your processor stores words with the most significant byte
-    first (like Motorola and SPARC, unlike Intel and VAX). */
-Index: configure
-===================================================================
-RCS file: /proj/cvs/prod/bind9/configure,v
-retrieving revision 1.339.18.38
-diff -U2 -r1.339.18.38 configure
---- configure  5 Sep 2005 03:16:30 -0000       1.339.18.38
-+++ configure  6 Sep 2005 03:56:40 -0000
-@@ -15,5 +15,5 @@
- # PERFORMANCE OF THIS SOFTWARE.
- #
--# $Id: configure,v 1.339.18.38 2005/09/05 03:16:30 marka Exp $
-+# $Id: COPYRIGHT,v 1.9.18.1 2005/01/10 23:50:57 marka Exp $
- #
- # Portions Copyright (C) 1996-2001  Nominum, Inc.
-@@ -496,5 +496,5 @@
- #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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS subdirs build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S STD_CINCLUDES STD_CDEFINES STD_CWARNINGS CCOPT AR ARFLAGS LN ETAGS PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP ISC_SOCKADDR_LEN_T ISC_PLATFORM_HAVELONGLONG ISC_PLATFORM_HAVELIFCONF ISC_PLATFORM_NEEDSYSSELECTH LWRES_PLATFORM_NEEDSYSSELECTH USE_OPENSSL DST_OPENSSL_INC USE_GSSAPI DST_GSSAPI_INC DNS_CRYPTO_LIBS ALWAYS_DEFINES ISC_PLATFORM_USETHREADS ISC_THREAD_DIR MKDEPCC MKDEPCFLAGS MKDEPPROG IRIX_DNSSEC_WARNINGS_HACK purify_path PURIFY ECHO ac_ct_AR STRIP ac_ct_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 LIBTOOL_ALLOW_UNDEFINED LIBTOOL_IN_MAIN LIBBIND ISC_PLATFORM_HAVEIPV6 LWRES_PLATFORM_HAVEIPV6 ISC_PLATFORM_NEEDNETINETIN6H LWRES_PLATFORM_NEEDNETINETIN6H ISC_PLATFORM_NEEDNETINET6IN6H LWRES_PLATFORM_NEEDNETINET6IN6H ISC_PLATFORM_HAVEINADDR6 LWRES_PLATFORM_HAVEINADDR6 ISC_PLATFORM_NEEDIN6ADDRANY LWRES_PLATFORM_NEEDIN6ADDRANY ISC_PLATFORM_NEEDIN6ADDRLOOPBACK LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK ISC_PLATFORM_HAVEIN6PKTINFO ISC_PLATFORM_FIXIN6ISADDR ISC_IPV6_H ISC_IPV6_O ISC_ISCIPV6_O ISC_IPV6_C LWRES_HAVE_SIN6_SCOPE_ID ISC_PLATFORM_HAVESCOPEID ISC_PLATFORM_HAVEIF_LADDRREQ ISC_PLATFORM_HAVEIF_LADDRCONF ISC_PLATFORM_NEEDNTOP ISC_PLATFORM_NEEDPTON ISC_PLATFORM_NEEDATON ISC_PLATFORM_HAVESALEN LWRES_PLATFORM_HAVESALEN ISC_PLATFORM_MSGHDRFLAVOR ISC_PLATFORM_NEEDPORTT ISC_LWRES_NEEDADDRINFO ISC_LWRES_NEEDRRSETINFO ISC_LWRES_SETHOSTENTINT ISC_LWRES_ENDHOSTENTINT ISC_LWRES_GETNETBYADDRINADDR ISC_LWRES_SETNETENTINT ISC_LWRES_ENDNETENTINT ISC_LWRES_GETHOSTBYADDRVOID ISC_LWRES_NEEDHERRNO ISC_LWRES_GETIPNODEPROTO ISC_LWRES_GETADDRINFOPROTO ISC_LWRES_GETNAMEINFOPROTO ISC_PLATFORM_NEEDSTRSEP ISC_PLATFORM_NEEDMEMMOVE ISC_PLATFORM_NEEDSTRTOUL LWRES_PLATFORM_NEEDSTRTOUL GENRANDOMLIB ISC_PLATFORM_NEEDSTRLCPY ISC_PLATFORM_NEEDSTRLCAT ISC_PLATFORM_NEEDSPRINTF LWRES_PLATFORM_NEEDSPRINTF ISC_PLATFORM_NEEDVSNPRINTF LWRES_PLATFORM_NEEDVSNPRINTF ISC_EXTRA_OBJS ISC_EXTRA_SRCS ISC_PLATFORM_QUADFORMAT LWRES_PLATFORM_QUADFORMAT ISC_PLATFORM_HAVESYSUNH ISC_PLATFORM_RLIMITTYPE ISC_PLATFORM_USEDECLSPEC LWRES_PLATFORM_USEDECLSPEC ISC_PLATFORM_BRACEPTHREADONCEINIT ISC_PLATFORM_HAVEIFNAMETOINDEX ISC_PLATFORM_HAVEXADD ISC_PLATFORM_HAVECMPXCHG ISC_PLATFORM_HAVEATOMICSTORE ISC_PLATFORM_USEGCCASM ISC_PLATFORM_USEOSFASM ISC_PLATFORM_USESTDASM ISC_ARCH_DIR LATEX PDFLATEX W3M XSLTPROC XMLLINT XSLT_DOCBOOK_STYLE_HTML XSLT_DOCBOOK_STYLE_XHTML XSLT_DOCBOOK_STYLE_MAN XSLT_DOCBOOK_CHUNK_HTML XSLT_DOCBOOK_CHUNK_XHTML XSLT_DOCBOOK_CHUNKTOC_HTML XSLT_DOCBOOK_CHUNKTOC_XHTML XSLT_DOCBOOK_MAKETOC_HTML XSLT_DOCBOOK_MAKETOC_XHTML XSLT_DB2LATEX_STYLE XSLT_DB2LATEX_ADMONITIONS BIND9_TOP_BUILDDIR BIND9_ISC_BUILDINCLUDE BIND9_ISCCC_BUILDINCLUDE BIND9_ISCCFG_BUILDINCLUDE BIND9_DNS_BUILDINCLUDE BIND9_LWRES_BUILDINCLUDE BIND9_BIND9_BUILDINCLUDE BIND9_VERSION PG_CONFIG USE_DLZ DLZ_DRIVER_INCLUDES DLZ_DRIVER_LIBS DLZ_DRIVER_SRCS DLZ_DRIVER_OBJS LIBOBJS LTLIBOBJS'
-+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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS subdirs build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S STD_CINCLUDES STD_CDEFINES STD_CWARNINGS CCOPT AR ARFLAGS LN ETAGS PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP ISC_SOCKADDR_LEN_T ISC_PLATFORM_HAVELONGLONG ISC_PLATFORM_HAVELIFCONF ISC_PLATFORM_NEEDSYSSELECTH LWRES_PLATFORM_NEEDSYSSELECTH USE_OPENSSL DST_OPENSSL_INC USE_GSSAPI DST_GSSAPI_INC DNS_CRYPTO_LIBS ALWAYS_DEFINES ISC_PLATFORM_USETHREADS ISC_THREAD_DIR MKDEPCC MKDEPCFLAGS MKDEPPROG IRIX_DNSSEC_WARNINGS_HACK purify_path PURIFY ECHO ac_ct_AR STRIP ac_ct_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 LIBTOOL_ALLOW_UNDEFINED LIBTOOL_IN_MAIN LIBBIND ISC_PLATFORM_HAVEIPV6 LWRES_PLATFORM_HAVEIPV6 ISC_PLATFORM_NEEDNETINETIN6H LWRES_PLATFORM_NEEDNETINETIN6H ISC_PLATFORM_NEEDNETINET6IN6H LWRES_PLATFORM_NEEDNETINET6IN6H ISC_PLATFORM_HAVEINADDR6 LWRES_PLATFORM_HAVEINADDR6 ISC_PLATFORM_NEEDIN6ADDRANY LWRES_PLATFORM_NEEDIN6ADDRANY ISC_PLATFORM_NEEDIN6ADDRLOOPBACK LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK ISC_PLATFORM_HAVEIN6PKTINFO ISC_PLATFORM_FIXIN6ISADDR ISC_IPV6_H ISC_IPV6_O ISC_ISCIPV6_O ISC_IPV6_C LWRES_HAVE_SIN6_SCOPE_ID ISC_PLATFORM_HAVESCOPEID ISC_PLATFORM_HAVEIF_LADDRREQ ISC_PLATFORM_HAVEIF_LADDRCONF ISC_PLATFORM_NEEDNTOP ISC_PLATFORM_NEEDPTON ISC_PLATFORM_NEEDATON ISC_PLATFORM_HAVESALEN LWRES_PLATFORM_HAVESALEN ISC_PLATFORM_MSGHDRFLAVOR ISC_PLATFORM_NEEDPORTT ISC_LWRES_NEEDADDRINFO ISC_LWRES_NEEDRRSETINFO ISC_LWRES_SETHOSTENTINT ISC_LWRES_ENDHOSTENTINT ISC_LWRES_GETNETBYADDRINADDR ISC_LWRES_SETNETENTINT ISC_LWRES_ENDNETENTINT ISC_LWRES_GETHOSTBYADDRVOID ISC_LWRES_NEEDHERRNO ISC_LWRES_GETIPNODEPROTO ISC_LWRES_GETADDRINFOPROTO ISC_LWRES_GETNAMEINFOPROTO ISC_PLATFORM_NEEDSTRSEP ISC_PLATFORM_NEEDMEMMOVE ISC_PLATFORM_NEEDSTRTOUL LWRES_PLATFORM_NEEDSTRTOUL GENRANDOMLIB ISC_PLATFORM_NEEDSTRLCPY ISC_PLATFORM_NEEDSTRLCAT ISC_PLATFORM_NEEDSPRINTF LWRES_PLATFORM_NEEDSPRINTF ISC_PLATFORM_NEEDVSNPRINTF LWRES_PLATFORM_NEEDVSNPRINTF ISC_EXTRA_OBJS ISC_EXTRA_SRCS ISC_PLATFORM_QUADFORMAT LWRES_PLATFORM_QUADFORMAT ISC_PLATFORM_HAVESYSUNH ISC_PLATFORM_RLIMITTYPE ISC_PLATFORM_USEDECLSPEC LWRES_PLATFORM_USEDECLSPEC ISC_PLATFORM_BRACEPTHREADONCEINIT ISC_PLATFORM_HAVEIFNAMETOINDEX ISC_PLATFORM_HAVEXADD ISC_PLATFORM_HAVECMPXCHG ISC_PLATFORM_HAVEATOMICSTORE ISC_PLATFORM_USEGCCASM ISC_PLATFORM_USEOSFASM ISC_PLATFORM_USESTDASM ISC_ARCH_DIR LATEX PDFLATEX W3M XSLTPROC XMLLINT XSLT_DOCBOOK_STYLE_HTML XSLT_DOCBOOK_STYLE_XHTML XSLT_DOCBOOK_STYLE_MAN XSLT_DOCBOOK_CHUNK_HTML XSLT_DOCBOOK_CHUNK_XHTML XSLT_DOCBOOK_CHUNKTOC_HTML XSLT_DOCBOOK_CHUNKTOC_XHTML XSLT_DOCBOOK_MAKETOC_HTML XSLT_DOCBOOK_MAKETOC_XHTML XSLT_DB2LATEX_STYLE XSLT_DB2LATEX_ADMONITIONS IDNLIBS BIND9_TOP_BUILDDIR BIND9_ISC_BUILDINCLUDE BIND9_ISCCC_BUILDINCLUDE BIND9_ISCCFG_BUILDINCLUDE BIND9_DNS_BUILDINCLUDE BIND9_LWRES_BUILDINCLUDE BIND9_BIND9_BUILDINCLUDE BIND9_VERSION PG_CONFIG USE_DLZ DLZ_DRIVER_INCLUDES DLZ_DRIVER_LIBS DLZ_DRIVER_SRCS DLZ_DRIVER_OBJS LIBOBJS LTLIBOBJS'
- ac_subst_files='BIND9_MAKE_INCLUDES BIND9_MAKE_RULES LIBISC_API LIBISCCC_API LIBISCCFG_API LIBDNS_API LIBBIND9_API LIBLWRES_API DLZ_DRIVER_RULES'
-@@ -1083,4 +1083,8 @@
-                           include additional configurations [automatic]
-   --with-kame=PATH    use Kame IPv6 default path /usr/local/v6
-+  --with-idn=MPREFIX   enable IDN support using idnkit default PREFIX
-+  --with-libiconv=IPREFIX   GNU libiconv are in IPREFIX default PREFIX
-+  --with-iconv=LIBSPEC   specify iconv library default -liconv
-+  --with-idnlib=ARG    specify libidnkit
-   --with-dlz-postgres=PATH   Build with Postgres DLZ driver yes|no|path.
-                                (Required to use Postgres with DLZ)
-@@ -8158,5 +8162,5 @@
- *-*-irix6*)
-   # Find out which ABI we are using.
--  echo '#line 8160 "configure"' > conftest.$ac_ext
-+  echo '#line 8164 "configure"' > conftest.$ac_ext
-   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-@@ -9155,5 +9159,5 @@
- # Provide some information about the compiler.
--echo "$as_me:9157:" \
-+echo "$as_me:9161:" \
-      "checking for Fortran 77 compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
-@@ -10216,9 +10220,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:10218: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:10222: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:10222: \$? = $ac_status" >&5
-+   echo "$as_me:10226: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -10459,9 +10463,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:10461: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:10465: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:10465: \$? = $ac_status" >&5
-+   echo "$as_me:10469: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -10519,9 +10523,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:10521: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:10525: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>out/conftest.err)
-    ac_status=$?
-    cat out/conftest.err >&5
--   echo "$as_me:10525: \$? = $ac_status" >&5
-+   echo "$as_me:10529: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s out/conftest2.$ac_objext
-    then
-@@ -12704,5 +12708,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 12706 "configure"
-+#line 12710 "configure"
- #include "confdefs.h"
-@@ -12802,5 +12806,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 12804 "configure"
-+#line 12808 "configure"
- #include "confdefs.h"
-@@ -14999,9 +15003,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:15001: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:15005: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:15005: \$? = $ac_status" >&5
-+   echo "$as_me:15009: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -15059,9 +15063,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:15061: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:15065: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>out/conftest.err)
-    ac_status=$?
-    cat out/conftest.err >&5
--   echo "$as_me:15065: \$? = $ac_status" >&5
-+   echo "$as_me:15069: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s out/conftest2.$ac_objext
-    then
-@@ -16420,5 +16424,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 16422 "configure"
-+#line 16426 "configure"
- #include "confdefs.h"
-@@ -16518,5 +16522,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 16520 "configure"
-+#line 16524 "configure"
- #include "confdefs.h"
-@@ -17355,9 +17359,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:17357: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:17361: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:17361: \$? = $ac_status" >&5
-+   echo "$as_me:17365: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -17415,9 +17419,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:17417: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:17421: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>out/conftest.err)
-    ac_status=$?
-    cat out/conftest.err >&5
--   echo "$as_me:17421: \$? = $ac_status" >&5
-+   echo "$as_me:17425: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s out/conftest2.$ac_objext
-    then
-@@ -19454,9 +19458,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:19456: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:19460: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:19460: \$? = $ac_status" >&5
-+   echo "$as_me:19464: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -19697,9 +19701,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:19699: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:19703: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>conftest.err)
-    ac_status=$?
-    cat conftest.err >&5
--   echo "$as_me:19703: \$? = $ac_status" >&5
-+   echo "$as_me:19707: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s "$ac_outfile"; then
-      # The compiler can only warn and ignore the option if not recognized
-@@ -19757,9 +19761,9 @@
-    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-    -e 's:$: $lt_compiler_flag:'`
--   (eval echo "\"\$as_me:19759: $lt_compile\"" >&5)
-+   (eval echo "\"\$as_me:19763: $lt_compile\"" >&5)
-    (eval "$lt_compile" 2>out/conftest.err)
-    ac_status=$?
-    cat out/conftest.err >&5
--   echo "$as_me:19763: \$? = $ac_status" >&5
-+   echo "$as_me:19767: \$? = $ac_status" >&5
-    if (exit $ac_status) && test -s out/conftest2.$ac_objext
-    then
-@@ -21942,5 +21946,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 21944 "configure"
-+#line 21948 "configure"
- #include "confdefs.h"
-@@ -22040,5 +22044,5 @@
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<EOF
--#line 22042 "configure"
-+#line 22046 "configure"
- #include "confdefs.h"
-@@ -28360,4 +28364,354 @@
- #
-+# IDN support
-+#
-+
-+# Check whether --with-idn or --without-idn was given.
-+if test "${with_idn+set}" = set; then
-+  withval="$with_idn"
-+  use_idn="$withval"
-+else
-+  use_idn="no"
-+fi;
-+case "$use_idn" in
-+yes)
-+      if test X$prefix = XNONE ; then
-+              idn_path=/usr/local
-+      else
-+              idn_path=$prefix
-+      fi
-+      ;;
-+no)
-+      ;;
-+*)
-+      idn_path="$use_idn"
-+      ;;
-+esac
-+
-+iconvinc=
-+iconvlib=
-+
-+# Check whether --with-libiconv or --without-libiconv was given.
-+if test "${with_libiconv+set}" = set; then
-+  withval="$with_libiconv"
-+  use_libiconv="$withval"
-+else
-+  use_libiconv="no"
-+fi;
-+case "$use_libiconv" in
-+yes)
-+      if test X$prefix = XNONE ; then
-+              iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
-+      else
-+              iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
-+      fi
-+      ;;
-+no)
-+      iconvlib=
-+      ;;
-+*)
-+      iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
-+      ;;
-+esac
-+
-+
-+# Check whether --with-iconv or --without-iconv was given.
-+if test "${with_iconv+set}" = set; then
-+  withval="$with_iconv"
-+  iconvlib="$withval"
-+fi;
-+case "$iconvlib" in
-+no)
-+      iconvlib=
-+      ;;
-+yes)
-+      iconvlib=-liconv
-+      ;;
-+esac
-+
-+
-+# Check whether --with-idnlib or --without-idnlib was given.
-+if test "${with_idnlib+set}" = set; then
-+  withval="$with_idnlib"
-+  idnlib="$withval"
-+else
-+  idnlib="no"
-+fi;
-+if test "$idnlib" = yes; then
-+      { { echo "$as_me:$LINENO: error: You must specify ARG for --with-idnlib." >&5
-+echo "$as_me: error: You must specify ARG for --with-idnlib." >&2;}
-+   { (exit 1); exit 1; }; }
-+fi
-+
-+IDNLIBS=
-+if test "$use_idn" != no; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define WITH_IDN 1
-+_ACEOF
-+
-+      STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
-+      if test "$idnlib" != no; then
-+              IDNLIBS="$idnlib $iconvlib"
-+      else
-+              IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
-+      fi
-+fi
-+
-+
-+
-+for ac_header in locale.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+  echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&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); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; 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 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 { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&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; then
-+  if test -s conftest.err; then
-+    ac_cpp_err=$ac_c_preproc_warn_flag
-+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+  else
-+    ac_cpp_err=
-+  fi
-+else
-+  ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_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;}
-+    (
-+      cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists.  ##
-+## ------------------------------------------ ##
-+_ASBOX
-+    ) |
-+      sed "s/^/$as_me: WARNING:     /" >&2
-+    ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  eval "$as_ac_Header=\$ac_header_preproc"
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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
-+
-+
-+for ac_func in setlocale
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_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.  */
-+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-+#define $ac_func innocuous_$ac_func
-+
-+/* System header to define __stub macros and hopefully few prototypes,
-+    which can conflict with char $ac_func (); 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 $ac_func
-+
-+/* Override any gcc2 internal prototype to avoid an error.  */
-+#ifdef __cplusplus
-+extern "C"
-+{
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+   builtin and then its argument prototype would still apply.  */
-+char $ac_func ();
-+/* 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_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+char (*f) () = $ac_func;
-+#endif
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+int
-+main ()
-+{
-+return f != $ac_func;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest$ac_exeext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  eval "$as_ac_var=yes"
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_var=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+      conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+  cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+fi
-+done
-+
-+
-+#
- # Substitutions
- #
-@@ -29957,4 +30311,5 @@
- s,@XSLT_DB2LATEX_STYLE@,$XSLT_DB2LATEX_STYLE,;t t
- s,@XSLT_DB2LATEX_ADMONITIONS@,$XSLT_DB2LATEX_ADMONITIONS,;t t
-+s,@IDNLIBS@,$IDNLIBS,;t t
- s,@BIND9_TOP_BUILDDIR@,$BIND9_TOP_BUILDDIR,;t t
- s,@BIND9_ISC_BUILDINCLUDE@,$BIND9_ISC_BUILDINCLUDE,;t t
-Index: configure.in
-===================================================================
-RCS file: /proj/cvs/prod/bind9/configure.in,v
-retrieving revision 1.355.18.37
-diff -U2 -r1.355.18.37 configure.in
---- configure.in       5 Sep 2005 03:01:45 -0000       1.355.18.37
-+++ configure.in       6 Sep 2005 03:56:44 -0000
-@@ -2135,4 +2135,80 @@
- #
-+# IDN support
-+#
-+AC_ARG_WITH(idn,
-+      [  --with-idn[=MPREFIX]   enable IDN support using idnkit [default PREFIX]],
-+      use_idn="$withval", use_idn="no")
-+case "$use_idn" in
-+yes)
-+      if test X$prefix = XNONE ; then
-+              idn_path=/usr/local
-+      else
-+              idn_path=$prefix
-+      fi
-+      ;;
-+no)
-+      ;;
-+*)
-+      idn_path="$use_idn"
-+      ;;
-+esac
-+
-+iconvinc=
-+iconvlib=
-+AC_ARG_WITH(libiconv,
-+      [  --with-libiconv[=IPREFIX]   GNU libiconv are in IPREFIX [default PREFIX]],
-+      use_libiconv="$withval", use_libiconv="no")
-+case "$use_libiconv" in
-+yes)
-+      if test X$prefix = XNONE ; then
-+              iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
-+      else
-+              iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
-+      fi
-+      ;;
-+no)
-+      iconvlib=
-+      ;;
-+*)
-+      iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
-+      ;;
-+esac
-+
-+AC_ARG_WITH(iconv,
-+      [  --with-iconv[=LIBSPEC]   specify iconv library [default -liconv]],
-+      iconvlib="$withval")
-+case "$iconvlib" in
-+no)
-+      iconvlib=
-+      ;;
-+yes)
-+      iconvlib=-liconv
-+      ;;
-+esac
-+
-+AC_ARG_WITH(idnlib,
-+      [  --with-idnlib=ARG    specify libidnkit],
-+      idnlib="$withval", idnlib="no")
-+if test "$idnlib" = yes; then
-+      AC_MSG_ERROR([You must specify ARG for --with-idnlib.])
-+fi
-+
-+IDNLIBS=
-+if test "$use_idn" != no; then
-+      AC_DEFINE(WITH_IDN, 1, [define if idnkit support is to be included.])
-+      STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
-+      if test "$idnlib" != no; then
-+              IDNLIBS="$idnlib $iconvlib"
-+      else
-+              IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
-+      fi
-+fi
-+AC_SUBST(IDNLIBS)
-+
-+AC_CHECK_HEADERS(locale.h)
-+AC_CHECK_FUNCS(setlocale)
-+
-+#
- # Substitutions
- #
-Index: bin/dig/Makefile.in
-===================================================================
-RCS file: /proj/cvs/prod/bind9/bin/dig/Makefile.in,v
-retrieving revision 1.33.18.4
-diff -U2 -r1.33.18.4 Makefile.in
---- bin/dig/Makefile.in        20 Aug 2004 01:08:36 -0000      1.33.18.4
-+++ bin/dig/Makefile.in        6 Sep 2005 03:56:45 -0000
-@@ -46,5 +46,5 @@
- LIBS =                ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} ${ISCLIBS} \
--              ${ISCCFGLIBS} @LIBS@
-+              ${ISCCFGLIBS} @IDNLIBS@ @LIBS@
- SUBDIRS =
-Index: bin/dig/dig.1
-===================================================================
-RCS file: /proj/cvs/prod/bind9/bin/dig/dig.1,v
-retrieving revision 1.23.18.10
-diff -U2 -r1.23.18.10 dig.1
---- bin/dig/dig.1      30 Aug 2005 04:16:44 -0000      1.23.18.10
-+++ bin/dig/dig.1      6 Sep 2005 03:56:46 -0000
-@@ -14,5 +14,5 @@
- .\" PERFORMANCE OF THIS SOFTWARE.
- .\"
--.\" $Id: dig.1,v 1.23.18.10 2005/08/30 04:16:44 marka Exp $
-+.\" $Id$
- .\"
- .hy 0
-@@ -231,4 +231,7 @@
- .fi
-  shows how \fBdig\fR could be used from the command line to make three lookups: an ANY query for www\&.isc\&.org, a reverse lookup of 127\&.0\&.0\&.1 and a query for the NS records of isc\&.org\&. A global query option of \fI+qr\fR is applied, so that \fBdig\fR shows the initial query it made for each lookup\&. The final query has a local query option of \fI+noqr\fR which means that \fBdig\fR will not print the initial query when it looks up the NS records for isc\&.org\&.
-+.SH "IDN SUPPORT"
-+.PP
-+If \fBdig\fR has been built with IDN (internationalized domain name) support, it can accept and display non\-ASCII domain names\&. \fBdig\fR appropriately converts character encoding of domain name before sending a request to DNS server or displaying a reply from the server\&. If you'd like to turn off the IDN support for some reason, defines the \fBIDN_DISABLE\fR environment variable\&. The IDN support is disabled if the the variable is set when \fBdig\fR runs\&.
- .SH "FILES"
- .PP
-Index: bin/dig/dig.docbook
-===================================================================
-RCS file: /proj/cvs/prod/bind9/bin/dig/dig.docbook,v
-retrieving revision 1.17.18.9
-diff -U2 -r1.17.18.9 dig.docbook
---- bin/dig/dig.docbook        30 Aug 2005 00:47:49 -0000      1.17.18.9
-+++ bin/dig/dig.docbook        6 Sep 2005 03:56:49 -0000
-@@ -876,4 +876,19 @@
-   <refsect1>
-+    <title>IDN SUPPORT</title>
-+    <para>
-+      If <command>dig</command> has been built with IDN (internationalized
-+      domain name) support, it can accept and display non-ASCII domain names.
-+      <command>dig</command> appropriately converts character encoding of
-+      domain name before sending a request to DNS server or displaying a
-+      reply from the server.
-+      If you'd like to turn off the IDN support for some reason, defines
-+      the <envar>IDN_DISABLE</envar> environment variable.
-+      The IDN support is disabled if the the variable is set when 
-+      <command>dig</command> runs.
-+    </para>
-+  </refsect1>
-+
-+  <refsect1>
-     <title>FILES</title>
-     <para><filename>/etc/resolv.conf</filename>
-Index: bin/dig/host.1
-===================================================================
-RCS file: /proj/cvs/prod/bind9/bin/dig/host.1,v
-retrieving revision 1.14.18.8
-diff -U2 -r1.14.18.8 host.1
---- bin/dig/host.1     25 Aug 2005 02:54:35 -0000      1.14.18.8
-+++ bin/dig/host.1     6 Sep 2005 03:56:49 -0000
-@@ -14,5 +14,5 @@
- .\" PERFORMANCE OF THIS SOFTWARE.
- .\"
--.\" $Id: host.1,v 1.14.18.8 2005/08/25 02:54:35 marka Exp $
-+.\" $Id$
- .\"
- .hy 0
-@@ -78,4 +78,7 @@
- .PP
- The \fB\-m\fR can be used to set the memory usage debugging flags \fIrecord\fR, \fIusage\fR and \fItrace\fR\&.
-+.SH "IDN SUPPORT"
-+.PP
-+If \fBhost\fR has been built with IDN (internationalized domain name) support, it can accept and display non\-ASCII domain names\&. \fBhost\fR appropriately converts character encoding of domain name before sending a request to DNS server or displaying a reply from the server\&. If you'd like to turn off the IDN support for some reason, defines the \fBIDN_DISABLE\fR environment variable\&. The IDN support is disabled if the the variable is set when \fBhost\fR runs\&.
- .SH "FILES"
- .PP
-Index: bin/dig/host.docbook
-===================================================================
-RCS file: /proj/cvs/prod/bind9/bin/dig/host.docbook,v
-retrieving revision 1.5.18.6
-diff -U2 -r1.5.18.6 host.docbook
---- bin/dig/host.docbook       25 Aug 2005 00:33:36 -0000      1.5.18.6
-+++ bin/dig/host.docbook       6 Sep 2005 03:56:49 -0000
-@@ -239,4 +239,19 @@
-   <refsect1>
-+    <title>IDN SUPPORT</title>
-+    <para>
-+      If <command>host</command> has been built with IDN (internationalized
-+      domain name) support, it can accept and display non-ASCII domain names. 
-+      <command>host</command> appropriately converts character encoding of
-+      domain name before sending a request to DNS server or displaying a
-+      reply from the server.
-+      If you'd like to turn off the IDN support for some reason, defines
-+      the <envar>IDN_DISABLE</envar> environment variable.
-+      The IDN support is disabled if the the variable is set when
-+      <command>host</command> runs.
-+    </para>
-+  </refsect1>
-+
-+  <refsect1>
-     <title>FILES</title>
-     <para><filename>/etc/resolv.conf</filename>
index be55cb9ae0dbe7c22d9b1098a2c710f45ab87480..3c6b6549b8b1871ef1d47cc7e786b0fb46ec0a53 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: name.h,v 1.107.18.10 2005/09/05 00:18:27 marka Exp $ */
+/* $Id: name.h,v 1.107.18.11 2005/09/09 06:22:08 marka Exp $ */
 
 #ifndef DNS_NAME_H
 #define DNS_NAME_H 1
@@ -156,6 +156,15 @@ LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_wildcardname;
  */
 #define DNS_NAME_MAXWIRE 255
 
+/*
+ * Text output filter procedure.
+ * 'target' is the buffer to be converted.  The region to be converted
+ * is from 'buffer'->base + 'used_org' to the end of the used region.
+ */
+typedef isc_result_t (*dns_name_totextfilter_t)(isc_buffer_t *target,
+                                               unsigned int used_org,
+                                               isc_boolean_t absolute);
+
 /***
  *** Initialization
  ***/
@@ -1117,6 +1126,17 @@ dns_name_format(dns_name_t *name, char *cp, unsigned int size);
  *
  */
 
+isc_result_t
+dns_name_settotextfilter(dns_name_totextfilter_t proc);
+/*%<
+ * Set / clear a thread specific function 'proc' to be called at the
+ * end of dns_name_totext().
+ *
+ * Returns
+ *\li  #ISC_R_SUCCESS
+ *\li  #ISC_R_UNEXPECTED
+ */
+
 #define DNS_NAME_FORMATSIZE (DNS_NAME_MAXTEXT + 1)
 /*%<
  * Suggested size of buffer passed to dns_name_format().
index ad7f5b5cd917e3c2aee595bef092f9facc28a672..3db1cc2e66a685cdac43506ba2036ebbcf6e53ce 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: name.c,v 1.144.18.7 2005/07/20 01:49:27 marka Exp $ */
+/* $Id: name.c,v 1.144.18.8 2005/09/09 06:22:07 marka Exp $ */
 
 /*! \file */
 
 #include <isc/buffer.h>
 #include <isc/hash.h>
 #include <isc/mem.h>
+#include <isc/once.h>
 #include <isc/print.h>
 #include <isc/string.h>
+#include <isc/thread.h>
 #include <isc/util.h>
 
 #include <dns/compress.h>
@@ -184,6 +186,15 @@ LIBDNS_EXTERNAL_DATA dns_name_t *dns_wildcardname = &wild;
 unsigned int
 dns_fullname_hash(dns_name_t *name, isc_boolean_t case_sensitive);
 
+/*
+ * dns_name_t to text post-conversion procedure.
+ */
+#ifdef ISC_PLATFORM_USETHREADS
+static isc_thread_key_t totext_filter_proc_key;
+#else
+static dns_name_totextfilter_t totext_filter_proc = NULL;
+#endif
+
 static void
 set_offsets(const dns_name_t *name, unsigned char *offsets,
            dns_name_t *set_name);
@@ -1273,6 +1284,10 @@ dns_name_totext(dns_name_t *name, isc_boolean_t omit_final_dot,
        unsigned int trem, count;
        unsigned int labels;
        isc_boolean_t saw_root = ISC_FALSE;
+       unsigned int oused = target->used;
+#ifdef ISC_PLATFORM_USETHREADS
+       dns_name_totextfilter_t totext_filter_proc;
+#endif
 
        /*
         * This function assumes the name is in proper uncompressed
@@ -1412,6 +1427,12 @@ dns_name_totext(dns_name_t *name, isc_boolean_t omit_final_dot,
 
        isc_buffer_add(target, tlen - trem);
 
+#ifdef ISC_PLATFORM_USETHREADS
+       totext_filter_proc = isc_key_getspecific(totext_filter_proc_key);
+#endif
+       if (totext_filter_proc != NULL)
+               return ((*totext_filter_proc)(target, oused, saw_root));
+
        return (ISC_R_SUCCESS);
 }
 
@@ -2193,6 +2214,31 @@ dns_name_print(dns_name_t *name, FILE *stream) {
        return (ISC_R_SUCCESS);
 }
 
+#ifdef ISC_PLATFORM_USETHREADS
+static void
+totext_filter_proc_key_init(void) {
+       RUNTIME_CHECK(isc_key_create(&totext_filter_proc_key, NULL) == 0);
+}
+#endif
+
+isc_result_t
+dns_name_settotextfilter(dns_name_totextfilter_t proc) {
+#ifdef ISC_PLATFORM_USETHREADS
+       static isc_once_t once = ISC_ONCE_INIT;
+       isc_result_t result;
+
+       result = isc_once_do(&once, totext_filter_proc_key_init);
+       if (result != ISC_R_SUCCESS)
+               return (result);
+       if (isc_key_setspecific(totext_filter_proc_key, proc) != 0)
+               result = ISC_R_UNEXPECTED;
+       return (result);
+#else
+       totext_filter_proc = proc;
+       return (ISC_R_SUCCESS);
+#endif
+}
+
 void
 dns_name_format(dns_name_t *name, char *cp, unsigned int size) {
        isc_result_t result;
index de112103e0a93c35fd444112d9b3a7dbebce85f1..3393e64f92b22ef915b8ebb09ef061e3c0d5e7ed 100644 (file)
@@ -329,6 +329,7 @@ dns_name_print
 dns_name_rdatacompare
 dns_name_reset
 dns_name_setbuffer
+dns_name_settotextfilter
 dns_name_split
 dns_name_tofilenametext
 dns_name_toregion
index 5ae17350ca4b178a5d49b07f86acbe76f035bdf7..4fee67831bffd0996a7698bc11a7e91ed20e4185 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: thread.h,v 1.20.18.2 2005/04/29 00:17:06 marka Exp $ */
+/* $Id: thread.h,v 1.20.18.3 2005/09/09 06:22:09 marka Exp $ */
 
 #ifndef ISC_THREAD_H
 #define ISC_THREAD_H 1
@@ -33,6 +33,7 @@ typedef pthread_t isc_thread_t;
 typedef void * isc_threadresult_t;
 typedef void * isc_threadarg_t;
 typedef isc_threadresult_t (*isc_threadfunc_t)(isc_threadarg_t);
+typedef pthread_key_t isc_thread_key_t;
 
 isc_result_t
 isc_thread_create(isc_threadfunc_t, isc_threadarg_t, isc_thread_t *);
@@ -49,6 +50,11 @@ isc_thread_setconcurrency(unsigned int level);
 #define isc_thread_self \
        (unsigned long)pthread_self
 
+#define isc_key_create pthread_key_create
+#define isc_key_getspecific pthread_getspecific
+#define isc_key_setspecific pthread_setspecific
+#define isc_key_delete pthread_key_delete
+
 ISC_LANG_ENDDECLS
 
 #endif /* ISC_THREAD_H */