]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
9.8.1b3
authorScott Mann <smann@isc.org>
Fri, 8 Jul 2011 22:57:26 +0000 (22:57 +0000)
committerScott Mann <smann@isc.org>
Fri, 8 Jul 2011 22:57:26 +0000 (22:57 +0000)
18 files changed:
CHANGES
bin/named/server.c
configure
configure.in
lib/Atffile
lib/dns/include/dns/zone.h
lib/dns/tests/Makefile.in
lib/dns/tests/dnstest.c
lib/dns/tests/dnstest.h
lib/dns/tests/master_test.c
lib/dns/tests/time_test.c
lib/dns/win32/libdns.def
lib/dns/zone.c
lib/isc/Makefile.in
lib/isc/include/isc/taskpool.h
lib/isc/taskpool.c
lib/isc/win32/libisc.def
version

diff --git a/CHANGES b/CHANGES
index 0fd787eca5881ba0dd1b4379035555529d1c5864..ef7500e755b01eaa0da9ce24d89efbc3537def7e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,10 @@
+       --- 9.8.1b3 released ---
+
 3133.  [bug]           Change #3114 was incomplete. [RT #24577]
 
-3132.  [tuning]        Expanded zone task table from 8 to 17 buckets,
-                       added ZONE_TASKS define in zone.c to make it easier
-                       to hand-tune this value. [RT #24406]
+3131.   [tuning]        Improve scalability by allocating one zone task
+                        per 100 zones at startup time, rather than using a
+                        fixed-size task table. [RT #24406]
 
 3129.  [bug]           Named could crash on 'rndc reconfig' when
                        allow-new-zones was set to yes and named ACLs
index d62c3b7455dd6654679888474777e23f0ac524e7..9667b7a37600898c1d0b7a4c38e35bed3e7df6f6 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: server.c,v 1.599.8.9 2011/06/17 07:04:31 each Exp $ */
+/* $Id: server.c,v 1.599.8.10 2011/07/08 22:57:24 smann Exp $ */
 
 /*! \file */
 
@@ -204,12 +204,14 @@ struct zonelistentry {
 
 /*%
  * Configuration context to retain for each view that allows
- * new zones to be added at runtime
+ * new zones to be added at runtime.
  */
 struct cfg_context {
        isc_mem_t *                     mctx;
-       cfg_obj_t *                     config;
        cfg_parser_t *                  parser;
+       cfg_obj_t *                     config;
+       cfg_parser_t *                  nzparser;
+       cfg_obj_t *                     nzconfig;
        cfg_aclconfctx_t *              actx;
 };
 
@@ -1545,8 +1547,7 @@ configure_rpz(dns_view_t *view, const cfg_listelt_t *element) {
  * global defaults in 'config' used exclusively.
  */
 static isc_result_t
-configure_view(dns_view_t *view, cfg_parser_t* parser,
-              cfg_obj_t *config, cfg_obj_t *vconfig,
+configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
               ns_cachelist_t *cachelist, const cfg_obj_t *bindkeys,
               isc_mem_t *mctx, cfg_aclconfctx_t *actx,
               isc_boolean_t need_hints)
@@ -1601,10 +1602,9 @@ configure_view(dns_view_t *view, cfg_parser_t* parser,
        isc_boolean_t auto_root = ISC_FALSE;
        ns_cache_t *nsc;
        isc_boolean_t zero_no_soattl;
-       cfg_parser_t *newzones_parser = NULL;
-       cfg_obj_t *nzfconf = NULL;
        dns_acl_t *clients = NULL, *mapped = NULL, *excluded = NULL;
        unsigned int query_timeout;
+       struct cfg_context *nzctx;
 
        REQUIRE(DNS_VIEW_VALID(view));
 
@@ -1710,6 +1710,10 @@ configure_view(dns_view_t *view, cfg_parser_t* parser,
                (void)cfg_map_get(voptions, "zone", &zonelist);
        else
                (void)cfg_map_get(config, "zone", &zonelist);
+
+       /*
+        * Load zone configuration
+        */
        for (element = cfg_list_first(zonelist);
             element != NULL;
             element = cfg_list_next(element))
@@ -1719,58 +1723,29 @@ configure_view(dns_view_t *view, cfg_parser_t* parser,
                                     actx, ISC_FALSE));
        }
 
-       /*
-        * Are we allowing zones to be added and deleted dynamically?
-        */
-       obj = NULL;
-       result = ns_config_get(maps, "allow-new-zones", &obj);
-       if (result == ISC_R_SUCCESS) {
-               isc_boolean_t allow = cfg_obj_asboolean(obj);
-               struct cfg_context *cfg = NULL;
-               if (allow) {
-                       cfg = isc_mem_get(view->mctx, sizeof(*cfg));
-                       if (cfg == NULL) {
-                               result = ISC_R_NOMEMORY;
-                               goto cleanup;
-                       }
-                       memset(cfg, 0, sizeof(*cfg));
-                       isc_mem_attach(view->mctx, &cfg->mctx);
-                       if (config != NULL)
-                               cfg_obj_attach(config, &cfg->config);
-                       cfg_parser_attach(parser, &cfg->parser);
-                       cfg_aclconfctx_attach(actx, &cfg->actx);
-               }
-               dns_view_setnewzones(view, allow, cfg, newzone_cfgctx_destroy);
-       }
-
        /*
         * If we're allowing added zones, then load zone configuration
         * from the newzone file for zones that were added during previous
         * runs.
         */
-       if (view->new_zone_file != NULL) {
+       nzctx = view->new_zone_config;
+       if (nzctx != NULL && nzctx->nzconfig != NULL) {
                isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
                              NS_LOGMODULE_SERVER, ISC_LOG_INFO,
                              "loading additional zones for view '%s'",
                              view->name);
 
-               CHECK(cfg_parser_create(view->mctx, ns_g_lctx,
-                                       &newzones_parser));
-               result = cfg_parse_file(newzones_parser, view->new_zone_file,
-                                       &cfg_type_newzones, &nzfconf);
-               if (result == ISC_R_SUCCESS) {
-                       zonelist = NULL;
-                       cfg_map_get(nzfconf, "zone", &zonelist);
-                       for (element = cfg_list_first(zonelist);
-                            element != NULL;
-                            element = cfg_list_next(element))
-                       {
-                               const cfg_obj_t *zconfig =
-                                       cfg_listelt_value(element);
-                               CHECK(configure_zone(config, zconfig, vconfig,
-                                                    mctx, view, actx,
-                                                    ISC_TRUE));
-                       }
+               zonelist = NULL;
+               cfg_map_get(nzctx->nzconfig, "zone", &zonelist);
+
+               for (element = cfg_list_first(zonelist);
+                    element != NULL;
+                    element = cfg_list_next(element))
+               {
+                       const cfg_obj_t *zconfig = cfg_listelt_value(element);
+                       CHECK(configure_zone(config, zconfig, vconfig,
+                                            mctx, view, actx,
+                                            ISC_TRUE));
                }
        }
 
@@ -2904,8 +2879,8 @@ configure_view(dns_view_t *view, cfg_parser_t* parser,
                if (result == ISC_R_SUCCESS)
                        cfg_map_get(obj, "zone", &zonelist);
        }
-       if (zonelist != NULL) {
 
+       if (zonelist != NULL) {
                for (element = cfg_list_first(zonelist);
                     element != NULL;
                     element = cfg_list_next(element)) {
@@ -2947,12 +2922,6 @@ configure_view(dns_view_t *view, cfg_parser_t* parser,
        if (cache != NULL)
                dns_cache_detach(&cache);
 
-       if (newzones_parser != NULL) {
-               if (nzfconf != NULL)
-                       cfg_obj_destroy(newzones_parser, &nzfconf);
-               cfg_parser_destroy(&newzones_parser);
-       }
-
        return (result);
 }
 
@@ -3157,21 +3126,16 @@ configure_forward(const cfg_obj_t *config, dns_view_t *view, dns_name_t *origin,
        return (result);
 }
 
-/*
- * Create a new view and add it to the list.
- *
- * If 'vconfig' is NULL, create the default view.
- *
- * The view created is attached to '*viewp'.
- */
 static isc_result_t
-create_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
-           dns_view_t **viewp)
+get_viewinfo(const cfg_obj_t *vconfig, const char **namep,
+            dns_rdataclass_t *classp)
 {
-       isc_result_t result;
+       isc_result_t result = ISC_R_SUCCESS;
        const char *viewname;
        dns_rdataclass_t viewclass;
-       dns_view_t *view = NULL;
+
+       REQUIRE(namep != NULL && *namep == NULL);
+       REQUIRE(classp != NULL);
 
        if (vconfig != NULL) {
                const cfg_obj_t *classobj = NULL;
@@ -3180,11 +3144,63 @@ create_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
                classobj = cfg_tuple_get(vconfig, "class");
                result = ns_config_getclass(classobj, dns_rdataclass_in,
                                            &viewclass);
-               INSIST(result == ISC_R_SUCCESS);
        } else {
                viewname = "_default";
                viewclass = dns_rdataclass_in;
        }
+
+       *namep = viewname;
+       *classp = viewclass;
+
+       return (result);
+}
+
+/*
+ * Find a view based on its configuration info and attach to it.
+ *
+ * If 'vconfig' is NULL, attach to the default view.
+ */
+static isc_result_t
+find_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
+         dns_view_t **viewp)
+{
+       isc_result_t result;
+       const char *viewname = NULL;
+       dns_rdataclass_t viewclass;
+       dns_view_t *view = NULL;
+
+       result = get_viewinfo(vconfig, &viewname, &viewclass);
+       if (result != ISC_R_SUCCESS)
+               return (result);
+       result = dns_viewlist_find(viewlist, viewname, viewclass, &view);
+       if (result != ISC_R_SUCCESS)
+               return (result);
+
+       *viewp = view;
+       return (ISC_R_SUCCESS);
+}
+
+/*
+ * Create a new view and add it to the list.
+ *
+ * If 'vconfig' is NULL, create the default view.
+ *
+ * The view created is attached to '*viewp'.
+ */
+static isc_result_t
+create_view(const cfg_obj_t *vconfig, dns_viewlist_t *viewlist,
+           dns_view_t **viewp)
+{
+       isc_result_t result;
+       const char *viewname = NULL;
+       dns_rdataclass_t viewclass;
+       dns_view_t *view = NULL;
+
+       result = get_viewinfo(vconfig, &viewname, &viewclass);
+       if (result != ISC_R_SUCCESS)
+               return (result);
        result = dns_viewlist_find(viewlist, viewname, viewclass, &view);
        if (result == ISC_R_SUCCESS)
                return (ISC_R_EXISTS);
@@ -4142,6 +4158,95 @@ configure_session_key(const cfg_obj_t **maps, ns_server_t *server,
        return (result);
 }
 
+static isc_result_t
+setup_newzones(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
+              cfg_parser_t *parser, cfg_aclconfctx_t *actx)
+{
+       isc_result_t result = ISC_R_SUCCESS;
+       isc_boolean_t allow = ISC_FALSE;
+       struct cfg_context *nzcfg = NULL;
+       cfg_parser_t *nzparser = NULL;
+       cfg_obj_t *nzconfig = NULL;
+       const cfg_obj_t *maps[4];
+       const cfg_obj_t *options = NULL, *voptions = NULL;
+       const cfg_obj_t *nz = NULL;
+       int i = 0;
+
+       REQUIRE (config != NULL);
+
+       if (vconfig != NULL)
+               voptions = cfg_tuple_get(vconfig, "options");
+       if (voptions != NULL)
+               maps[i++] = voptions;
+       result = cfg_map_get(config, "options", &options);
+       if (result == ISC_R_SUCCESS)
+               maps[i++] = options;
+       maps[i++] = ns_g_defaults;
+       maps[i] = NULL;
+
+       result = ns_config_get(maps, "allow-new-zones", &nz);
+       if (result == ISC_R_SUCCESS)
+               allow = cfg_obj_asboolean(nz);
+
+       if (!allow) {
+               dns_view_setnewzones(view, ISC_FALSE, NULL, NULL);
+               return (ISC_R_SUCCESS);
+       }
+
+       nzcfg = isc_mem_get(view->mctx, sizeof(*nzcfg));
+       if (nzcfg == NULL) {
+               dns_view_setnewzones(view, ISC_FALSE, NULL, NULL);
+               return (ISC_R_NOMEMORY);
+       }
+
+       dns_view_setnewzones(view, allow, nzcfg, newzone_cfgctx_destroy);
+
+       memset(nzcfg, 0, sizeof(*nzcfg));
+       isc_mem_attach(view->mctx, &nzcfg->mctx);
+       cfg_obj_attach(config, &nzcfg->config);
+       cfg_parser_attach(parser, &nzcfg->parser);
+       cfg_aclconfctx_attach(actx, &nzcfg->actx);
+
+       /*
+        * Attempt to create a parser and parse the newzones
+        * file.  If successful, preserve both; otherwise leave
+        * them NULL.
+        */
+       result = cfg_parser_create(view->mctx, ns_g_lctx, &nzparser);
+       if (result == ISC_R_SUCCESS)
+               result = cfg_parse_file(nzparser, view->new_zone_file,
+                                       &cfg_type_newzones, &nzconfig);
+       if (result == ISC_R_SUCCESS) {
+               cfg_parser_attach(nzparser, &nzcfg->nzparser);
+               cfg_obj_attach(nzconfig, &nzcfg->nzconfig);
+       }
+
+       if (nzparser != NULL) {
+               if (nzconfig != NULL)
+                       cfg_obj_destroy(nzparser, &nzconfig);
+               cfg_parser_destroy(&nzparser);
+       }
+
+       return (ISC_R_SUCCESS);
+}
+
+static int
+count_zones(const cfg_obj_t *conf) {
+       const cfg_obj_t *zonelist = NULL;
+       const cfg_listelt_t *element;
+       int n = 0;
+
+       REQUIRE(conf != NULL);
+
+       cfg_map_get(conf, "zone", &zonelist);
+       for (element = cfg_list_first(zonelist);
+            element != NULL;
+            element = cfg_list_next(element))
+               n++;
+
+       return (n);
+}
+
 static isc_result_t
 load_configuration(const char *filename, ns_server_t *server,
                   isc_boolean_t first_time)
@@ -4173,6 +4278,8 @@ load_configuration(const char *filename, ns_server_t *server,
        ns_cachelist_t cachelist, tmpcachelist;
        unsigned int maxsocks;
        ns_cache_t *nsc;
+       struct cfg_context *nzctx;
+       int num_zones = 0;
 
        ISC_LIST_INIT(viewlist);
        ISC_LIST_INIT(builtin_viewlist);
@@ -4600,25 +4707,87 @@ load_configuration(const char *filename, ns_server_t *server,
         */
        (void)configure_session_key(maps, server, ns_g_mctx);
 
-       /*
-        * Configure and freeze all explicit views.  Explicit
-        * views that have zones were already created at parsing
-        * time, but views with no zones must be created here.
-        */
        views = NULL;
        (void)cfg_map_get(config, "view", &views);
+
+       /*
+        * Create the views and count all the configured zones in
+        * order to correctly size the zone manager's task table.
+        * (We only count zones for configured views; the built-in
+        * "bind" view can be ignored as it only adds a negligible
+        * number of zones.)
+        *
+        * If we're allowing new zones, we need to be able to find the
+        * new zone file and count those as well.  So we setup the new
+        * zone configuration context, but otherwise view configuration
+        * waits until after the zone manager's task list has been sized.
+        */
        for (element = cfg_list_first(views);
             element != NULL;
             element = cfg_list_next(element))
        {
                cfg_obj_t *vconfig = cfg_listelt_value(element);
+               const cfg_obj_t *voptions = cfg_tuple_get(vconfig, "options");
                view = NULL;
 
                CHECK(create_view(vconfig, &viewlist, &view));
                INSIST(view != NULL);
-               CHECK(configure_view(view, conf_parser, config, vconfig,
-                                    &cachelist, bindkeys,
-                                    ns_g_mctx, ns_g_aclconfctx, ISC_TRUE));
+
+               num_zones += count_zones(voptions);
+               CHECK(setup_newzones(view, config, vconfig, conf_parser,
+                                    ns_g_aclconfctx));
+
+               nzctx = view->new_zone_config;
+               if (nzctx != NULL && nzctx->nzconfig != NULL)
+                       num_zones += count_zones(nzctx->nzconfig);
+
+               dns_view_detach(&view);
+       }
+
+       /*
+        * If there were no explicit views then we do the default
+        * view here.
+        */
+       if (views == NULL) {
+               CHECK(create_view(NULL, &viewlist, &view));
+               INSIST(view != NULL);
+
+               num_zones = count_zones(config);
+
+               CHECK(setup_newzones(view, config, NULL,  conf_parser,
+                                    ns_g_aclconfctx));
+
+               nzctx = view->new_zone_config;
+               if (nzctx != NULL && nzctx->nzconfig != NULL)
+                       num_zones += count_zones(nzctx->nzconfig);
+
+               dns_view_detach(&view);
+       }
+
+       /*
+        * Zones have been counted; set the zone manager task pool size.
+        */
+       isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
+                     NS_LOGMODULE_SERVER, ISC_LOG_INFO,
+                     "sizing zone task pool based on %d zones", num_zones);
+       CHECK(dns_zonemgr_setsize(ns_g_server->zonemgr, num_zones));
+
+       /*
+        * Configure and freeze all explicit views.  Explicit
+        * views that have zones were already created at parsing
+        * time, but views with no zones must be created here.
+        */
+       for (element = cfg_list_first(views);
+            element != NULL;
+            element = cfg_list_next(element))
+       {
+               cfg_obj_t *vconfig = cfg_listelt_value(element);
+
+               view = NULL;
+               CHECK(find_view(vconfig, &viewlist, &view));
+               CHECK(configure_view(view, config, vconfig,
+                                    &cachelist, bindkeys, ns_g_mctx,
+                                    ns_g_aclconfctx, ISC_TRUE));
                dns_view_freeze(view);
                dns_view_detach(&view);
        }
@@ -4628,14 +4797,9 @@ load_configuration(const char *filename, ns_server_t *server,
         * were no explicit views.
         */
        if (views == NULL) {
-               /*
-                * No explicit views; there ought to be a default view.
-                * There may already be one created as a side effect
-                * of zone statements, or we may have to create one.
-                * In either case, we need to configure and freeze it.
-                */
-               CHECK(create_view(NULL, &viewlist, &view));
-               CHECK(configure_view(view, conf_parser, config, NULL,
+               view = NULL;
+               CHECK(find_view(NULL, &viewlist, &view));
+               CHECK(configure_view(view, config, NULL,
                                     &cachelist, bindkeys,
                                     ns_g_mctx, ns_g_aclconfctx, ISC_TRUE));
                dns_view_freeze(view);
@@ -4655,7 +4819,7 @@ load_configuration(const char *filename, ns_server_t *server,
                cfg_obj_t *vconfig = cfg_listelt_value(element);
 
                CHECK(create_view(vconfig, &builtin_viewlist, &view));
-               CHECK(configure_view(view, conf_parser, config, vconfig,
+               CHECK(configure_view(view, config, vconfig,
                                     &cachelist, bindkeys,
                                     ns_g_mctx, ns_g_aclconfctx, ISC_FALSE));
                dns_view_freeze(view);
@@ -5274,6 +5438,8 @@ ns_server_create(isc_mem_t *mctx, ns_server_t **serverp) {
        CHECKFATAL(dns_zonemgr_create(ns_g_mctx, ns_g_taskmgr, ns_g_timermgr,
                                      ns_g_socketmgr, &server->zonemgr),
                   "dns_zonemgr_create");
+       CHECKFATAL(dns_zonemgr_setsize(server->zonemgr, 1000),
+                  "dns_zonemgr_setsize");
 
        server->statsfile = isc_mem_strdup(server->mctx, "named.stats");
        CHECKFATAL(server->statsfile == NULL ? ISC_R_NOMEMORY : ISC_R_SUCCESS,
@@ -5383,7 +5549,8 @@ ns_server_destroy(ns_server_t **serverp) {
        if (server->server_id != NULL)
                isc_mem_free(server->mctx, server->server_id);
 
-       dns_zonemgr_detach(&server->zonemgr);
+       if (server->zonemgr != NULL)
+               dns_zonemgr_detach(&server->zonemgr);
 
        if (server->tkeyctx != NULL)
                dns_tkeyctx_destroy(&server->tkeyctx);
@@ -7453,6 +7620,11 @@ newzone_cfgctx_destroy(void **cfgp) {
                        cfg_obj_destroy(cfg->parser, &cfg->config);
                cfg_parser_destroy(&cfg->parser);
        }
+       if (cfg->nzparser != NULL) {
+               if (cfg->nzconfig != NULL)
+                       cfg_obj_destroy(cfg->nzparser, &cfg->nzconfig);
+               cfg_parser_destroy(&cfg->nzparser);
+       }
 
        isc_mem_putanddetach(&cfg->mctx, cfg, sizeof(*cfg));
        *cfgp = NULL;
index bef7e8d019cd4ac6ccdbf1efe999b9bb2d7edb39..e33e712709c51b24cb13a276e7f0c5c6fa0732c5 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.493.8.9 2011/05/05 19:20:53 tbox Exp $
+# $Id: configure,v 1.493.8.10 2011/07/08 22:57:22 smann Exp $
 #
 #      Portions of this code release fall under one or more of the
 #      following Copyright notices.  Please see individual source
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 # OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# From configure.in Revision.
+# From configure.in Revision: 1.526.32.1 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67.
+# Generated by GNU Autoconf 2.65.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -835,7 +835,7 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
@@ -875,19 +875,19 @@ else
 fi # as_fn_arith
 
 
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
+# script with status $?, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
   fi
-  $as_echo "$as_me: error: $2" >&2
+  $as_echo "$as_me: error: $1" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -1203,7 +1203,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
 exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# 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`
 
@@ -1674,9 +1674,8 @@ do
   fi
 
   case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
+  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)   ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1721,7 +1720,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1747,7 +1746,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1951,7 +1950,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1967,7 +1966,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1997,8 +1996,8 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
     ;;
 
   *=*)
@@ -2006,7 +2005,7 @@ Try \`$0 --help' for more information"
     # Reject names that are not valid shell variable names.
     case $ac_envvar in #(
       '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
     esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
@@ -2024,13 +2023,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
+  as_fn_error "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -2053,7 +2052,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -2067,8 +2066,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_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
+    $as_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
@@ -2083,9 +2082,9 @@ 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 .` ||
-  as_fn_error $? "working directory cannot be determined"
+  as_fn_error "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
+  as_fn_error "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -2124,11 +2123,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -2168,7 +2167,7 @@ Configuration:
       --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
+  -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
@@ -2387,9 +2386,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.67
+generated by GNU Autoconf 2.65
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -2505,7 +2504,7 @@ $as_echo "$ac_try_echo"; } >&5
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
+  test $ac_status = 0; } >/dev/null && {
         test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
         test ! -s conftest.err
        }; then :
@@ -2529,10 +2528,10 @@ fi
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -2568,7 +2567,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
 else
   ac_header_preproc=no
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
 $as_echo "$ac_header_preproc" >&6; }
 
@@ -2595,7 +2594,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2659,7 +2658,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2689,7 +2688,7 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2807,7 +2806,7 @@ $as_echo "$ac_try_echo"; } >&5
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
+  test $ac_status = 0; } >/dev/null && {
         test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
         test ! -s conftest.err
        }; then :
@@ -2962,7 +2961,7 @@ ac_fn_c_check_type ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -3189,7 +3188,7 @@ 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.67.  Invocation command line was
+generated by GNU Autoconf 2.65.  Invocation command line was
 
   $ $0 $@
 
@@ -3299,9 +3298,11 @@ trap 'exit_status=$?
   {
     echo
 
-    $as_echo "## ---------------- ##
+    cat <<\_ASBOX
+## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##"
+## ---------------- ##
+_ASBOX
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -3335,9 +3336,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    $as_echo "## ----------------- ##
+    cat <<\_ASBOX
+## ----------------- ##
 ## Output variables. ##
-## ----------------- ##"
+## ----------------- ##
+_ASBOX
     echo
     for ac_var in $ac_subst_vars
     do
@@ -3350,9 +3353,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      cat <<\_ASBOX
+## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##"
+## ------------------- ##
+_ASBOX
       echo
       for ac_var in $ac_subst_files
       do
@@ -3366,9 +3371,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      cat <<\_ASBOX
+## ----------- ##
 ## confdefs.h. ##
-## ----------- ##"
+## ----------- ##
+_ASBOX
       echo
       cat confdefs.h
       echo
@@ -3423,12 +3430,7 @@ _ACEOF
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_file1=$CONFIG_SITE
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -3443,11 +3445,7 @@ do
     { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+    . "$ac_site_file"
   fi
 done
 
@@ -3523,7 +3521,7 @@ if $ac_cache_corrupted; then
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -3543,22 +3541,16 @@ 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
+  for ac_t in install-sh install.sh shtool; do
+    if test -f "$ac_dir/$ac_t"; then
+      ac_aux_dir=$ac_dir
+      ac_install_sh="$ac_aux_dir/$ac_t -c"
+      break 2
+    fi
+  done
 done
 if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -3572,7 +3564,7 @@ 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 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
@@ -3583,16 +3575,16 @@ else
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -3617,7 +3609,7 @@ else
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
@@ -3625,7 +3617,7 @@ fi
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -3646,7 +3638,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3654,7 +3646,7 @@ SHELL = /bin/sh
 all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+# 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;;
@@ -4058,8 +4050,8 @@ fi
 
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4173,8 +4165,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -4216,8 +4209,8 @@ done
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4274,9 +4267,9 @@ $as_echo "$ac_try_echo"; } >&5
     else
        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+as_fn_error "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details." "$LINENO" 5; }
     fi
   fi
 fi
@@ -4327,8 +4320,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4658,7 +4651,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
@@ -4724,7 +4717,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
@@ -4821,7 +4814,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -5167,7 +5160,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5170 "configure"' > conftest.$ac_ext
+  echo '#line 5163 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5374,7 +5367,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -5390,11 +5383,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -5433,7 +5426,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -5449,18 +5442,18 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -5589,7 +5582,8 @@ do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -5911,7 +5905,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -5927,11 +5921,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -5970,7 +5964,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -5986,18 +5980,18 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
 ac_ext=cpp
@@ -6014,7 +6008,7 @@ 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 pgfortran pgf95 lf95 ftn
+  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
@@ -6058,7 +6052,7 @@ fi
 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 pgfortran pgf95 lf95 ftn
+  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
@@ -7461,11 +7455,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7464: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7458: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7468: \$? = $ac_status" >&5
+   echo "$as_me:7462: \$? = $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 other than the usual output.
@@ -7751,11 +7745,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7754: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7748: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7758: \$? = $ac_status" >&5
+   echo "$as_me:7752: \$? = $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 other than the usual output.
@@ -7855,11 +7849,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7858: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7852: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7862: \$? = $ac_status" >&5
+   echo "$as_me:7856: \$? = $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
@@ -9880,7 +9874,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9883 "configure"
+#line 9877 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9980,7 +9974,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9983 "configure"
+#line 9977 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10655,13 +10649,13 @@ $as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     # Check whether tagname contains only valid characters
     case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
     "") ;;
-    *)  as_fn_error $? "invalid tag name: $tagname" "$LINENO" 5
+    *)  as_fn_error "invalid tag name: $tagname" "$LINENO" 5
        ;;
     esac
 
     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
     then
-      as_fn_error $? "tag name \"$tagname\" already exists" "$LINENO" 5
+      as_fn_error "tag name \"$tagname\" already exists" "$LINENO" 5
     fi
 
     # Update the list of available tags.
@@ -10876,7 +10870,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -12325,11 +12319,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12328: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12322: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12332: \$? = $ac_status" >&5
+   echo "$as_me:12326: \$? = $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 other than the usual output.
@@ -12429,11 +12423,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12432: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12426: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:12436: \$? = $ac_status" >&5
+   echo "$as_me:12430: \$? = $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
@@ -14012,11 +14006,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14015: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14009: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14019: \$? = $ac_status" >&5
+   echo "$as_me:14013: \$? = $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 other than the usual output.
@@ -14116,11 +14110,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14119: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14113: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14123: \$? = $ac_status" >&5
+   echo "$as_me:14117: \$? = $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
@@ -16281,11 +16275,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16284: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16278: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16288: \$? = $ac_status" >&5
+   echo "$as_me:16282: \$? = $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 other than the usual output.
@@ -16571,11 +16565,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16574: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16568: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16578: \$? = $ac_status" >&5
+   echo "$as_me:16572: \$? = $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 other than the usual output.
@@ -16675,11 +16669,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16678: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16672: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16682: \$? = $ac_status" >&5
+   echo "$as_me:16676: \$? = $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
@@ -19243,7 +19237,7 @@ CC="$lt_save_CC"
        ;;
 
       *)
-       as_fn_error $? "Unsupported tag name: $tagname" "$LINENO" 5
+       as_fn_error "Unsupported tag name: $tagname" "$LINENO" 5
        ;;
       esac
 
@@ -19261,7 +19255,7 @@ CC="$lt_save_CC"
     chmod +x "$ofile"
   else
     rm -f "${ofile}T"
-    as_fn_error $? "unable to update list of available tagged configurations." "$LINENO" 5
+    as_fn_error "unable to update list of available tagged configurations." "$LINENO" 5
   fi
 fi
 
@@ -19413,7 +19407,7 @@ fi
 
 case "$enable_libbind" in
        yes)
-               as_fn_error $? "'libbind' is no longer part of the BIND 9 distribution.
+               as_fn_error "'libbind' is no longer part of the BIND 9 distribution.
 It is available from http://www.isc.org as a separate download." "$LINENO" 5
                ;;
        no|'')
@@ -19479,7 +19473,7 @@ LN=ln
 
 case "$AR" in
        "")
-               as_fn_error $? "
+               as_fn_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.
 " "$LINENO" 5
@@ -20013,8 +20007,8 @@ fi
 
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -20419,7 +20413,8 @@ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_include
 #endif
 
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -20641,7 +20636,8 @@ for ac_func in seteuid setresuid
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -20653,7 +20649,8 @@ for ac_func in setegid setresgid
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -20950,8 +20947,8 @@ $as_echo_n "checking epoll support... " >&6; }
        if test "$cross_compiling" = yes; then :
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -21003,7 +21000,8 @@ yes)
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -21057,7 +21055,7 @@ $as_echo "no" >&6; }
         LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
                ;;
        no)
