mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
add dns_db_issecure()
This commit is contained in:
parent
ba2d393cd8
commit
b3e2e7c4d6
3 changed files with 48 additions and 2 deletions
13
lib/dns/db.c
13
lib/dns/db.c
|
|
@ -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) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue