diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c index 438ca51c8c..26983b75b6 100644 --- a/bin/check/check-tool.c +++ b/bin/check/check-tool.c @@ -73,7 +73,7 @@ #define ERR_IS_MXCNAME 6 #define ERR_IS_SRVCNAME 7 -static const char *dbtype[] = { "rbt" }; +static const char *dbtype[] = { "qp" }; int debug = 0; const char *journal = NULL; diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c index 50ab55f7bf..8e9991f265 100644 --- a/bin/check/named-checkconf.c +++ b/bin/check/named-checkconf.c @@ -242,7 +242,7 @@ 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("rbt", cfg_obj_asstring(dbobj)) != 0) { + if (dbobj != NULL && strcmp("qp", cfg_obj_asstring(dbobj)) != 0) { return (ISC_R_SUCCESS); } diff --git a/bin/dnssec/dnssec-cds.c b/bin/dnssec/dnssec-cds.c index ee5bf15069..3c0f557d02 100644 --- a/bin/dnssec/dnssec-cds.c +++ b/bin/dnssec/dnssec-cds.c @@ -247,7 +247,7 @@ static void load_db(const char *filename, dns_db_t **dbp, dns_dbnode_t **nodep) { isc_result_t result; - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, dbp); check_result(result, "dns_db_create()"); @@ -979,7 +979,7 @@ update_diff(const char *cmd, uint32_t ttl, dns_rdataset_t *addset, dns_rdataset_t diffset; uint32_t save; - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, &update_db); check_result(result, "dns_db_create()"); diff --git a/bin/dnssec/dnssec-dsfromkey.c b/bin/dnssec/dnssec-dsfromkey.c index 7c1a45cbfa..c9820344b0 100644 --- a/bin/dnssec/dnssec-dsfromkey.c +++ b/bin/dnssec/dnssec-dsfromkey.c @@ -100,7 +100,7 @@ loadset(const char *filename, dns_rdataset_t *rdataset) { dns_name_format(name, setname, sizeof(setname)); - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, &db); if (result != ISC_R_SUCCESS) { fatal("can't create database"); diff --git a/bin/dnssec/dnssec-importkey.c b/bin/dnssec/dnssec-importkey.c index e47d44a595..0dfcd632c8 100644 --- a/bin/dnssec/dnssec-importkey.c +++ b/bin/dnssec/dnssec-importkey.c @@ -103,7 +103,7 @@ loadset(const char *filename, dns_rdataset_t *rdataset) { dns_name_format(name, setname, sizeof(setname)); - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, &db); if (result != ISC_R_SUCCESS) { fatal("can't create database"); diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 08081fb144..0eefe27df9 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -998,7 +998,7 @@ opendb(const char *prefix, dns_name_t *name, dns_rdataclass_t rdclass, } isc_buffer_putuint8(&b, 0); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, rdclass, 0, NULL, dbp); check_result(result, "dns_db_create()"); @@ -2572,7 +2572,7 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) { isc_result_totext(result)); } - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, db); check_result(result, "dns_db_create()"); @@ -3162,7 +3162,7 @@ writeset(const char *prefix, dns_rdatatype_t type) { dns_diff_append(&diff, &tuple); } - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, gclass, 0, NULL, &db); check_result(result, "dns_db_create"); diff --git a/bin/dnssec/dnssec-verify.c b/bin/dnssec/dnssec-verify.c index 294a972af8..d91fe6abe9 100644 --- a/bin/dnssec/dnssec-verify.c +++ b/bin/dnssec/dnssec-verify.c @@ -109,7 +109,7 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) { isc_result_totext(result)); } - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, rdclass, 0, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, rdclass, 0, NULL, db); check_result(result, "dns_db_create()"); diff --git a/bin/named/server.c b/bin/named/server.c index 498c11508e..6c221eb3f3 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -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] = { "rbt" }; + const char *rbt_dbtype[4] = { "qp" }; const char *sep = ": view "; const char *str; const char *viewname = view->name; @@ -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, "rbt", name, + CHECK(dns_db_create(view->mctx, "qp", name, dns_dbtype_zone, view->rdclass, 0, NULL, &db)); CHECK(dns_db_newversion(db, &version)); diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c index 1359507a04..3827d8bdf5 100644 --- a/bin/named/zoneconf.c +++ b/bin/named/zoneconf.c @@ -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[] = "rbt"; + static char default_dbtype[] = "qp"; static char dlz_dbtype[] = "dlz"; char *cpval = default_dbtype; isc_mem_t *mctx = dns_zone_getmctx(zone); diff --git a/bin/tests/system/dyndb/driver/db.c b/bin/tests/system/dyndb/driver/db.c index 8a9f694f8b..62ee280042 100644 --- a/bin/tests/system/dyndb/driver/db.c +++ b/bin/tests/system/dyndb/driver/db.c @@ -625,7 +625,7 @@ create_db(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type, sampledb->inst = driverarg; /* Create internal instance of RBT DB implementation from BIND. */ - CHECK(dns_db_create(mctx, "rbt", origin, dns_dbtype_zone, + CHECK(dns_db_create(mctx, "qp", origin, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &sampledb->rbtdb)); /* Create fake SOA, NS, and A records to make database loadable. */ diff --git a/bin/tests/system/makejournal.c b/bin/tests/system/makejournal.c index 9bed375a87..a7c9e4710a 100644 --- a/bin/tests/system/makejournal.c +++ b/bin/tests/system/makejournal.c @@ -67,7 +67,7 @@ loadzone(dns_db_t **db, const char *origin, const char *filename) { return (result); } - result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", name, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, db); if (result != ISC_R_SUCCESS) { return (result); diff --git a/fuzz/dns_master_load.c b/fuzz/dns_master_load.c index 016cc880e5..701ed07584 100644 --- a/fuzz/dns_master_load.c +++ b/fuzz/dns_master_load.c @@ -49,7 +49,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { dns_db_t *db = NULL; isc_mem_create(&mctx); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db); if (result != ISC_R_SUCCESS) { return 0; diff --git a/lib/dns/cache.c b/lib/dns/cache.c index c922a09284..8fc219cc2d 100644 --- a/lib/dns/cache.c +++ b/lib/dns/cache.c @@ -90,12 +90,12 @@ cache_create_db(dns_cache_t *cache, dns_db_t **db) { char *argv[1] = { 0 }; /* - * For databases of type "rbt" (which is the only cache + * For databases of type "qp" (which is the only cache * implementation currently in existence) we pass hmctx to * dns_db_create() via argv[0]. */ argv[0] = (char *)cache->hmctx; - result = dns_db_create(cache->mctx, "rbt", dns_rootname, + result = dns_db_create(cache->mctx, "qp", dns_rootname, dns_dbtype_cache, cache->rdclass, 1, argv, db); if (result == ISC_R_SUCCESS) { dns_db_setservestalettl(*db, cache->serve_stale_ttl); diff --git a/lib/dns/client.c b/lib/dns/client.c index f65cb5ef3c..b1ad22db20 100644 --- a/lib/dns/client.c +++ b/lib/dns/client.c @@ -216,8 +216,8 @@ 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, "rbt", dns_rootname, dns_dbtype_cache, - rdclass, 0, NULL, &view->cachedb)); + CHECK(dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache, rdclass, + 0, NULL, &view->cachedb)); *viewp = view; return (ISC_R_SUCCESS); diff --git a/lib/dns/db.c b/lib/dns/db.c index f974e3c7da..41a75b497a 100644 --- a/lib/dns/db.c +++ b/lib/dns/db.c @@ -63,6 +63,7 @@ struct dns_dbimplementation { #include "db_p.h" #include "qpdb_p.h" +#include "rbtdb_p.h" unsigned int dns_pps = 0U; @@ -71,19 +72,28 @@ static isc_rwlock_t implock; static isc_once_t once = ISC_ONCE_INIT; static dns_dbimplementation_t rbtimp; +static dns_dbimplementation_t qpimp; static void initialize(void) { isc_rwlock_init(&implock); + ISC_LIST_INIT(implementations); + rbtimp = (dns_dbimplementation_t){ .name = "rbt", + .create = dns__rbtdb_create, + .link = ISC_LINK_INITIALIZER, + }; + + qpimp = (dns_dbimplementation_t){ + .name = "qp", .create = dns__qpdb_create, .link = ISC_LINK_INITIALIZER, }; - ISC_LIST_INIT(implementations); ISC_LIST_APPEND(implementations, &rbtimp, link); + ISC_LIST_APPEND(implementations, &qpimp, link); } static dns_dbimplementation_t * diff --git a/lib/dns/qpdb_p.h b/lib/dns/qpdb_p.h index e28f29bcb6..ca481d8870 100644 --- a/lib/dns/qpdb_p.h +++ b/lib/dns/qpdb_p.h @@ -309,7 +309,7 @@ dns__qpdb_create(isc_mem_t *mctx, const dns_name_t *base, dns_dbtype_t type, dns_rdataclass_t rdclass, unsigned int argc, char *argv[], void *driverarg, dns_db_t **dbp); /*%< - * Create a new database of type "rbt". Called via dns_db_create(); + * Create a new database of type "qp". Called via dns_db_create(); * see documentation for that function for more details. * * If argv[0] is set, it points to a valid memory context to be used for diff --git a/lib/dns/rootns.c b/lib/dns/rootns.c index 26f1ef64d5..84237ed621 100644 --- a/lib/dns/rootns.c +++ b/lib/dns/rootns.c @@ -238,7 +238,7 @@ dns_rootns_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, REQUIRE(target != NULL && *target == NULL); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, rdclass, 0, NULL, &db); if (result != ISC_R_SUCCESS) { goto failure; diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index 8b5d41233f..bf732bde43 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -298,7 +298,7 @@ axfr_makedb(dns_xfrin_t *xfr, dns_db_t **dbp) { isc_result_t result; result = dns_db_create(xfr->mctx, /* XXX */ - "rbt", /* XXX guess */ + "qp", /* XXX guess */ &xfr->name, dns_dbtype_zone, xfr->rdclass, 0, NULL, /* XXX guess */ dbp); diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 7d98ae4741..905a63943c 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -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[] = { "rbt" }; +static const char *dbargv_default[] = { "qp" }; #define DNS_ZONE_JITTER_ADD(a, b, c) \ do { \ @@ -1876,7 +1876,7 @@ dns_zone_rpz_enable(dns_zone_t *zone, dns_rpz_zones_t *rpzs, * Only zones that are loaded instead of mmap()ed create the * summary data and so can be policy zones. */ - if (strcmp(zone->db_argv[0], "rbt") != 0) { + if (strcmp(zone->db_argv[0], "qp") != 0) { return (ISC_R_NOTIMPLEMENTED); } @@ -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], "rbt") == 0; + rbt = strcmp(zone->db_argv[0], "qp") == 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, "rbt", &zone->origin, + CHECK(dns_db_create(zone->mctx, "qp", &zone->origin, dns_dbtype_zone, zone->rdclass, 0, NULL, &db)); CHECK(dns_rpz_dbupdate_callback(db, rpz)); diff --git a/lib/isccfg/check.c b/lib/isccfg/check.c index 93ce7448fa..d8ef60cee9 100644 --- a/lib/isccfg/check.c +++ b/lib/isccfg/check.c @@ -3988,7 +3988,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, result = ISC_R_FAILURE; } else if (!dlz && (tresult == ISC_R_NOTFOUND || (tresult == ISC_R_SUCCESS && - strcmp("rbt", cfg_obj_asstring(obj)) == 0))) + strcmp("qp", cfg_obj_asstring(obj)) == 0))) { isc_result_t res1; const cfg_obj_t *fileobj = NULL; diff --git a/tests/bench/load-names.c b/tests/bench/load-names.c index 70d7d07443..8fb00f9948 100644 --- a/tests/bench/load-names.c +++ b/tests/bench/load-names.c @@ -463,7 +463,7 @@ static struct fun fun_list[] = { { "lfht", new_lfht, thread_lfht }, { "ht", new_ht, thread_ht }, { "hashmap", new_hashmap, thread_hashmap }, - { "rbt", new_rbt, thread_rbt }, + { "qp", new_rbt, thread_rbt }, { "qp", new_qp, thread_qp }, { "qp+nosqz", new_qp, thread_qp_nosqz }, { "qp+barrier", new_qp, thread_qp_brr }, diff --git a/tests/dns/db_test.c b/tests/dns/db_test.c index ffcd65d275..f41e5931a1 100644 --- a/tests/dns/db_test.c +++ b/tests/dns/db_test.c @@ -46,7 +46,7 @@ ISC_RUN_TEST_IMPL(getoriginnode) { UNUSED(state); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); @@ -69,7 +69,7 @@ ISC_RUN_TEST_IMPL(getsetservestalettl) { UNUSED(state); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_cache, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); @@ -107,7 +107,7 @@ ISC_RUN_TEST_IMPL(dns_dbfind_staleok) { UNUSED(state); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_cache, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_cache, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); @@ -249,7 +249,7 @@ ISC_RUN_TEST_IMPL(class) { UNUSED(state); - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); @@ -270,7 +270,7 @@ ISC_RUN_TEST_IMPL(dbtype) { UNUSED(state); /* DB has zone semantics */ - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", 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", @@ -281,7 +281,7 @@ ISC_RUN_TEST_IMPL(dbtype) { dns_db_detach(&db); /* DB has cache semantics */ - result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", 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", diff --git a/tests/dns/dbversion_test.c b/tests/dns/dbversion_test.c index 002985384b..66186797e9 100644 --- a/tests/dns/dbversion_test.c +++ b/tests/dns/dbversion_test.c @@ -78,13 +78,13 @@ setup_test(void **state) { isc_assertion_setcallback(local_callback); - res = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone, + res = dns_db_create(mctx, "qp", 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, "rbt", dns_rootname, dns_dbtype_zone, + res = dns_db_create(mctx, "qp", dns_rootname, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db2); assert_int_equal(res, ISC_R_SUCCESS); dns_db_newversion(db2, &v2); diff --git a/tests/dns/master_test.c b/tests/dns/master_test.c index 8d33f5ed4b..143224661e 100644 --- a/tests/dns/master_test.c +++ b/tests/dns/master_test.c @@ -472,7 +472,7 @@ ISC_RUN_TEST_IMPL(dumpraw) { &target); assert_int_equal(result, ISC_R_SUCCESS); - result = dns_db_create(mctx, "rbt", &dnsorigin, dns_dbtype_zone, + result = dns_db_create(mctx, "qp", &dnsorigin, dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); diff --git a/tests/dns/qpdb_test.c b/tests/dns/qpdb_test.c index 0696289e45..2ced0f16df 100644 --- a/tests/dns/qpdb_test.c +++ b/tests/dns/qpdb_test.c @@ -293,7 +293,7 @@ ISC_RUN_TEST_IMPL(overmempurge_bigrdata) { isc_mem_create(&mctx2); - result = dns_db_create(mctx2, "rbt", dns_rootname, dns_dbtype_cache, + result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); @@ -337,7 +337,7 @@ ISC_RUN_TEST_IMPL(overmempurge_longname) { isc_mem_create(&mctx2); - result = dns_db_create(mctx2, "rbt", dns_rootname, dns_dbtype_cache, + result = dns_db_create(mctx2, "qp", dns_rootname, dns_dbtype_cache, dns_rdataclass_in, 0, NULL, &db); assert_int_equal(result, ISC_R_SUCCESS); diff --git a/tests/libtest/dns.c b/tests/libtest/dns.c index 29ac69e5fa..349d03a628 100644 --- a/tests/libtest/dns.c +++ b/tests/libtest/dns.c @@ -222,7 +222,7 @@ dns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin, return (result); } - result = dns_db_create(mctx, "rbt", name, dbtype, dns_rdataclass_in, 0, + result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0, NULL, db); if (result != ISC_R_SUCCESS) { return (result); diff --git a/tests/libtest/ns.c b/tests/libtest/ns.c index 6f66b00a3c..0908374940 100644 --- a/tests/libtest/ns.c +++ b/tests/libtest/ns.c @@ -539,7 +539,7 @@ ns_test_loaddb(dns_db_t **db, dns_dbtype_t dbtype, const char *origin, return (result); } - result = dns_db_create(mctx, "rbt", name, dbtype, dns_rdataclass_in, 0, + result = dns_db_create(mctx, "qp", name, dbtype, dns_rdataclass_in, 0, NULL, db); if (result != ISC_R_SUCCESS) { return (result);