-               as_fn_error $? "need either working unistd.h or sys/select.h" "$LINENO" 5
+               as_fn_error "need either working unistd.h or sys/select.h" "$LINENO" 5
                ;;
        esac
 
@@ -21071,7 +21069,7 @@ no)
             LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
                ;;
        no)
-               as_fn_error $? "need either unistd.h or sys/select.h" "$LINENO" 5
+               as_fn_error "need either unistd.h or sys/select.h" "$LINENO" 5
                ;;
        esac
        ;;
@@ -21302,7 +21300,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
      ;; #(
    *)
-     as_fn_error $? "unknown endianness
+     as_fn_error "unknown endianness
  presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
@@ -21350,7 +21348,7 @@ $as_echo "no" >&6; }
                USE_OPENSSL=""
                OPENSSLLINKOBJS=""
                OPENSSLLINKSRCS=""
-               as_fn_error $? "OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
+               as_fn_error "OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
 If you don't want OpenSSL, use --without-openssl" "$LINENO" 5
                ;;
        *)
@@ -21369,11 +21367,11 @@ If you don't want OpenSSL, use --without-openssl" "$LINENO" 5
                        then
                                { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-                               as_fn_error $? "OpenSSL was not found in any of $openssldirs; use --with-openssl=/path" "$LINENO" 5
+                               as_fn_error "OpenSSL was not found in any of $openssldirs; use --with-openssl=/path" "$LINENO" 5
                        fi
                elif ! test -f "$use_openssl"/include/openssl/opensslv.h
                then
-                       as_fn_error $? "\"$use_openssl/include/openssl/opensslv.h\" not found" "$LINENO" 5
+                       as_fn_error "\"$use_openssl/include/openssl/opensslv.h\" not found" "$LINENO" 5
                fi
                USE_OPENSSL='-DOPENSSL'
                if test "$use_openssl" = "/usr"
@@ -21438,7 +21436,7 @@ $as_echo "yes" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-                as_fn_error $? "Could not run test program using OpenSSL from
+                as_fn_error "Could not run test program using OpenSSL from
 $use_openssl/lib and $use_openssl/include.
 Please check the argument to --with-openssl and your
 shared library configuration (e.g., LD_LIBRARY_PATH)." "$LINENO" 5
@@ -21488,7 +21486,7 @@ $as_echo "yes" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
 $as_echo "unknown" >&6; }
-                as_fn_error $? "OpenSSL has unsupported dynamic loading" "$LINENO" 5
+                as_fn_error "OpenSSL has unsupported dynamic loading" "$LINENO" 5
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
@@ -21564,7 +21562,8 @@ $as_echo "no" >&6; }
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -21629,7 +21628,7 @@ fi
                case "$with_gost" in
                yes)
                    case "$have_gost" in
-                   no)  as_fn_error $? "gost not supported" "$LINENO" 5 ;;
+                   no)  as_fn_error "gost not supported" "$LINENO" 5 ;;
                    *)  have_gost=yes ;;
                    esac
                    ;;
@@ -21638,7 +21637,7 @@ fi
                *)
                    case "$have_gost" in
                    yes|no) ;;
-                   *) as_fn_error $? "need --with-gost=[yes or no]" "$LINENO" 5 ;;
+                   *) as_fn_error "need --with-gost=[yes or no]" "$LINENO" 5 ;;
                    esac
                    ;;
                esac
@@ -21687,7 +21686,7 @@ case $want_openssl_hash in
        yes)
                if test "$USE_OPENSSL" = ""
                then
-                       as_fn_error $? "No OpenSSL for hash functions" "$LINENO" 5
+                       as_fn_error "No OpenSSL for hash functions" "$LINENO" 5
                fi
                ISC_PLATFORM_OPENSSLHASH="#define ISC_PLATFORM_OPENSSLHASH 1"
                ISC_OPENSSL_INC="$DST_OPENSSL_INC"
