2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-04 16:45:24 +00:00

Add dns_db_ispersistent. This call determines whether a database is

persistent - that is, whether it maintains itself and doesn't require
loading, dumping, and other related things.
This commit is contained in:
Brian Wellington
2000-08-18 18:25:28 +00:00
parent f7fe55549d
commit fe12eb4fc2
3 changed files with 41 additions and 5 deletions

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: db.c,v 1.52 2000/08/10 18:38:10 gson Exp $ */ /* $Id: db.c,v 1.53 2000/08/18 18:25:25 bwelling Exp $ */
/*** /***
*** Imports *** Imports
@@ -192,6 +192,18 @@ dns_db_issecure(dns_db_t *db) {
return ((db->methods->issecure)(db)); return ((db->methods->issecure)(db));
} }
isc_boolean_t
dns_db_ispersistent(dns_db_t *db) {
/*
* Is 'db' persistent?
*/
REQUIRE(DNS_DB_VALID(db));
return ((db->methods->ispersistent)(db));
}
dns_name_t * dns_name_t *
dns_db_origin(dns_db_t *db) { dns_db_origin(dns_db_t *db) {
/* /*

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: db.h,v 1.54 2000/08/03 19:46:36 bwelling Exp $ */ /* $Id: db.h,v 1.55 2000/08/18 18:25:28 bwelling Exp $ */
#ifndef DNS_DB_H #ifndef DNS_DB_H
#define DNS_DB_H 1 #define DNS_DB_H 1
@@ -141,6 +141,7 @@ typedef struct dns_dbmethods {
dns_rdatatype_t covers); dns_rdatatype_t covers);
isc_boolean_t (*issecure)(dns_db_t *db); isc_boolean_t (*issecure)(dns_db_t *db);
unsigned int (*nodecount)(dns_db_t *db); unsigned int (*nodecount)(dns_db_t *db);
isc_boolean_t (*ispersistent)(dns_db_t *db);
} dns_dbmethods_t; } dns_dbmethods_t;
#define DNS_DB_MAGIC 0x444E5344U /* DNSD. */ #define DNS_DB_MAGIC 0x444E5344U /* DNSD. */
@@ -1143,6 +1144,21 @@ dns_db_nodecount(dns_db_t *db);
* The number of nodes in the database * The number of nodes in the database
*/ */
unsigned int
dns_db_ispersistent(dns_db_t *db);
/*
* Is 'db' persistent? A persistent database does not need to be loaded
* from disk or written to disk.
*
* Requires:
*
* 'db' is a valid database.
*
* Returns:
* ISC_TRUE 'db' is persistent.
* ISC_FALSE 'db' is not persistent.
*/
ISC_LANG_ENDDECLS ISC_LANG_ENDDECLS
#endif /* DNS_DB_H */ #endif /* DNS_DB_H */

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: rbtdb.c,v 1.119 2000/08/14 02:49:32 gson Exp $ */ /* $Id: rbtdb.c,v 1.120 2000/08/18 18:25:26 bwelling Exp $ */
/* /*
* Principal Author: Bob Halley * Principal Author: Bob Halley
@@ -3795,6 +3795,12 @@ nodecount(dns_db_t *db) {
return (count); return (count);
} }
static isc_boolean_t
ispersistent(dns_db_t *db) {
UNUSED(db);
return (ISC_FALSE);
}
static dns_dbmethods_t zone_methods = { static dns_dbmethods_t zone_methods = {
attach, attach,
detach, detach,
@@ -3819,7 +3825,8 @@ static dns_dbmethods_t zone_methods = {
subtractrdataset, subtractrdataset,
deleterdataset, deleterdataset,
issecure, issecure,
nodecount nodecount,
ispersistent
}; };
static dns_dbmethods_t cache_methods = { static dns_dbmethods_t cache_methods = {
@@ -3846,7 +3853,8 @@ static dns_dbmethods_t cache_methods = {
subtractrdataset, subtractrdataset,
deleterdataset, deleterdataset,
issecure, issecure,
nodecount nodecount,
ispersistent
}; };
isc_result_t isc_result_t