]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
add a compile-time option to select default zone and cache DB
authorEvan Hunt <each@isc.org>
Wed, 6 Mar 2024 00:17:33 +0000 (16:17 -0800)
committerMatthijs Mekking <matthijs@isc.org>
Wed, 6 Mar 2024 09:49:02 +0000 (10:49 +0100)
by default, QPDB is the database used by named and all tools and
unit tests. the old default of RBTDB can now be restored by using
"configure --with-zonedb=rbt --with-cachedb=rbt".

some tests have been fixed so they will work correctly with either
database.

CHANGES and release notes have been updated to reflect this change.

26 files changed:
CHANGES
bin/check/check-tool.c
bin/check/named-checkconf.c
bin/dnssec/dnssec-cds.c
bin/dnssec/dnssec-dsfromkey.c
bin/dnssec/dnssec-importkey.c
bin/dnssec/dnssec-signzone.c
bin/dnssec/dnssec-verify.c
bin/named/server.c
bin/named/zoneconf.c
bin/tests/system/makejournal.c
configure.ac
doc/notes/notes-current.rst
fuzz/dns_master_load.c
lib/dns/cache.c
lib/dns/client.c
lib/dns/rootns.c
lib/dns/xfrin.c
lib/dns/zone.c
lib/isccfg/check.c
tests/dns/db_test.c
tests/dns/dbversion_test.c
tests/dns/master_test.c
tests/dns/qpdb_test.c
tests/libtest/dns.c
tests/libtest/ns.c

diff --git a/CHANGES b/CHANGES
index 5160fd086ecede4f57cdac024aaea2c8c4c7abf0..bb0796270784ff5e01ba6c0e484348d97c44bacf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,8 +2,8 @@
                        RBTDB has been replaced with QP-tries.  This is
                        expected to improve scalability and reduce
                        CPU consumption under load. It is currently known to
-                       have higher memory consumption than RBTDB; this
-                       will be addressed in future releases.
+                       have higher memory consumption than the traditional
+                       RBTDB; this will be addressed in future releases.
 
                        Nodes in a QP-trie contain the full domain name,
                        while nodes in a red-black tree only contain names
                        single-thread "dns_qp" interface with locks for
                        synchronization. A future version will use the
                        multithreaded "dns_qpmulti" interface instead,