@@ -21803,7 +21802,7 @@ $as_echo "disabled" >&6; }
                USE_GSSAPI=''
                ;;
        yes)
-               as_fn_error $? "--with-gssapi must specify a path" "$LINENO" 5
+               as_fn_error "--with-gssapi must specify a path" "$LINENO" 5
                ;;
        *)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking in $use_gssapi/lib" >&5
@@ -21815,7 +21814,8 @@ $as_echo "looking in $use_gssapi/lib" >&6; }
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -21826,14 +21826,15 @@ done
 
 
                if test "$ISC_PLATFORM_GSSAPIHEADER" = ""; then
-                   as_fn_error $? "gssapi.h not found" "$LINENO" 5
+                   as_fn_error "gssapi.h not found" "$LINENO" 5
                fi
 
                for ac_header in gssapi_krb5.h gssapi/gssapi_krb5.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -21847,7 +21848,8 @@ done
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -21858,7 +21860,7 @@ done
 
 
                if test "$ISC_PLATFORM_KRB5HEADER" = ""; then
-                   as_fn_error $? "krb5.h not found" "$LINENO" 5
+                   as_fn_error "krb5.h not found" "$LINENO" 5
                fi
 
                CPPFLAGS="$saved_cppflags"
@@ -21933,7 +21935,7 @@ $as_echo "no" >&6; } ;;
                done
 
                case $gssapi_linked in
-               no) as_fn_error $? "could not determine proper GSSAPI linkage" "$LINENO" 5 ;;
+               no) as_fn_error "could not determine proper GSSAPI linkage" "$LINENO" 5 ;;
                esac
 
                #
@@ -21968,7 +21970,7 @@ $as_echo "no" >&6; } ;;
                            NEW_LIBS="$NEW_LIBS $new_lib"
                            ;;
                        *)
-                          as_fn_error $? "KTH vs MIT Kerberos confusion!" "$LINENO" 5
+                          as_fn_error "KTH vs MIT Kerberos confusion!" "$LINENO" 5
                            ;;
                        esac
                    done
