add dns_db_issecure()

This commit is contained in:
Bob Halley 1999-09-07 18:12:11 +00:00
parent ba2d393cd8
commit b3e2e7c4d6
3 changed files with 48 additions and 2 deletions

View file

@ -148,6 +148,19 @@ dns_db_iszone(dns_db_t *db) {
return (ISC_FALSE);
}
isc_boolean_t
dns_db_issecure(dns_db_t *db) {
/*
* Is 'db' secure?
*/
REQUIRE(DNS_DB_VALID(db));
REQUIRE((db->attributes & DNS_DBATTR_CACHE) == 0);
return ((db->methods->issecure)(db));
}
dns_name_t *
dns_db_origin(dns_db_t *db) {
/*

View file

@ -133,6 +133,7 @@ typedef struct dns_dbmethods {
dns_result_t (*deleterdataset)(dns_db_t *db, dns_dbnode_t *node,
dns_dbversion_t *version,
dns_rdatatype_t type);
isc_boolean_t (*issecure)(dns_db_t *db);
} dns_dbmethods_t;
#define DNS_DB_MAGIC 0x444E5344U /* DNSD. */
@ -283,6 +284,20 @@ dns_db_iszone(dns_db_t *db);
* ISC_FALSE otherwise
*/
isc_boolean_t
dns_db_issecure(dns_db_t *db);
/*
* Is 'db' secure?
*
* Requires:
*
* 'db' is a valid database with zone semantics.
*
* Returns:
* ISC_TRUE 'db' is secure.
* ISC_FALSE 'db' is not secure.
*/
dns_name_t *
dns_db_origin(dns_db_t *db);
/*

View file

@ -3367,6 +3367,22 @@ delete_callback(void *data, void *arg) {
}
}
static isc_boolean_t
issecure(dns_db_t *db) {
dns_rbtdb_t *rbtdb;
isc_boolean_t secure;
rbtdb = (dns_rbtdb_t *)db;
REQUIRE(VALID_RBTDB(rbtdb));
RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_read);
secure = rbtdb->secure;
RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_read);
return (secure);
}
static dns_dbmethods_t zone_methods = {
attach,
detach,
@ -3388,7 +3404,8 @@ static dns_dbmethods_t zone_methods = {
allrdatasets,
addrdataset,
subtractrdataset,
deleterdataset
deleterdataset,
issecure
};
static dns_dbmethods_t cache_methods = {
@ -3412,7 +3429,8 @@ static dns_dbmethods_t cache_methods = {
allrdatasets,
addrdataset,
subtractrdataset,
deleterdataset
deleterdataset,
issecure
};
dns_result_t