add base, dns_db_load
This commit is contained in:
14
lib/dns/db.c
14
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.
|
||||
*/
|
||||
|
||||
@@ -53,11 +53,13 @@
|
||||
|
||||
#include <dns/types.h>
|
||||
#include <dns/result.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user