@@ -22030,11 +22032,11 @@ $as_echo "$devrandom" >&6; }
                as_ac_File=`$as_echo "ac_cv_file_$devrandom" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $devrandom" >&5
 $as_echo_n "checking for $devrandom... " >&6; }
-if eval "test \"\${$as_ac_File+set}\"" = set; then :
+if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   test "$cross_compiling" = yes &&
-  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
+  as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5
 if test -r "$devrandom"; then
   eval "$as_ac_File=yes"
 else
@@ -22044,7 +22046,8 @@ fi
 eval ac_res=\$$as_ac_File
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+eval as_val=\$$as_ac_File
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define PATH_RANDOMDEV "$devrandom"
 _ACEOF
@@ -22053,7 +22056,7 @@ fi
 
                ;;
        yes)
-               as_fn_error $? "--with-randomdev must specify a path" "$LINENO" 5
+               as_fn_error "--with-randomdev must specify a path" "$LINENO" 5
                ;;
        no)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
@@ -22156,7 +22159,7 @@ case "$enable_threads" in
                # Use system-dependent default
                ;;
        *)
-               as_fn_error $? "--enable-threads takes yes or no" "$LINENO" 5
+               as_fn_error "--enable-threads takes yes or no" "$LINENO" 5
                ;;
 esac
 
@@ -22386,7 +22389,7 @@ _ACEOF
   LIBS="-lc $LIBS"
 
 else
-  as_fn_error $? "\"could not find thread libraries\"" "$LINENO" 5
+  as_fn_error "\"could not find thread libraries\"" "$LINENO" 5
 fi
 
 fi
@@ -22618,7 +22621,7 @@ _ACEOF
   LIBS="-lc $LIBS"
 
 else
-  as_fn_error $? "\"could not find thread libraries\"" "$LINENO" 5
+  as_fn_error "\"could not find thread libraries\"" "$LINENO" 5
 fi
 
 fi
@@ -23414,7 +23417,7 @@ $as_echo "$purify_path" >&6; }
                        PURIFYFLAGS="`echo $PURIFYOPTIONS`"
                        PURIFY="$purify_path $PURIFYFLAGS"
                else
-                       as_fn_error $? "$purify_path not found.
+                       as_fn_error "$purify_path not found.
 
 Please choose the proper path with the following command:
 
@@ -23517,7 +23520,7 @@ case $want_symtable in
 yes|all|minimal)     # "yes" is a hidden value equivalent to "minimal"
        if test "$PERL" = ""
        then
-               as_fn_error $? "Internal symbol table requires perl but no perl is found.
+               as_fn_error "Internal symbol table requires perl but no perl is found.
 Install perl or explicitly disable the feature by --disable-symtable." "$LINENO" 5
        fi
        if test "$use_libtool" = "yes"; then
@@ -23584,7 +23587,7 @@ case "$enable_exportlib" in
                        fi
                done
                if test -z "$gmake"; then
-                       as_fn_error $? "exportlib requires GNU make.  Install it or disable the feature." "$LINENO" 5
+                       as_fn_error "exportlib requires GNU make.  Install it or disable the feature." "$LINENO" 5
                fi
                LIBEXPORT=lib/export
 
@@ -23709,7 +23712,7 @@ $as_echo "no" >&6; }
 $as_echo "$kame_path/lib/libinet6.a" >&6; }
                        LIBS="-L$kame_path/lib -linet6 $LIBS"
                else
-                       as_fn_error $? "$kame_path/lib/libinet6.a not found.
+                       as_fn_error "$kame_path/lib/libinet6.a not found.
 
 Please choose the proper path with the following command:
 
@@ -24921,7 +24924,8 @@ case "$enable_linux_caps" in
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -25119,7 +25123,7 @@ ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"
 else
 
 if test "$cross_compiling" = yes; then :
-  as_fn_error $? "this cannot happen" "$LINENO" 5
+  as_fn_error "this cannot happen" "$LINENO" 5
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -25136,7 +25140,7 @@ ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"
 else
 
 if test "$cross_compiling" = yes; then :
-  as_fn_error $? "this cannot happen" "$LINENO" 5
+  as_fn_error "this cannot happen" "$LINENO" 5
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -25151,7 +25155,7 @@ if ac_fn_c_try_run "$LINENO"; then :
 $as_echo "long long int" >&6; }
 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"
 else
-  as_fn_error $? "unable to determine sizeof rlim_cur" "$LINENO" 5
+  as_fn_error "unable to determine sizeof rlim_cur" "$LINENO" 5
 
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -25565,8 +25569,9 @@ else
   if test "$ac_cv_type_void_p" = yes; then
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
    else
      ac_cv_sizeof_void_p=0
    fi
@@ -25606,8 +25611,9 @@ else
   if test "$ac_cv_type_void_p" = yes; then
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
    else
      ac_cv_sizeof_void_p=0
    fi
@@ -26615,7 +26621,7 @@ else
 fi
 
 if test "$idnlib" = yes; then
-       as_fn_error $? "You must specify ARG for --with-idnlib." "$LINENO" 5
+       as_fn_error "You must specify ARG for --with-idnlib." "$LINENO" 5
 fi
 
 IDNLIBS=
@@ -26852,7 +26858,8 @@ fi
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -27044,7 +27051,7 @@ then
 
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-       as_fn_error $? "No pg_config and PostgreSQL was not found in any of $pgdirs; use --with-dlz-postgres=/path or put pg_config in your path" "$LINENO" 5
+       as_fn_error "No pg_config and PostgreSQL was not found in any of $pgdirs; use --with-dlz-postgres=/path or put pg_config in your path" "$LINENO" 5
 fi
 
 case "$use_dlz_postgres" in
@@ -27151,7 +27158,7 @@ if test "$use_dlz_mysql" = "yes"
 then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-       as_fn_error $? "MySQL was not found in any of $mysqldirs; use --with-dlz-mysql=/path" "$LINENO" 5
+       as_fn_error "MySQL was not found in any of $mysqldirs; use --with-dlz-mysql=/path" "$LINENO" 5
 fi
 
 case "$use_dlz_mysql" in
@@ -27215,7 +27222,7 @@ $as_echo "no" >&6; }
                else
                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-                       as_fn_error $? "path $use_dlz_bdb does not exist" "$LINENO" 5
+                       as_fn_error "path $use_dlz_bdb does not exist" "$LINENO" 5
                        bdbdirs=""
                fi
 
@@ -27294,14 +27301,14 @@ $as_echo "not found" >&6; }
                then
                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-                       as_fn_error $? "could not find Berkeley DB include directory" "$LINENO" 5
+                       as_fn_error "could not find Berkeley DB include directory" "$LINENO" 5
                fi
 
                if test "$dlz_bdb_libs" = "yes"
                then
                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-                       as_fn_error $? "could not find Berkeley DB library" "$LINENO" 5
+                       as_fn_error "could not find Berkeley DB library" "$LINENO" 5
                fi
 
 
@@ -27407,7 +27414,7 @@ if test "$use_dlz_ldap" = "yes"
 then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-       as_fn_error $? "LDAP headers were not found in any of $ldapdirs; use --with-dlz-ldap=/path" "$LINENO" 5
+       as_fn_error "LDAP headers were not found in any of $ldapdirs; use --with-dlz-ldap=/path" "$LINENO" 5
 fi
 
 case "$use_dlz_ldap" in
@@ -27476,7 +27483,7 @@ $as_echo "no" >&6; }
        yes)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-               as_fn_error $? "ODBC headers were not found in any of $odbcdirs; use --with-dlz-odbc=/path" "$LINENO" 5
+               as_fn_error "ODBC headers were not found in any of $odbcdirs; use --with-dlz-odbc=/path" "$LINENO" 5
                ;;
        *)
 
@@ -27594,7 +27601,7 @@ fi
 
 if test "$cross_compiling" = "yes"; then
        if test -z "$BUILD_CC"; then
-               as_fn_error $? "BUILD_CC not set" "$LINENO" 5
+               as_fn_error "BUILD_CC not set" "$LINENO" 5
        fi
        BUILD_CFLAGS="$BUILD_CFLAGS"
        BUILD_CPPFLAGS="$BUILD_CPPFLAGS"
@@ -27716,7 +27723,7 @@ ac_config_commands="$ac_config_commands chmod"
 # elsewhere if there's a good reason for doing so.
 #
 
-ac_config_files="$ac_config_files make/Makefile make/mkdep Makefile bin/Makefile bin/check/Makefile bin/confgen/Makefile bin/confgen/unix/Makefile bin/dig/Makefile bin/dnssec/Makefile bin/named/Makefile bin/named/unix/Makefile bin/nsupdate/Makefile bin/pkcs11/Makefile bin/rndc/Makefile bin/tests/Makefile bin/tests/atomic/Makefile bin/tests/db/Makefile bin/tests/dst/Makefile bin/tests/hashes/Makefile bin/tests/headerdep_test.sh bin/tests/master/Makefile bin/tests/mem/Makefile bin/tests/names/Makefile bin/tests/net/Makefile bin/tests/rbt/Makefile bin/tests/resolver/Makefile bin/tests/sockaddr/Makefile bin/tests/system/Makefile bin/tests/system/conf.sh bin/tests/system/dlz/prereq.sh bin/tests/system/dlzexternal/Makefile bin/tests/system/dlzexternal/ns1/named.conf bin/tests/system/filter-aaaa/Makefile bin/tests/system/gost/prereq.sh bin/tests/system/lwresd/Makefile bin/tests/system/rpz/Makefile bin/tests/system/tkey/Makefile bin/tests/system/tsiggss/Makefile bin/tests/tasks/Makefile bin/tests/timers/Makefile bin/tests/virtual-time/Makefile bin/tests/virtual-time/conf.sh bin/tools/Makefile contrib/check-secure-delegation.pl contrib/zone-edit.sh doc/Makefile doc/arm/Makefile doc/doxygen/Doxyfile doc/doxygen/Makefile doc/doxygen/doxygen-input-filter doc/misc/Makefile doc/xsl/Makefile doc/xsl/isc-docbook-chunk.xsl doc/xsl/isc-docbook-html.xsl doc/xsl/isc-docbook-latex.xsl doc/xsl/isc-manpage.xsl isc-config.sh lib/Makefile lib/bind9/Makefile lib/bind9/include/Makefile lib/bind9/include/bind9/Makefile lib/dns/Makefile lib/dns/include/Makefile lib/dns/include/dns/Makefile lib/dns/include/dst/Makefile lib/dns/tests/Makefile lib/export/Makefile lib/export/dns/Makefile lib/export/dns/include/Makefile lib/export/dns/include/dns/Makefile lib/export/dns/include/dst/Makefile lib/export/irs/Makefile lib/export/irs/include/Makefile lib/export/irs/include/irs/Makefile lib/export/isc/$thread_dir/Makefile lib/export/isc/$thread_dir/include/Makefile lib/export/isc/$thread_dir/include/isc/Makefile lib/export/isc/Makefile lib/export/isc/include/Makefile lib/export/isc/include/isc/Makefile lib/export/isc/nls/Makefile lib/export/isc/unix/Makefile lib/export/isc/unix/include/Makefile lib/export/isc/unix/include/isc/Makefile lib/export/isccfg/Makefile lib/export/isccfg/include/Makefile lib/export/isccfg/include/isccfg/Makefile lib/export/samples/Makefile lib/export/samples/Makefile-postinstall lib/irs/Makefile lib/irs/include/Makefile lib/irs/include/irs/Makefile lib/irs/include/irs/netdb.h lib/irs/include/irs/platform.h lib/isc/$arch/Makefile lib/isc/$arch/include/Makefile lib/isc/$arch/include/isc/Makefile lib/isc/$thread_dir/Makefile lib/isc/$thread_dir/include/Makefile lib/isc/$thread_dir/include/isc/Makefile lib/isc/Makefile lib/isc/include/Makefile lib/isc/include/isc/Makefile lib/isc/include/isc/platform.h lib/isc/nls/Makefile lib/isc/unix/Makefile lib/isc/unix/include/Makefile lib/isc/unix/include/isc/Makefile lib/isccc/Makefile lib/isccc/include/Makefile lib/isccc/include/isccc/Makefile lib/isccfg/Makefile lib/isccfg/include/Makefile lib/isccfg/include/isccfg/Makefile lib/lwres/Makefile lib/lwres/include/Makefile lib/lwres/include/lwres/Makefile lib/lwres/include/lwres/netdb.h lib/lwres/include/lwres/platform.h lib/lwres/man/Makefile lib/lwres/unix/Makefile lib/lwres/unix/include/Makefile lib/lwres/unix/include/lwres/Makefile lib/tests/Makefile lib/tests/include/Makefile lib/tests/include/tests/Makefile unit/Makefile unit/unittest.sh"
+ac_config_files="$ac_config_files make/Makefile make/mkdep Makefile bin/Makefile bin/check/Makefile bin/confgen/Makefile bin/confgen/unix/Makefile bin/dig/Makefile bin/dnssec/Makefile bin/named/Makefile bin/named/unix/Makefile bin/nsupdate/Makefile bin/pkcs11/Makefile bin/rndc/Makefile bin/tests/Makefile bin/tests/atomic/Makefile bin/tests/db/Makefile bin/tests/dst/Makefile bin/tests/hashes/Makefile bin/tests/headerdep_test.sh bin/tests/master/Makefile bin/tests/mem/Makefile bin/tests/names/Makefile bin/tests/net/Makefile bin/tests/rbt/Makefile bin/tests/resolver/Makefile bin/tests/sockaddr/Makefile bin/tests/system/Makefile bin/tests/system/conf.sh bin/tests/system/dlz/prereq.sh bin/tests/system/dlzexternal/Makefile bin/tests/system/dlzexternal/ns1/named.conf bin/tests/system/filter-aaaa/Makefile bin/tests/system/gost/prereq.sh bin/tests/system/lwresd/Makefile bin/tests/system/rpz/Makefile bin/tests/system/tkey/Makefile bin/tests/system/tsiggss/Makefile bin/tests/tasks/Makefile bin/tests/timers/Makefile bin/tests/virtual-time/Makefile bin/tests/virtual-time/conf.sh bin/tools/Makefile contrib/check-secure-delegation.pl contrib/zone-edit.sh doc/Makefile doc/arm/Makefile doc/doxygen/Doxyfile doc/doxygen/Makefile doc/doxygen/doxygen-input-filter doc/misc/Makefile doc/xsl/Makefile doc/xsl/isc-docbook-chunk.xsl doc/xsl/isc-docbook-html.xsl doc/xsl/isc-docbook-latex.xsl doc/xsl/isc-manpage.xsl isc-config.sh lib/Makefile lib/bind9/Makefile lib/bind9/include/Makefile lib/bind9/include/bind9/Makefile lib/dns/Makefile lib/dns/include/Makefile lib/dns/include/dns/Makefile lib/dns/include/dst/Makefile lib/dns/tests/Makefile lib/export/Makefile lib/export/dns/Makefile lib/export/dns/include/Makefile lib/export/dns/include/dns/Makefile lib/export/dns/include/dst/Makefile lib/export/irs/Makefile lib/export/irs/include/Makefile lib/export/irs/include/irs/Makefile lib/export/isc/$thread_dir/Makefile lib/export/isc/$thread_dir/include/Makefile lib/export/isc/$thread_dir/include/isc/Makefile lib/export/isc/Makefile lib/export/isc/include/Makefile lib/export/isc/include/isc/Makefile lib/export/isc/nls/Makefile lib/export/isc/unix/Makefile lib/export/isc/unix/include/Makefile lib/export/isc/unix/include/isc/Makefile lib/export/isccfg/Makefile lib/export/isccfg/include/Makefile lib/export/isccfg/include/isccfg/Makefile lib/export/samples/Makefile lib/export/samples/Makefile-postinstall lib/irs/Makefile lib/irs/include/Makefile lib/irs/include/irs/Makefile lib/irs/include/irs/netdb.h lib/irs/include/irs/platform.h lib/isc/$arch/Makefile lib/isc/$arch/include/Makefile lib/isc/$arch/include/isc/Makefile lib/isc/$thread_dir/Makefile lib/isc/$thread_dir/include/Makefile lib/isc/$thread_dir/include/isc/Makefile lib/isc/Makefile lib/isc/include/Makefile lib/isc/include/isc/Makefile lib/isc/include/isc/platform.h lib/isc/tests/Makefile lib/isc/nls/Makefile lib/isc/unix/Makefile lib/isc/unix/include/Makefile lib/isc/unix/include/isc/Makefile lib/isccc/Makefile lib/isccc/include/Makefile lib/isccc/include/isccc/Makefile lib/isccfg/Makefile lib/isccfg/include/Makefile lib/isccfg/include/isccfg/Makefile lib/lwres/Makefile lib/lwres/include/Makefile lib/lwres/include/lwres/Makefile lib/lwres/include/lwres/netdb.h lib/lwres/include/lwres/platform.h lib/lwres/man/Makefile lib/lwres/unix/Makefile lib/lwres/unix/include/Makefile lib/lwres/unix/include/lwres/Makefile lib/tests/Makefile lib/tests/include/Makefile lib/tests/include/tests/Makefile unit/Makefile unit/unittest.sh"
 
 
 #
@@ -27806,7 +27813,6 @@ DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
-U=
 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$//'
@@ -27969,19 +27975,19 @@ export LANGUAGE
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
+# script with status $?, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
   fi
-  $as_echo "$as_me: error: $2" >&2
+  $as_echo "$as_me: error: $1" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -28177,7 +28183,7 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
@@ -28231,7 +28237,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.65.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -28297,10 +28303,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.67,
+configured by $0, generated by GNU Autoconf 2.65,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -28316,16 +28322,11 @@ 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=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
   *)
     ac_option=$1
     ac_optarg=$2
@@ -28347,7 +28348,6 @@ do
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -28360,7 +28360,7 @@ do
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
+    as_fn_error "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
@@ -28369,7 +28369,7 @@ Try \`$0 --help' for more information.";;
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
+  -*) as_fn_error "unrecognized option: \`$1'
 Try \`$0 --help' for more information." ;;
 
   *) as_fn_append ac_config_targets " $1"
@@ -28534,6 +28534,7 @@ do
     "lib/isc/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/Makefile" ;;
     "lib/isc/include/isc/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/include/isc/Makefile" ;;
     "lib/isc/include/isc/platform.h") CONFIG_FILES="$CONFIG_FILES lib/isc/include/isc/platform.h" ;;
+    "lib/isc/tests/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/tests/Makefile" ;;
     "lib/isc/nls/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/nls/Makefile" ;;
     "lib/isc/unix/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/Makefile" ;;
     "lib/isc/unix/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/isc/unix/include/Makefile" ;;
@@ -28559,7 +28560,7 @@ do
     "unit/Makefile") CONFIG_FILES="$CONFIG_FILES unit/Makefile" ;;
     "unit/unittest.sh") CONFIG_FILES="$CONFIG_FILES unit/unittest.sh" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -28597,7 +28598,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -28631,7 +28632,7 @@ if test "x$ac_cr" = x; then
 fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
+  ac_cs_awk_cr='\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -28648,7 +28649,7 @@ _ACEOF
   echo "_ACEOF"
 } >conf$$files.sh &&
 . ./conf$$files.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 rm -f conf$$files.sh
 
 {
@@ -28656,18 +28657,18 @@ rm -f conf$$files.sh
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -28762,28 +28763,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# 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[        ]*=[    ]*/{
-h
-s///
-s/^/:/
-s/[     ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
+  ac_vpsub='/^[         ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[    ]*\):*/\1/
 s/:*$//
-x
-s/\(=[  ]*\).*/\1/
-G
-s/\n//
 s/^[^=]*=[      ]*$//
 }'
 fi
@@ -28811,7 +28804,7 @@ for ac_last_try in false false :; do
   if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -28896,7 +28889,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+  as_fn_error "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -28909,7 +28902,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -28937,7 +28930,7 @@ do
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -28964,7 +28957,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -29100,22 +29093,22 @@ if $ac_cs_awk_getline; then
 else
   $AWK -f "$tmp/subs.awk" | $SHELL
 fi >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
 
 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"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
+which seems to be undefined.  Please make sure it is defined." >&5
 $as_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;}
+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 \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -29126,19 +29119,19 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
       $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
     } >"$tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+      || as_fn_error "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$tmp/config.h" "$ac_file" \
-       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+       || as_fn_error "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
+      || as_fn_error "could not create -" "$LINENO" 5
   fi
  ;;
 
@@ -29161,7 +29154,7 @@ _ACEOF
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -29182,7 +29175,7 @@ if test "$no_create" != yes; then
   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 || as_fn_exit 1
+  $ac_cs_success || as_fn_exit $?
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
index cb30f5c481c75e379bd1480cc8c7f9c9dae1d335..def74306cbf2f37390a39907ca4607fdeba44d6a 100644 (file)
@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl
 esyscmd([sed "s/^/# /" COPYRIGHT])dnl
 AC_DIVERT_POP()dnl
 
-AC_REVISION($Revision: 1.512.8.10 $)
+AC_REVISION($Revision: 1.512.8.11 $)
 
 AC_INIT(lib/dns/name.c)
 AC_PREREQ(2.59)
@@ -3508,6 +3508,7 @@ AC_CONFIG_FILES([
        lib/isc/include/Makefile
        lib/isc/include/isc/Makefile
        lib/isc/include/isc/platform.h
+       lib/isc/tests/Makefile
        lib/isc/nls/Makefile
        lib/isc/unix/Makefile
        lib/isc/unix/include/Makefile
index 01f25438018a82d428e11d84c2010697c477f46d..76a50ce4aec732078c59b7a0b5d875f042f8d6a3 100644 (file)
@@ -3,3 +3,4 @@ Content-Type: application/X-atf-atffile; version="1"
 prop: test-suite = bind9
 
 tp: dns
+tp: isc
index de16129325e72c4045e94cfc8978bdc34c45299a..a4e76b3c4a8c02251f3aec6314dcb14cc1b61941 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.h,v 1.182 2010/12/18 01:56:22 each Exp $ */
+/* $Id: zone.h,v 1.182.16.1 2011/07/08 22:57:25 smann Exp $ */
 
 #ifndef DNS_ZONE_H
 #define DNS_ZONE_H 1
@@ -1380,7 +1380,8 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
                   isc_timermgr_t *timermgr, isc_socketmgr_t *socketmgr,
                   dns_zonemgr_t **zmgrp);
 /*%<
- * Create a zone manager.
+ * Create a zone manager.  Note: the zone manager will not be able to
+ * manage any zones until dns_zonemgr_setsize() has been run.
  *
  * Requires:
  *\li  'mctx' to be a valid memory context.
@@ -1389,6 +1390,18 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
  *\li  'zmgrp' to point to a NULL pointer.
  */
 
+isc_result_t
+dns_zonemgr_setsize(dns_zonemgr_t *zmgr, int num_zones);
+/*%<
+ *     Set the size of the zone manager task pool.  This must be run
+ *     before zmgr can be used for managing zones.  Currently, it can only
+ *     be run once; the task pool cannot be resized.
+ *
+ * Requires:
+ *\li  zmgr is a valid zone manager.
+ *\li  zmgr->zonetasks has been initialized.
+ */
+
 isc_result_t
 dns_zonemgr_managezone(dns_zonemgr_t *zmgr, dns_zone_t *zone);
 /*%<
index 6a8f64198bf225e3008d1e0f1a5b27f092bd7bf5..61fdebcead0e57957c531554c85146bafe7bbbe3 100644 (file)
@@ -12,7 +12,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: Makefile.in,v 1.2.2.3 2011/03/09 07:27:37 marka Exp $
+# $Id: Makefile.in,v 1.2.2.4 2011/07/08 22:57:25 smann Exp $
 
 srcdir =       @srcdir@
 VPATH =                @srcdir@
@@ -37,10 +37,10 @@ DNSDEPLIBS =        ../libdns.@A@
 LIBS =         @LIBS@ @ATFLIBS@
 
 OBJS =         dnstest.@O@
-SRCS =         dnstest.c master_test.c time_test.c
+SRCS =         dnstest.c master_test.c time_test.c zonemgr_test.c
 
 SUBDIRS =
-TARGETS =      master_test@EXEEXT@ time_test@EXEEXT@
+TARGETS =      master_test@EXEEXT@ time_test@EXEEXT@ zonemgr_test@EXEEXT@
 
 @BIND9_MAKE_RULES@
 
@@ -53,5 +53,11 @@ time_test@EXEEXT@: time_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
                        time_test.@O@ dnstest.@O@ ${DNSLIBS} \
                                ${ISCLIBS} ${LIBS}
+
+zonemgr_test@EXEEXT@: zonemgr_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
+       ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+                       zonemgr_test.@O@ dnstest.@O@ ${DNSLIBS} \
+                               ${ISCLIBS} ${LIBS}
+
 clean distclean::
        rm -f ${TARGETS}
index 9e2cc6b681115e3272702c57f9492f4d246ed98b..8ed842548912c0ec9a24f24ca5ac9e87557e51ba 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dnstest.c,v 1.2.2.3 2011/02/28 01:20:03 tbox Exp $ */
+/* $Id: dnstest.c,v 1.2.2.4 2011/07/08 22:57:25 smann Exp $ */
 
 /*! \file */
 
 #include <isc/entropy.h>
 #include <isc/hash.h>
 #include <isc/mem.h>
+#include <isc/os.h>
 #include <isc/string.h>
+#include <isc/socket.h>
+#include <isc/task.h>
+#include <isc/timer.h>
 #include <isc/util.h>
 
 #include <dns/log.h>
 isc_mem_t *mctx = NULL;
 isc_entropy_t *ectx = NULL;
 isc_log_t *lctx = NULL;
+isc_taskmgr_t *taskmgr = NULL;
+isc_timermgr_t *timermgr = NULL;
+isc_socketmgr_t *socketmgr = NULL;
+int ncpus;
 
 static isc_boolean_t hash_active = ISC_FALSE, dst_active = ISC_FALSE;
 
@@ -57,8 +65,37 @@ static isc_logcategory_t categories[] = {
                { NULL,              0 }
 };
 
+static void
+cleanup_managers() {
+       if (socketmgr != NULL)
+               isc_socketmgr_destroy(&socketmgr);
+       if (taskmgr != NULL)
+               isc_taskmgr_destroy(&taskmgr);
+       if (timermgr != NULL)
+               isc_timermgr_destroy(&timermgr);
+}
+
+static isc_result_t
+create_managers() {
+       isc_result_t result;
+#ifdef ISC_PLATFORM_USETHREADS
+       ncpus = isc_os_ncpus();
+#else
+       ncpus = 1;
+#endif
+
+       CHECK(isc_taskmgr_create(mctx, ncpus, 0, &taskmgr));
+       CHECK(isc_timermgr_create(mctx, &timermgr));
+       CHECK(isc_socketmgr_create(mctx, &socketmgr));
+       return (ISC_R_SUCCESS);
+
+  cleanup:
+       cleanup_managers();
+       return (result);
+}
+
 isc_result_t
-dns_test_begin(FILE *logfile) {
+dns_test_begin(FILE *logfile, isc_boolean_t start_managers) {
        isc_result_t result;
 
        isc_mem_debugging |= ISC_MEM_DEBUGRECORD;
@@ -94,6 +131,9 @@ dns_test_begin(FILE *logfile) {
 
        dns_result_register();
 
+       if (start_managers)
+               CHECK(create_managers());
+
        return (ISC_R_SUCCESS);
 
   cleanup:
@@ -115,6 +155,9 @@ dns_test_end() {
        }
        if (ectx != NULL)
                isc_entropy_detach(&ectx);
+
+       cleanup_managers();
+
        if (mctx != NULL)
                isc_mem_destroy(&mctx);
 }
index 0c149c9ad2052d019f563b72c0562acd87e55d2f..49482ae6d7c077ca52f11b7a17009cd75d02cac9 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dnstest.h,v 1.2.2.2 2011/02/26 02:36:46 each Exp $ */
+/* $Id: dnstest.h,v 1.2.2.3 2011/07/08 22:57:25 smann Exp $ */
 
 /*! \file */
 
 extern isc_mem_t *mctx;
 extern isc_entropy_t *ectx;
 extern isc_log_t *lctx;
+isc_taskmgr_t *taskmgr;
+isc_timermgr_t *timermgr;
+isc_socketmgr_t *socketmgr;
+int ncpus;
+
 
 isc_result_t
-dns_test_begin(FILE *logfile);
+dns_test_begin(FILE *logfile, isc_boolean_t create_managers);
 
 void
 dns_test_end(void);
index 26bc8c797dd3b75af91fcd4f50cd6e24458763bf..75200deb51277afd6339c2eb5c7ee6ba3316d1d2 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: master_test.c,v 1.2.2.3 2011/02/28 01:20:03 tbox Exp $ */
+/* $Id: master_test.c,v 1.2.2.4 2011/07/08 22:57:25 smann Exp $ */
 
 /*! \file */
 
@@ -114,7 +114,7 @@ ATF_TC_BODY(master_load, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master1.data");
@@ -136,7 +136,7 @@ ATF_TC_BODY(master_unexpected, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master2.data");
@@ -158,7 +158,7 @@ ATF_TC_BODY(master_noowner, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master3.data");
@@ -181,7 +181,7 @@ ATF_TC_BODY(master_nottl, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master4.data");
@@ -203,7 +203,7 @@ ATF_TC_BODY(master_badclass, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master5.data");
@@ -223,7 +223,7 @@ ATF_TC_BODY(master_dnskey, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master6.data");
@@ -244,7 +244,7 @@ ATF_TC_BODY(master_dnsnokey, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master7.data");
@@ -264,7 +264,7 @@ ATF_TC_BODY(master_include, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master8.data");
@@ -284,7 +284,7 @@ ATF_TC_BODY(master_includefail, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master9.data");
@@ -305,7 +305,7 @@ ATF_TC_BODY(master_blanklines, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master10.data");
@@ -325,7 +325,7 @@ ATF_TC_BODY(master_leadingzero, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
        result = test_master("testdata/master/master11.data");
index 45a728586be5e68b1757c200b603049c1e8f0b74..8ea5415b8516e9e985e2a693f3b1d11a48bd3813 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: time_test.c,v 1.2.2.2 2011/03/09 07:27:37 marka Exp $ */
+/* $Id: time_test.c,v 1.2.2.3 2011/07/08 22:57:25 smann Exp $ */
 
 /*! \file */
 
@@ -49,7 +49,7 @@ ATF_TC_BODY(epoch_minus_one, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
@@ -77,7 +77,7 @@ ATF_TC_BODY(epoch, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
@@ -105,7 +105,7 @@ ATF_TC_BODY(half_maxint, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
@@ -133,7 +133,7 @@ ATF_TC_BODY(half_plus_one, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
@@ -161,7 +161,7 @@ ATF_TC_BODY(fifty_before, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
@@ -189,7 +189,7 @@ ATF_TC_BODY(some_ago, tc) {
 
        UNUSED(tc);
 
-       result = dns_test_begin(NULL);
+       result = dns_test_begin(NULL, ISC_FALSE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
        memset(buf, 0, sizeof(buf));
        isc_buffer_init(&target, buf, sizeof(buf));
index 1a0d6cc5260c7199b2d1054342a80d685e470592..239d740739dd67204032b3bd65ff04ce1ecdc3b9 100644 (file)
@@ -908,6 +908,7 @@ dns_zonemgr_releasezone
 dns_zonemgr_resumexfrs
 dns_zonemgr_setiolimit
 dns_zonemgr_setserialqueryrate
+dns_zonemgr_setsize
 dns_zonemgr_settransfersin
 dns_zonemgr_settransfersperns
 dns_zonemgr_shutdown
index b04a515f7e7dff56d4a22f723bd9b1681cc13b5a..c5f48f6646cab5e18c1e99f0e52859660dd36c5f 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.582.8.22 2011/07/08 01:45:58 each Exp $ */
+/* $Id: zone.c,v 1.582.8.23 2011/07/08 22:57:24 smann Exp $ */
 
 /*! \file */
 
 #define IO_MAGIC                       ISC_MAGIC('Z', 'm', 'I', 'O')
 #define DNS_IO_VALID(load)             ISC_MAGIC_VALID(load, IO_MAGIC)
 
-/*
- * Size of the zone task table.  For best results, this should be a
- * prime number, approximately 1% of the maximum number of authoritative
- * zones expected to be served by this server.
- */
-#define ZONE_TASKS 17
-
 /*%
  * Ensure 'a' is at least 'min' but not more than 'max'.
  */
@@ -12486,16 +12479,10 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
        zmgr->transfersin = 10;
        zmgr->transfersperns = 2;
 
-       /* Create the zone task pool. */
-       result = isc_taskpool_create(taskmgr, mctx, ZONE_TASKS, 2,
-                                    &zmgr->zonetasks);
-       if (result != ISC_R_SUCCESS)
-               goto free_rwlock;
-
        /* Create a single task for queueing of SOA queries. */
        result = isc_task_create(taskmgr, 1, &zmgr->task);
        if (result != ISC_R_SUCCESS)
-               goto free_taskpool;
+               goto free_rwlock;
        isc_task_setname(zmgr->task, "zmgr", zmgr);
        result = isc_ratelimiter_create(mctx, timermgr, zmgr->task,
                                        &zmgr->rl);
@@ -12529,8 +12516,6 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
        isc_ratelimiter_detach(&zmgr->rl);
  free_task:
        isc_task_detach(&zmgr->task);
- free_taskpool:
-       isc_taskpool_destroy(&zmgr->zonetasks);
  free_rwlock:
        isc_rwlock_destroy(&zmgr->rwlock);
  free_mem:
@@ -12546,16 +12531,16 @@ dns_zonemgr_managezone(dns_zonemgr_t *zmgr, dns_zone_t *zone) {
        REQUIRE(DNS_ZONE_VALID(zone));
        REQUIRE(DNS_ZONEMGR_VALID(zmgr));
 
+       if (zmgr->zonetasks == NULL)
+               return (ISC_R_FAILURE);
+
        RWLOCK(&zmgr->rwlock, isc_rwlocktype_write);
        LOCK_ZONE(zone);
        REQUIRE(zone->task == NULL);
        REQUIRE(zone->timer == NULL);
        REQUIRE(zone->zmgr == NULL);
 
-       isc_taskpool_gettask(zmgr->zonetasks,
-                            dns_name_hash(dns_zone_getorigin(zone),
-                                          ISC_FALSE),
-                            &zone->task);
+       isc_taskpool_gettask(zmgr->zonetasks, &zone->task);
 
        /*
         * Set the task name.  The tag will arbitrarily point to one
@@ -12648,6 +12633,7 @@ dns_zonemgr_detach(dns_zonemgr_t **zmgrp) {
 
        if (free_now)
                zonemgr_free(zmgr);
+       *zmgrp = NULL;
 }
 
 isc_result_t
@@ -12699,6 +12685,35 @@ dns_zonemgr_shutdown(dns_zonemgr_t *zmgr) {
                isc_taskpool_destroy(&zmgr->zonetasks);
 }
 
+isc_result_t
+dns_zonemgr_setsize(dns_zonemgr_t *zmgr, int num_zones) {
+       isc_result_t result;
+       int ntasks = num_zones / 100;
+       isc_taskpool_t *pool = NULL;
+
+       REQUIRE(DNS_ZONEMGR_VALID(zmgr));
+
+       /*
+        * For anything fewer than 1000 zones we use 10 tasks in
+        * the task pool.  More than that, and we'll scale at one
+        * task per 100 zones.
+        */
+       if (ntasks < 10)
+               ntasks = 10;
+
+       /* Create or resize the zone task pool. */
+       if (zmgr->zonetasks == NULL)
+               result = isc_taskpool_create(zmgr->taskmgr, zmgr->mctx,
+                                            ntasks, 2, &pool);
+       else
+               result = isc_taskpool_expand(&zmgr->zonetasks, ntasks, &pool);
+
+       if (result == ISC_R_SUCCESS)
+               zmgr->zonetasks = pool;
+
+       return (result);
+}
+
 static void
 zonemgr_free(dns_zonemgr_t *zmgr) {
        isc_mem_t *mctx;
index 055b382204852a1f58d17cb58424311205c03cc8..931c27f1af4f2468ddd403ed718c34b7d698d4d0 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.109 2010/06/09 01:43:09 marka Exp $
+# $Id: Makefile.in,v 1.109.108.1 2011/07/08 22:57:26 smann Exp $
 
 srcdir =       @srcdir@
 VPATH =                @srcdir@
@@ -88,6 +88,7 @@ LIBS =                @LIBS@
 .NO_PARALLEL:
 SUBDIRS =      include unix nls @ISC_THREAD_DIR@ @ISC_ARCH_DIR@
 TARGETS =      timestamp
+TESTDIRS =     @UNITTESTS@
 
 @BIND9_MAKE_RULES@
 
index fd07bfd5b126ff5654147c3039b20b213376202d..ac9fdf641189476ed0c57ddce9838534424df7e6 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: taskpool.h,v 1.15 2007/06/19 23:47:18 tbox Exp $ */
+/* $Id: taskpool.h,v 1.15.814.1 2011/07/08 22:57:26 smann Exp $ */
 
 #ifndef ISC_TASKPOOL_H
 #define ISC_TASKPOOL_H 1
@@ -84,10 +84,49 @@ isc_taskpool_create(isc_taskmgr_t *tmgr, isc_mem_t *mctx,
  */
 
 void 
-isc_taskpool_gettask(isc_taskpool_t *pool, unsigned int hash,
-                         isc_task_t **targetp);
+isc_taskpool_gettask(isc_taskpool_t *pool, isc_task_t **targetp);
 /*%<
- * Attach to the task corresponding to the hash value "hash".
+ * Attach to a task from the pool.  Currently the next task is chosen
+ * from the pool at random.  (This may be changed in the future to
+ * something that guaratees balance.)
+ */
+
+int
+isc_taskpool_size(isc_taskpool_t *pool);
+/*%<
+ * Returns the number of tasks in the task pool 'pool'.
+ */
+
+isc_result_t
+isc_taskpool_expand(isc_taskpool_t **sourcep, unsigned int size,
+                                       isc_taskpool_t **targetp);
+
+/*%<
+ * If 'size' is larger than the number of tasks in the pool pointed to by
+ * 'sourcep', then a new taskpool of size 'size' is allocated, the existing
+ * tasks from are moved into it, additional tasks are created to bring the
+ * total number up to 'size', and the resulting pool is attached to
+ * 'targetp'.
+ *
+ * If 'size' is less than or equal to the tasks in pool 'source', then
+ * 'sourcep' is attached to 'targetp' without any other action being taken.
+ *
+ * In either case, 'sourcep' is detached.
+ *
+ * Requires:
+ * 
+ * \li 'sourcep' is not NULL and '*source' is not NULL
+ * \li 'targetp' is not NULL and '*source' is NULL
+ *
+ * Ensures:
+ *
+ * \li On success, '*targetp' points to a valid task pool.
+ * \li On success, '*sourcep' points to NULL.
+ *
+ * Returns:
+ *
+ * \li #ISC_R_SUCCESS
+ * \li #ISC_R_NOMEMORY
  */
 
 void
index d9c2fbe2f31a3dbf3b4ee2dee3265dadbeb88bd4..1052146da8e84d67b1f4ca0d82d434c1414c9d14 100644 (file)
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: taskpool.c,v 1.18 2007/06/18 23:47:44 tbox Exp $ */
+/* $Id: taskpool.c,v 1.18.814.1 2011/07/08 22:57:26 smann Exp $ */
 
 /*! \file */
 
 #include <config.h>
 
 #include <isc/mem.h>
+#include <isc/random.h>
 #include <isc/taskpool.h>
 #include <isc/util.h>
 
 
 struct isc_taskpool {
        isc_mem_t *                     mctx;
+       isc_taskmgr_t *                 tmgr;
        unsigned int                    ntasks;
+       unsigned int                    quantum;
        isc_task_t **                   tasks;
 };
+
 /***
  *** Functions.
  ***/
 
-isc_result_t
-isc_taskpool_create(isc_taskmgr_t *tmgr, isc_mem_t *mctx,
-                   unsigned int ntasks, unsigned int quantum,
-                   isc_taskpool_t **poolp)
+static isc_result_t
+alloc_pool(isc_taskmgr_t *tmgr, isc_mem_t *mctx, unsigned int ntasks,
+          unsigned int quantum, isc_taskpool_t **poolp)
 {
-       unsigned int i;
        isc_taskpool_t *pool;
-       isc_result_t result;
+       unsigned int i;
 
-       INSIST(ntasks > 0);
        pool = isc_mem_get(mctx, sizeof(*pool));
        if (pool == NULL)
                return (ISC_R_NOMEMORY);
        pool->mctx = mctx;
        pool->ntasks = ntasks;
+       pool->quantum = quantum;
+       pool->tmgr = tmgr;
        pool->tasks = isc_mem_get(mctx, ntasks * sizeof(isc_task_t *));
        if (pool->tasks == NULL) {
                isc_mem_put(mctx, pool, sizeof(*pool));
@@ -60,6 +63,28 @@ isc_taskpool_create(isc_taskmgr_t *tmgr, isc_mem_t *mctx,
        }
        for (i = 0; i < ntasks; i++)
                pool->tasks[i] = NULL;
+
+       *poolp = pool;
+       return (ISC_R_SUCCESS);
+}
+
+isc_result_t
+isc_taskpool_create(isc_taskmgr_t *tmgr, isc_mem_t *mctx,
+                   unsigned int ntasks, unsigned int quantum,
+                   isc_taskpool_t **poolp)
+{
+       unsigned int i;
+       isc_taskpool_t *pool = NULL;
+       isc_result_t result;
+
+       INSIST(ntasks > 0);
+       
+       /* Allocate the pool structure */
+       result = alloc_pool(tmgr, mctx, ntasks, quantum, &pool);
+       if (result != ISC_R_SUCCESS)
+               return (result);
+
+       /* Create the tasks */
        for (i = 0; i < ntasks; i++) {
                result = isc_task_create(tmgr, quantum, &pool->tasks[i]);
                if (result != ISC_R_SUCCESS) {
@@ -68,14 +93,69 @@ isc_taskpool_create(isc_taskmgr_t *tmgr, isc_mem_t *mctx,
                }
                isc_task_setname(pool->tasks[i], "taskpool", NULL);
        }
+
        *poolp = pool;
        return (ISC_R_SUCCESS);
 }
 
-void isc_taskpool_gettask(isc_taskpool_t *pool, unsigned int hash,
-                         isc_task_t **targetp)
+void
+isc_taskpool_gettask(isc_taskpool_t *pool, isc_task_t **targetp) {
+       isc_uint32_t i;
+       isc_random_get(&i);
+       isc_task_attach(pool->tasks[i % pool->ntasks], targetp);
+}
+
+int
+isc_taskpool_size(isc_taskpool_t *pool) {
+       REQUIRE(pool != NULL);
+       return (pool->ntasks);
+}
+
+isc_result_t
+isc_taskpool_expand(isc_taskpool_t **sourcep, unsigned int size,
+                   isc_taskpool_t **targetp)
 {
-       isc_task_attach(pool->tasks[hash % pool->ntasks], targetp);
+       isc_result_t result;
+       isc_taskpool_t *pool;
+
+       REQUIRE(sourcep != NULL && *sourcep != NULL);
+       REQUIRE(targetp != NULL && *targetp == NULL);
+
+       pool = *sourcep;
+       if (size > pool->ntasks) {
+               isc_taskpool_t *newpool = NULL;
+               unsigned int i;
+
+               /* Allocate a new pool structure */
+               result = alloc_pool(pool->tmgr, pool->mctx, size,
+                                   pool->quantum, &newpool);
+               if (result != ISC_R_SUCCESS)
+                       return (result);
+
+               /* Copy over the tasks from the old pool */
+               for (i = 0; i < pool->ntasks; i++) {
+                       newpool->tasks[i] = pool->tasks[i];
+                       pool->tasks[i] = NULL;
+               }
+
+               /* Create new tasks */
+               for (i = pool->ntasks; i < size; i++) {
+                       result = isc_task_create(pool->tmgr, pool->quantum,
+                                                &newpool->tasks[i]);
+                       if (result != ISC_R_SUCCESS) {
+                               isc_taskpool_destroy(&newpool);
+                               return (result);
+                       }
+                       isc_task_setname(newpool->tasks[i], "taskpool", NULL);
+               }
+
+               isc_taskpool_destroy(&pool);
+               pool = newpool;
+       }
+
+       *sourcep = NULL;
+       *targetp = pool;
+       return (ISC_R_SUCCESS);
 }
 
 void
index f4b80c1f8f0d4e141d8b81d2e8dfd8b6ba227973..740f3cefc277362da75b42fdb95f2b48bb97b1db 100644 (file)
@@ -531,7 +531,9 @@ isc_syslog_facilityfromstring
 isc_taskmgr_renderxml
 isc_taskpool_create
 isc_taskpool_destroy
+isc_taskpool_expand
 isc_taskpool_gettask
+isc_taskpool_size
 isc_thread_create
 isc_thread_join
 isc_thread_key_create
diff --git a/version b/version
index eec599b59b21c6f7db79752fc81f05bd431e2e35..9aacb5e564942fad967828429dae61f4313b46f5 100644 (file)
--- a/version
+++ b/version
@@ -1,4 +1,4 @@
-# $Id: version,v 1.53.8.6 2011/05/31 23:28:38 marka Exp $
+# $Id: version,v 1.53.8.7 2011/07/08 22:57:24 smann Exp $
 # 
 # This file must follow /bin/sh rules.  It is imported directly via
 # configure.
@@ -7,4 +7,4 @@ MAJORVER=9
 MINORVER=8
 PATCHVER=1
 RELEASETYPE=b
-RELEASEVER=2
+RELEASEVER=3