From b03b67a6f1ea2966367e7beb2ef276ed6a1d3f92 Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Fri, 29 Jan 1999 07:03:42 +0000 Subject: [PATCH] add base, dns_db_load --- lib/dns/db.c | 14 +++++++++++--- lib/dns/include/dns/db.h | 11 +++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/dns/db.c b/lib/dns/db.c index 847cd03def..6ec6d9dc59 100644 --- a/lib/dns/db.c +++ b/lib/dns/db.c @@ -27,15 +27,15 @@ #include "rbtdb.h" dns_result_t -dns_db_create(isc_mem_t *mctx, char *db_type, isc_boolean_t cache, - dns_rdataclass_t class, +dns_db_create(isc_mem_t *mctx, char *db_type, dns_name_t *base, + isc_boolean_t cache, dns_rdataclass_t class, unsigned int argc, char *argv[], dns_db_t **dbp) { /* find the create method for 'db_type', and call it. */ /* Temporary minor hack... */ if (strcasecmp(db_type, "rbt") == 0) - return (dns_rbtdb_create(mctx, cache, class, argc, argv, + return (dns_rbtdb_create(mctx, base, cache, class, argc, argv, dbp)); return (DNS_R_NOTIMPLEMENTED); @@ -97,6 +97,14 @@ dns_db_iszone(dns_db_t *db) { return (!db->cache); } +dns_result_t +dns_db_load(dns_db_t *db, char *filename) { + + REQUIRE(DNS_DB_VALID(db)); + + return (db->methods->load(db, filename)); +} + /* * Version Operations. */ diff --git a/lib/dns/include/dns/db.h b/lib/dns/include/dns/db.h index 569732a4d3..48379637d6 100644 --- a/lib/dns/include/dns/db.h +++ b/lib/dns/include/dns/db.h @@ -53,11 +53,13 @@ #include #include +#include typedef struct dns_dbmethods { void (*attach)(dns_db_t *source, dns_db_t **targetp); void (*detach)(dns_db_t **dbp); void (*shutdown)(dns_db_t *db); + dns_result_t (*load)(dns_db_t *db, char *filename); void (*currentversion)(dns_db_t *db, dns_dbversion_t **versionp); dns_result_t (*newversion)(dns_db_t *db, @@ -103,11 +105,13 @@ struct dns_db { dns_dbmethods_t * methods; isc_boolean_t cache; dns_rdataclass_t class; + dns_name_t base; + isc_mem_t * mctx; }; dns_result_t -dns_db_create(isc_mem_t *mctx, char *db_type, isc_boolean_t cache, - dns_rdataclass_t class, +dns_db_create(isc_mem_t *mctx, char *db_type, dns_name_t *base, + isc_boolean_t cache, dns_rdataclass_t class, unsigned int argc, char *argv[], dns_db_t **dbp); void @@ -128,6 +132,9 @@ dns_db_iscache(dns_db_t *db); isc_boolean_t dns_db_iszone(dns_db_t *db); +dns_result_t +dns_db_load(dns_db_t *db, char *filename); + void dns_db_currentversion(dns_db_t *db, dns_dbversion_t **versionp);