From: Evan Hunt Date: Tue, 5 Mar 2024 23:43:11 +0000 (-0800) Subject: switch database defaults from "rbt" to "qp" X-Git-Tag: v9.19.22~10^2~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb4464181a43dad3cfe447494900b03926bdae45;p=thirdparty%2Fbind9.git 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. --- diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c index 438ca51c8c6..26983b75b6d 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 50ab55f7bfb..8e9991f265d 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 ee5bf15069f..3c0f557d022 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 7c1a45cbfa8..c9820344b07 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 e47d44a5953..0dfcd632c8f 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 08081fb144b..0eefe27df9a 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 294a972af89..d91fe6abe94 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 498c11508e8..6c221eb3f35 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 1359507a04d..3827d8bdf5c 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 8a9f694f8bc..62ee2800429 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 9bed375a87a..a7c9e4710a5 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 016cc880e5d..701ed075845 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 c922a092844..8fc219cc2df 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 f65cb5ef3cb..b1ad22db20a 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 f974e3c7dab..41a75b497a2 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 e28f29bcb65..ca481d88701 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 26f1ef64d55..84237ed6213 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 8b5d41233f7..bf732bde43a 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 7d98ae4741c..905a63943c6 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 93ce7448fab..d8ef60cee96 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 70d7d074436..8fb00f99488 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 ffcd65d2756..f41e5931a14 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 002985384b2..66186797e9b 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 8d33f5ed4b1..143224661ea 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 0696289e455..2ced0f16dfc 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 29ac69e5fac..349d03a628b 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 6f66b00a3ce..09083749401 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);