switch database defaults from "rbt" to "qp"

replace the string "rbt" throughout BIND with "qp" so that
qpdb databases will be used by default instead of rbtdb.
rbtdb databases can still be used by specifying "database rbt;"
in a zone statement.
This commit is contained in:
Evan Hunt 2024-03-05 15:43:11 -08:00 committed by Matthijs Mekking
parent 845f832308
commit bb4464181a
27 changed files with 53 additions and 43 deletions

View file

@ -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;

View file

@ -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);
}

View file

@ -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()");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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()");

View 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] = { "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));

View 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[] = "rbt";
static char default_dbtype[] = "qp";
static char dlz_dbtype[] = "dlz";
char *cpval = default_dbtype;
isc_mem_t *mctx = dns_zone_getmctx(zone);

View file

@ -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. */

View file

@ -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);

View file

@ -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;

View file

@ -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);

View file

@ -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);

View file

@ -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 *

View file

@ -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

View file

@ -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;

View file

@ -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);

View 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[] = { "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));

View file

@ -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;

View file

@ -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 },

View file

@ -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",

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);