Lines Matching defs:sdlz
1 /* $NetBSD: sdlz.c,v 1.14 2025/01/26 16:25:25 christos Exp $ */
82 #include <dns/sdlz.h>
112 dns_sdlz_db_t *sdlz;
306 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
308 sdlz->common.magic = 0;
309 sdlz->common.impmagic = 0;
311 dns_name_free(&sdlz->common.origin, sdlz->common.mctx);
313 isc_refcount_destroy(&sdlz->common.references);
314 isc_mem_putanddetach(&sdlz->common.mctx, sdlz, sizeof(dns_sdlz_db_t));
319 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
320 REQUIRE(VALID_SDLZDB(sdlz));
323 *versionp = (void *)&sdlz->dummy_version;
329 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
333 REQUIRE(VALID_SDLZDB(sdlz));
335 if (sdlz->dlzimp->methods->newversion == NULL) {
339 dns_name_format(&sdlz->common.origin, origin, sizeof(origin));
341 result = sdlz->dlzimp->methods->newversion(
342 origin, sdlz->dlzimp->driverarg, sdlz->dbdata, versionp);
345 "sdlz newversion on origin %s failed : %s", origin,
350 sdlz->future_version = *versionp;
357 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
359 REQUIRE(VALID_SDLZDB(sdlz));
360 REQUIRE(source != NULL && source == (void *)&sdlz->dummy_version);
368 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
371 REQUIRE(VALID_SDLZDB(sdlz));
374 if (*versionp == (void *)&sdlz->dummy_version) {
379 REQUIRE(*versionp == sdlz->future_version);
380 REQUIRE(sdlz->dlzimp->methods->closeversion != NULL);
382 dns_name_format(&sdlz->common.origin, origin, sizeof(origin));
384 sdlz->dlzimp->methods->closeversion(origin, commit,
385 sdlz->dlzimp->driverarg,
386 sdlz->dbdata, versionp);
388 sdlz_log(ISC_LOG_ERROR, "sdlz closeversion on origin %s failed",
392 sdlz->future_version = NULL;
396 createnode(dns_sdlz_db_t *sdlz, dns_sdlznode_t **nodep) {
399 node = isc_mem_get(sdlz->common.mctx, sizeof(dns_sdlznode_t));
401 node->sdlz = NULL;
402 dns_db_attach((dns_db_t *)sdlz, (dns_db_t **)&node->sdlz);
421 dns_sdlz_db_t *sdlz;
427 sdlz = node->sdlz;
428 mctx = sdlz->common.mctx;
454 db = &sdlz->common;
462 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
472 REQUIRE(VALID_SDLZDB(sdlz));
475 if (sdlz->dlzimp->methods->newversion == NULL) {
480 if ((sdlz->dlzimp->flags & DNS_SDLZFLAG_RELATIVEOWNER) != 0) {
485 dns_name_countlabels(&sdlz->common.origin);
501 result = dns_name_totext(&sdlz->common.origin, DNS_NAME_OMITFINALDOT,
508 result = createnode(sdlz, &node);
513 isorigin = dns_name_equal(name, &sdlz->common.origin);
519 MAYBE_LOCK(sdlz->dlzimp);
522 result = sdlz->dlzimp->methods->lookup(
523 zonestr, namestr, sdlz->dlzimp->driverarg, sdlz->dbdata, node,
540 dlabels = nlabels - dns_name_countlabels(&sdlz->common.origin);
557 MAYBE_UNLOCK(sdlz->dlzimp);
567 MAYBE_UNLOCK(sdlz->dlzimp);
572 result = sdlz->dlzimp->methods->lookup(
573 zonestr, wildstr, sdlz->dlzimp->driverarg,
574 sdlz->dbdata, node, methods, clientinfo);
581 MAYBE_UNLOCK(sdlz->dlzimp);
593 if (isorigin && sdlz->dlzimp->methods->authority != NULL) {
594 MAYBE_LOCK(sdlz->dlzimp);
595 authority = sdlz->dlzimp->methods->authority;
596 result = (*authority)(zonestr, sdlz->dlzimp->driverarg,
597 sdlz->dbdata, node);
598 MAYBE_UNLOCK(sdlz->dlzimp);
607 node->name = isc_mem_get(sdlz->common.mctx, sizeof(dns_name_t));
609 dns_name_dup(name, sdlz->common.mctx, node->name);
632 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
636 REQUIRE(VALID_SDLZDB(sdlz));
638 UNUSED(sdlz);
653 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
657 REQUIRE(VALID_SDLZDB(sdlz));
660 UNUSED(sdlz);
681 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
687 REQUIRE(VALID_SDLZDB(sdlz));
689 if (sdlz->dlzimp->methods->allnodes == NULL) {
700 result = dns_name_totext(&sdlz->common.origin, DNS_NAME_OMITFINALDOT,
707 sdlziter = isc_mem_get(sdlz->common.mctx, sizeof(sdlz_dbiterator_t));
722 MAYBE_LOCK(sdlz->dlzimp);
723 result = sdlz->dlzimp->methods->allnodes(
724 zonestr, sdlz->dlzimp->driverarg, sdlz->dbdata, sdlziter);
725 MAYBE_UNLOCK(sdlz->dlzimp);
783 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
792 REQUIRE(VALID_SDLZDB(sdlz));
794 REQUIRE(version == NULL || version == (void *)&sdlz->dummy_version ||
795 version == sdlz->future_version);
797 UNUSED(sdlz);
955 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
958 REQUIRE(VALID_SDLZDB(sdlz));
960 REQUIRE(version == NULL || version == (void *)&sdlz->dummy_version ||
961 version == sdlz->future_version);
986 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
995 REQUIRE(VALID_SDLZDB(sdlz));
1007 mctx = sdlz->common.mctx;
1035 MAYBE_LOCK(sdlz->dlzimp);
1036 result = mod_function(name, rdatastr, sdlz->dlzimp->driverarg,
1037 sdlz->dbdata, version);
1038 MAYBE_UNLOCK(sdlz->dlzimp);
1053 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
1058 REQUIRE(VALID_SDLZDB(sdlz));
1060 if (sdlz->dlzimp->methods->addrdataset == NULL) {
1065 sdlz->dlzimp->methods->addrdataset);
1073 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
1077 REQUIRE(VALID_SDLZDB(sdlz));
1079 if (sdlz->dlzimp->methods->subtractrdataset == NULL) {
1084 sdlz->dlzimp->methods->subtractrdataset);
1091 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
1099 REQUIRE(VALID_SDLZDB(sdlz));
1101 if (sdlz->dlzimp->methods->delrdataset == NULL) {
1109 MAYBE_LOCK(sdlz->dlzimp);
1110 result = sdlz->dlzimp->methods->delrdataset(
1111 name, b_type, sdlz->dlzimp->driverarg, sdlz->dbdata, version);
1112 MAYBE_UNLOCK(sdlz->dlzimp);
1144 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)db;
1147 REQUIRE(VALID_SDLZDB(sdlz));
1148 if (sdlz->dlzimp->methods->newversion == NULL) {
1152 result = getnodedata(db, &sdlz->common.origin, false, 0, NULL, NULL,
1155 sdlz_log(ISC_LOG_ERROR, "sdlz getoriginnode failed: %s",
1193 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)sdlziter->common.db;
1204 isc_mem_put(sdlz->common.mctx, sdlziter, sizeof(sdlz_dbiterator_t));
1307 dns_db_t *db = (dns_db_t *)sdlznode->sdlz;
1317 dns_db_t *db = (dns_db_t *)sdlznode->sdlz;
1338 * The sdlz rdataset is an rdatalist, but additionally holds
1616 * Format the request elements. sdlz operates on strings, not
1683 mctx = lookup->sdlz->common.mctx;
1703 rdatalist->rdclass = lookup->sdlz->common.rdclass;
1721 if ((lookup->sdlz->dlzimp->flags & DNS_SDLZFLAG_RELATIVERDATA) != 0) {
1722 origin = &lookup->sdlz->common.origin;
1790 dns_sdlz_db_t *sdlz = (dns_sdlz_db_t *)allnodes->common.db;
1792 isc_mem_t *mctx = sdlz->common.mctx;
1798 if ((sdlz->dlzimp->flags & DNS_SDLZFLAG_RELATIVERDATA) != 0) {
1799 origin = &sdlz->common.origin;
1820 result = createnode(sdlz, &sdlznode);
1829 dns_name_equal(newname, &sdlz->common.origin))
1901 * register the DLZ driver. Pass in our "extra" sdlz information as