-                       and will be renamed to QPDB. [GL #4411]
+                       and will be renamed to QPDB.
+
+                       The RBT-based version of RBTDB is still in place
+                       for now, and can be used by specifying "database rbt"
+                       in a "zone" statement, or by compiling with
+                       "configure --with-zonedb=rbt --with-cachedb=rbt".
+                       [GL #4411]
 
 6354.  [bug]           Change 6035 introduced a regression when chasing DS
                        records resulting in an assertion failure. [GL #4612]
index 26983b75b6d0d74c7eec9808beae7db04abfff49..352d83acbf0697a46c80a50e040c880da94e196c 100644 (file)
@@ -73,7 +73,7 @@
 #define ERR_IS_MXCNAME    6
 #define ERR_IS_SRVCNAME           7
 
-static const char *dbtype[] = { "qp" };
+static const char *dbtype[] = { ZONEDB_DEFAULT };
 
 int debug = 0;
 const char *journal = NULL;
index 8e9991f265d522aba1d80ce4443603f464a6f43e..f4ed602c49679508569846d0d075c979164735b6 100644 (file)
@@ -242,7 +242,9 @@ configure_zone(const char *vclass, const char *view, const cfg_obj_t *zconfig,
         * Skip checks when using an alternate data source.
         */
        cfg_map_get(zoptions, "database", &dbobj);
-       if (dbobj != NULL && strcmp("qp", cfg_obj_asstring(dbobj)) != 0) {
+       if (dbobj != NULL &&
+           strcmp(ZONEDB_DEFAULT, cfg_obj_asstring(dbobj)) != 0)
+       {
                return (ISC_R_SUCCESS);
        }
 
index 3c0f557d022b67a4406e6acff953ec4276d49180..ebd619aaa3f89b47831f83629025f1c21f2f57b3 100644 (file)
@@ -247,8 +247,8 @@ static void
 load_db(const char *filename, dns_db_t **dbp, dns_dbnode_t **nodep) {
        isc_result_t result;
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, dbp);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, dbp);
        check_result(result, "dns_db_create()");
 
        result = dns_db_load(*dbp, filename, dns_masterformat_text,
@@ -979,8 +979,8 @@ update_diff(const char *cmd, uint32_t ttl, dns_rdataset_t *addset,
        dns_rdataset_t diffset;
        uint32_t save;
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, &update_db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, &update_db);
        check_result(result, "dns_db_create()");
 
        result = dns_db_newversion(update_db, &update_version);
index c9820344b074a3ccff7ce9fc55468a1fa34f1d3c..863573ddbac13768ba8487a81b9c6369674e4a00 100644 (file)
@@ -100,8 +100,8 @@ loadset(const char *filename, dns_rdataset_t *rdataset) {
 
        dns_name_format(name, setname, sizeof(setname));
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, &db);
        if (result != ISC_R_SUCCESS) {
                fatal("can't create database");
        }
index 0dfcd632c8f76077d2effa7dc8fd5dfe682b64ff..c93a0158eb5a6975bc2578840166ab6d7f0d22cd 100644 (file)
@@ -103,8 +103,8 @@ loadset(const char *filename, dns_rdataset_t *rdataset) {
 
        dns_name_format(name, setname, sizeof(setname));
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, &db);
        if (result != ISC_R_SUCCESS) {
                fatal("can't create database");
        }
index 0eefe27df9ad8aeed63d076b5d711ec35c3a1157..afe2eff19b12443b829cc693ecec56acd27b453d 100644 (file)
@@ -998,8 +998,8 @@ opendb(const char *prefix, dns_name_t *name, dns_rdataclass_t rdclass,
        }
        isc_buffer_putuint8(&b, 0);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              rdclass, 0, NULL, dbp);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, rdclass, 0, NULL, dbp);
        check_result(result, "dns_db_create()");
 
        result = dns_db_load(*dbp, filename, inputformat, DNS_MASTER_HINT);
@@ -2572,8 +2572,8 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) {
                      isc_result_totext(result));
        }
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, db);
        check_result(result, "dns_db_create()");
 
        result = dns_db_load(*db, file, inputformat, 0);
@@ -3162,8 +3162,8 @@ writeset(const char *prefix, dns_rdatatype_t type) {
                dns_diff_append(&diff, &tuple);
        }
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              gclass, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, gclass, 0, NULL, &db);
        check_result(result, "dns_db_create");
 
        result = dns_db_newversion(db, &dbversion);
index d91fe6abe9474922871926041f9dcae721c23480..c4ce4eadf76c76ae8a68f7a408a01c59e10eb606 100644 (file)
@@ -109,8 +109,8 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) {
                      isc_result_totext(result));
        }
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0,
-                              NULL, db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
+                              rdclass, 0, NULL, db);
        check_result(result, "dns_db_create()");
 
        result = dns_db_load(*db, file, inputformat, 0);
index 6c221eb3f35e02394ba2a06ffbd34de8a9064446..116ccbbd8f49058e788864b55061a022b1a9a842 100644 (file)
@@ -3377,7 +3377,7 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
        const cfg_obj_t *obj;
        const cfg_obj_t *zconfig;
        const cfg_obj_t *zoptions;
-       const char *rbt_dbtype[4] = { "qp" };
+       const char *default_dbtype[4] = { ZONEDB_DEFAULT };
        const char *sep = ": view ";
        const char *str;
        const char *viewname = view->name;
@@ -3390,7 +3390,7 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
        dns_name_t *ns;
        dns_name_t *zname;
        dns_zone_t *zone = NULL;
-       int rbt_dbtypec = 1;
+       int default_dbtypec = 1;
        isc_result_t result;
        dns_namereln_t namereln;
        int order;
@@ -3432,7 +3432,7 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
                        }
                }
                if (db == NULL) {
-                       CHECK(dns_db_create(view->mctx, "qp", name,
+                       CHECK(dns_db_create(view->mctx, ZONEDB_DEFAULT, name,
                                            dns_dbtype_zone, view->rdclass, 0,
                                            NULL, &db));
                        CHECK(dns_db_newversion(db, &version));
@@ -3452,15 +3452,15 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
        }
 
        /*
-        * Is the existing zone the ok to use?
+        * Is the existing zone ok to use?
         */
        if (pzone != NULL) {
                unsigned int typec;
-               const char **dbargv;
+               const char **dbargv = NULL;
 
                if (db != NULL) {
-                       typec = rbt_dbtypec;
-                       dbargv = rbt_dbtype;
+                       typec = default_dbtypec;
+                       dbargv = default_dbtype;
                } else {
                        typec = empty_dbtypec;
                        dbargv = empty_dbtype;
index 3827d8bdf5c83f528283a6f78a25dcf62f6a9c00..c45051b42a46754fc1fd057521480b0a664de1fe 100644 (file)
@@ -885,7 +885,7 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
        uint32_t count;
        unsigned int dbargc;
        char **dbargv;
-       static char default_dbtype[] = "qp";
+       static char default_dbtype[] = ZONEDB_DEFAULT;
        static char dlz_dbtype[] = "dlz";
        char *cpval = default_dbtype;
        isc_mem_t *mctx = dns_zone_getmctx(zone);
index a7c9e4710a513ddd85ed5c87d40f15a209b8b073..b9e766cf6810492d40da93fcd20f7c80ff64475b 100644 (file)
@@ -67,7 +67,7 @@ loadzone(dns_db_t **db, const char *origin, const char *filename) {
                return (result);
        }
 
-       result = dns_db_create(mctx, "qp", name, dns_dbtype_zone,
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, name, dns_dbtype_zone,
                               dns_rdataclass_in, 0, NULL, db);
        if (result != ISC_R_SUCCESS) {
                return (result);
index de7c9dab643918564f369090bc7dcabce8979467..2df3d19a3bbf5c9e2469e57d2d8f7032ea6e8b2c 100644 (file)
@@ -1569,6 +1569,35 @@ AS_IF([test -z "$DTRACE"],
 
 AC_SUBST([DTRACE])
 
+#
+# Which should be the default zone database, RBTDB or QPDB?
+# [pairwise: --with-zonedb=qp, --with-zonedb=rbt]
+#
+AC_ARG_WITH([zonedb],
+           [AS_HELP_STRING([--with-zonedb=detect],[specify default zone database type (default is "qp")])],
+           [],[with_zonedb=qp])
+zonedb="qp"
+AS_CASE([$with_zonedb],
+       [RBT*|rbt*],[zonedb="rbt"],
+        [QP*|qp*],[],
+       [AC_MSG_ERROR([Unknown zone database type])]
+       )
+AC_DEFINE_UNQUOTED([ZONEDB_DEFAULT], ["$zonedb"], [Default zone database type])
+
+#
+# Which should be the default cache database, RBTDB or QPDB?
+# [pairwise: --with-cachedb=qp, --with-cachedb=rbt]
+#
+AC_ARG_WITH([cachedb],
+           [AS_HELP_STRING([--with-cachedb=detect],[specify default cache database type (default is "qp")])],
+           [],[with_cachedb=qp])
+cachedb="qp"
+AS_CASE([$with_cachedb],
+       [RBT*|rbt*],[cachedb="rbt"],
+        [QP*|qp*],[],
+       [AC_MSG_ERROR([Unknown cache database type])]
+       )
+AC_DEFINE_UNQUOTED([CACHEDB_DEFAULT], ["$cachedb"], [Default cache database type])
 
 #
 # Files to configure.  These are listed here because we used to
@@ -1668,6 +1697,12 @@ report() {
     if test "yes" = "$with_jemalloc"; then
        echo "    Memory allocator: jemalloc"
     fi
+    if test "yes" = "$enable_full_report" -o "rbt" = "$zonedb"; then
+            echo "    Default zone database type: $zonedb"
+    fi
+    if test "yes" = "$enable_full_report" -o "rbt" = "$zonedb"; then
+            echo "    Default cache database type: $cachedb"
+    fi
     if test "yes" = "$enable_full_report" -o "standard" = "$with_locktype"; then
        echo "    Mutex lock type: $with_locktype"
     fi
index 892ef552b3905a6b7eb2ee9070f29f9aa9621707..89764cb9962b1b93cdd640a6ba5e1c8ba143762a 100644 (file)
@@ -62,8 +62,13 @@ Feature Changes
   A side effect of this change is that zone files that are created with
   :any:`masterfile-style` ``relative`` - for example, the output of
   :any:`dnssec-signzone` - will no longer have multiple different
-  `$ORIGIN` statements. There should be no other behavior changes to
-  server behavior. :gl:`#4411`.
+  `$ORIGIN` statements. There should be no other changes to server
+  behavior.
+
+  The old RBT-based database still exists for now, and can be used by
+  specifying ``database rbt`` in a ``zone`` statement in ``named.conf``,
+  or by compiling with ``configure --with-zonedb=rbt --with-cachedb=rbt``.
+  :gl:`#4411`.
 
 Bug Fixes
 ~~~~~~~~~
index 701ed075845cc50a4c49e6a68290f0f8bbe38dea..29e83dfc1e8dac5aa6c45672d0a50f13c004ba89 100644 (file)
@@ -49,8 +49,9 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
        dns_db_t *db = NULL;
 
        isc_mem_create(&mctx);
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
+                              &db);
        if (result != ISC_R_SUCCESS) {
                return 0;
        }
index 8fc219cc2df62be6e2d2418434d01949bcf54b50..4abd771ec11cddb08b3d951d5e5e4f75c66196d7 100644 (file)
@@ -95,7 +95,7 @@ cache_create_db(dns_cache_t *cache, dns_db_t **db) {
         * dns_db_create() via argv[0].
         */
        argv[0] = (char *)cache->hmctx;
-       result = dns_db_create(cache->mctx, "qp", dns_rootname,
+       result = dns_db_create(cache->mctx, CACHEDB_DEFAULT, dns_rootname,
                               dns_dbtype_cache, cache->rdclass, 1, argv, db);
        if (result == ISC_R_SUCCESS) {
                dns_db_setservestalettl(*db, cache->serve_stale_ttl);
index b1ad22db20a52477e22ba604188e6f0a52fb18ce..c01558f80a4568b8688b13e76baa468e8ae87450 100644 (file)
@@ -216,8 +216,9 @@ createview(isc_mem_t *mctx, dns_rdataclass_t rdclass, isc_loopmgr_t *loopmgr,
 
        CHECK(dns_view_createresolver(view, loopmgr, nm, 0, tlsctx_client_cache,
                                      dispatchv4, dispatchv6));
-       CHECK(dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache, rdclass,
-                           0, NULL, &view->cachedb));
+       CHECK(dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
+                           dns_dbtype_cache, rdclass, 0, NULL,
+                           &view->cachedb));
 
        *viewp = view;
        return (ISC_R_SUCCESS);
index 84237ed6213d156a3808aa59473fc096187591a6..f5ebb368c07d5bfe2385002b22db4c880c783de5 100644 (file)
@@ -238,8 +238,8 @@ dns_rootns_create(isc_mem_t *mctx, dns_rdataclass_t rdclass,
 
        REQUIRE(target != NULL && *target == NULL);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              rdclass, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, rdclass, 0, NULL, &db);
        if (result != ISC_R_SUCCESS) {
                goto failure;
        }
index bf732bde43ab07617733830598685b5207b19174..2c6e7b0f2ce2fb9c10fc8206e6a7eb29fa12d880 100644 (file)
@@ -297,11 +297,8 @@ static isc_result_t
 axfr_makedb(dns_xfrin_t *xfr, dns_db_t **dbp) {
        isc_result_t result;
 
-       result = dns_db_create(xfr->mctx, /* XXX */
-                              "qp",      /* XXX guess */
-                              &xfr->name, dns_dbtype_zone, xfr->rdclass, 0,
-                              NULL, /* XXX guess */
-                              dbp);
+       result = dns_db_create(xfr->mctx, ZONEDB_DEFAULT, &xfr->name,
+                              dns_dbtype_zone, xfr->rdclass, 0, NULL, dbp);
        if (result == ISC_R_SUCCESS) {
                dns_zone_rpz_enable_db(xfr->zone, *dbp);
                dns_zone_catz_enable_db(xfr->zone, *dbp);
index 905a63943c6a13a81cc49dd81fad1c67ccc85155..16a467e292cdfc9b6d1bc463ecdd3842a70b5ff7 100644 (file)
@@ -1006,7 +1006,7 @@ zmgr_tlsctx_attach(dns_zonemgr_t *zmgr, isc_tlsctx_cache_t **ptlsctx_cache);
 #define ENTER zone_debuglog(zone, __func__, 1, "enter")
 
 static const unsigned int dbargc_default = 1;
-static const char *dbargv_default[] = { "qp" };
+static const char *dbargv_default[] = { ZONEDB_DEFAULT };
 
 #define DNS_ZONE_JITTER_ADD(a, b, c)                                         \
        do {                                                                 \
@@ -2118,7 +2118,7 @@ zone_load(dns_zone_t *zone, unsigned int flags, bool locked) {
 
        INSIST(zone->db_argc >= 1);
 
-       rbt = strcmp(zone->db_argv[0], "qp") == 0;
+       rbt = strcmp(zone->db_argv[0], ZONEDB_DEFAULT) == 0;
 
        if (zone->db != NULL && zone->masterfile == NULL && rbt) {
                /*
@@ -11324,7 +11324,7 @@ zone_expire(dns_zone_t *zone) {
                isc_result_t result;
                dns_rpz_zone_t *rpz = zone->rpzs->zones[zone->rpz_num];
 
-               CHECK(dns_db_create(zone->mctx, "qp", &zone->origin,
+               CHECK(dns_db_create(zone->mctx, ZONEDB_DEFAULT, &zone->origin,
                                    dns_dbtype_zone, zone->rdclass, 0, NULL,
                                    &db));
                CHECK(dns_rpz_dbupdate_callback(db, rpz));
index d8ef60cee96a17dab3e808296935ceaa5124b4ed..32a3e4fa009ced31f428f904422f4ba3f1d08354 100644 (file)
@@ -3986,9 +3986,10 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
                            "and 'database'",
                            znamestr);
                result = ISC_R_FAILURE;
-       } else if (!dlz && (tresult == ISC_R_NOTFOUND ||
-                           (tresult == ISC_R_SUCCESS &&
-                            strcmp("qp", cfg_obj_asstring(obj)) == 0)))
+       } else if (!dlz &&
+                  (tresult == ISC_R_NOTFOUND ||
+                   (tresult == ISC_R_SUCCESS &&
+                    strcmp(ZONEDB_DEFAULT, cfg_obj_asstring(obj)) == 0)))
        {
                isc_result_t res1;
                const cfg_obj_t *fileobj = NULL;
index f41e5931a14ed7260cc430e969b52538af6ba821..615cb5ca6b249938ef97dd57b67616caefcb5e3e 100644 (file)
@@ -46,8 +46,9 @@ ISC_RUN_TEST_IMPL(getoriginnode) {
 
        UNUSED(state);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = dns_db_getoriginnode(db, &node);
@@ -69,8 +70,9 @@ ISC_RUN_TEST_IMPL(getsetservestalettl) {
 
        UNUSED(state);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        ttl = 5000;
@@ -107,8 +109,9 @@ ISC_RUN_TEST_IMPL(dns_dbfind_staleok) {
 
        UNUSED(state);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        example = dns_fixedname_initname(&example_fixed);
@@ -249,8 +252,9 @@ ISC_RUN_TEST_IMPL(class) {
 
        UNUSED(state);
 
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
@@ -270,8 +274,9 @@ ISC_RUN_TEST_IMPL(dbtype) {
        UNUSED(state);
 
        /* DB has zone semantics */
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
        result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
                             dns_masterformat_text, 0);
@@ -281,14 +286,12 @@ ISC_RUN_TEST_IMPL(dbtype) {
        dns_db_detach(&db);
 
        /* DB has cache semantics */
-       result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, CACHEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
-       result = dns_db_load(db, TESTS_DIR "/testdata/db/data.db",
-                            dns_masterformat_text, 0);
-       assert_int_equal(result, ISC_R_SUCCESS);
-       assert_false(dns_db_iscache(db));
-       assert_true(dns_db_iszone(db));
+       assert_true(dns_db_iscache(db));
+       assert_false(dns_db_iszone(db));
        dns_db_detach(&db);
 }
 
index 66186797e9bacb2ee777e6766a6feaeea5f8f6bf..8b7a8a4ab4da76dc15ea8d3b680da9bb01413056 100644 (file)
@@ -78,13 +78,13 @@ setup_test(void **state) {
 
        isc_assertion_setcallback(local_callback);
 
-       res = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
+       res = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname, dns_dbtype_zone,
                            dns_rdataclass_in, 0, NULL, &db1);
        assert_int_equal(res, ISC_R_SUCCESS);
        dns_db_newversion(db1, &v1);
        assert_non_null(v1);
 
-       res = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone,
+       res = dns_db_create(mctx, ZONEDB_DEFAULT, dns_rootname, dns_dbtype_zone,
                            dns_rdataclass_in, 0, NULL, &db2);
        assert_int_equal(res, ISC_R_SUCCESS);
        dns_db_newversion(db2, &v2);
index 143224661ea3126070915fcd2f6ee7e65a2c9896..fed3c903c2177a4485f95f7b3ab6190c1062cf86 100644 (file)
@@ -472,8 +472,9 @@ ISC_RUN_TEST_IMPL(dumpraw) {
                                   &target);
        assert_int_equal(result, ISC_R_SUCCESS);
 
-       result = dns_db_create(mctx, "qp", &dnsorigin, dns_dbtype_zone,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx, ZONEDB_DEFAULT, &dnsorigin,
+                              dns_dbtype_zone, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        result = isc_dir_chdir(SRCDIR);
index d02c3d0c96f674a9daea3710241af0b9b4351f17..9002f95a1cc91b1ce3346352738db07c222ef3cf 100644 (file)
@@ -293,8 +293,9 @@ ISC_RUN_TEST_IMPL(overmempurge_bigrdata) {
 
        isc_mem_create(&mctx2);
 
-       result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx2, CACHEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_mem_setwater(mctx2, hiwater, lowater);
@@ -337,8 +338,9 @@ ISC_RUN_TEST_IMPL(overmempurge_longname) {
 
        isc_mem_create(&mctx2);
 
-       result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache,
-                              dns_rdataclass_in, 0, NULL, &db);
+       result = dns_db_create(mctx2, CACHEDB_DEFAULT, dns_rootname,
+                              dns_dbtype_cache, dns_rdataclass_in, 0, NULL,
+                              &db);
        assert_int_equal(result, ISC_R_SUCCESS);
 
        isc_mem_setwater(mctx2, hiwater, lowater);
index 349d03a628b95d725ca8c41e1b0b0f575c68427f..d3d57a3df57c7943e0ecd428afb3cd021288f88b 100644 (file)
@@ -213,7 +213,9 @@ dns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
                const char *testfile) {
        isc_result_t result;
        dns_fixedname_t fixed;
-       dns_name_t *name;
+       dns_name_t *name = NULL;
+       const char *dbimp = (dbtype == dns_dbtype_zone) ? ZONEDB_DEFAULT
+                                                       : CACHEDB_DEFAULT;
 
        name = dns_fixedname_initname(&fixed);
 
@@ -222,7 +224,7 @@ dns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
                return (result);
        }
 
-       result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0,
+       result = dns_db_create(mctx, dbimp, name, dbtype, dns_rdataclass_in, 0,
                               NULL, db);
        if (result != ISC_R_SUCCESS) {
                return (result);
index 09083749401213c30ff72e6a88e509a5313a456f..91799a774cd96cd3680b1f75fd1f801dc334f67b 100644 (file)
@@ -530,7 +530,9 @@ ns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
               const char *testfile) {
        isc_result_t result;
        dns_fixedname_t fixed;
-       dns_name_t *name;
+       dns_name_t *name = NULL;
+       const char *dbimp = (dbtype == dns_dbtype_zone) ? ZONEDB_DEFAULT
+                                                       : CACHEDB_DEFAULT;
 
        name = dns_fixedname_initname(&fixed);
 
@@ -539,7 +541,7 @@ ns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin,
                return (result);
        }
 
-       result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0,
+       result = dns_db_create(mctx, dbimp, name, dbtype, dns_rdataclass_in, 0,
                               NULL, db);
        if (result != ISC_R_SUCCESS) {
                return (result);