summaryrefslogtreecommitdiff
path: root/source4/rpc_server/dnsserver/dnsserver.h
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2011-12-15 17:44:32 +1100
committerAmitay Isaacs <amitay@gmail.com>2011-12-23 16:17:09 +1100
commit5673e2cec946502da84956f866658718e7632a3e (patch)
treeee9a38f49b49d6d7fcdedd2e83ec52eaa1e8ccdf /source4/rpc_server/dnsserver/dnsserver.h
parent9f76e076fa2593fdc67c3b82fb262670154bad09 (diff)
downloadsamba-5673e2cec946502da84956f866658718e7632a3e.tar.gz
samba-5673e2cec946502da84956f866658718e7632a3e.tar.bz2
samba-5673e2cec946502da84956f866658718e7632a3e.zip
s4:rpc-dnsserver: Cache DNS partition information
This information will be used for the RPC calls for partition information.
Diffstat (limited to 'source4/rpc_server/dnsserver/dnsserver.h')
-rw-r--r--source4/rpc_server/dnsserver/dnsserver.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/source4/rpc_server/dnsserver/dnsserver.h b/source4/rpc_server/dnsserver/dnsserver.h
index 818dc60b62..938f2f4b01 100644
--- a/source4/rpc_server/dnsserver/dnsserver.h
+++ b/source4/rpc_server/dnsserver/dnsserver.h
@@ -126,8 +126,6 @@ struct dnsserver_zoneinfo {
struct IP4_ARRAY * aipLocalMasters;
- uint32_t dwDpFlags;
- char * pszDpFqdn;
char * pwszZoneDn;
uint32_t dwLastSuccessfulSoaCheck;
@@ -142,10 +140,20 @@ struct dnsserver_zoneinfo {
};
+struct dnsserver_partition {
+ struct dnsserver_partition *prev, *next;
+ struct ldb_dn *partition_dn;
+ const char *pszDpFqdn;
+ uint32_t dwDpFlags;
+ bool is_forest;
+ int zones_count;
+};
+
+
struct dnsserver_zone {
struct dnsserver_zone *prev, *next;
+ struct dnsserver_partition *partition;
const char *name;
- struct ldb_dn *partition_dn;
struct ldb_dn *zone_dn;
struct dnsserver_zoneinfo *zoneinfo;
};
@@ -192,8 +200,9 @@ struct dnsserver_serverinfo *dnsserver_init_serverinfo(TALLOC_CTX *mem_ctx,
struct loadparm_context *lp_ctx,
struct ldb_context *samdb);
struct dnsserver_zoneinfo *dnsserver_init_zoneinfo(struct dnsserver_zone *zone,
- struct dnsserver_serverinfo *serverinfo,
- bool is_forest);
+ struct dnsserver_serverinfo *serverinfo);
+struct dnsserver_partition *dnsserver_find_partition(struct dnsserver_partition *partitions,
+ const char *dp_fqdn);
struct dnsserver_zone *dnsserver_find_zone(struct dnsserver_zone *zones,
const char *zone_name);
struct ldb_dn *dnsserver_name_to_dn(TALLOC_CTX *mem_ctx, struct dnsserver_zone *z,
@@ -203,9 +212,12 @@ uint32_t dnsserver_zone_to_request_filter(const char *zone);
/* Database functions from dnsdb.c */
+struct dnsserver_partition *dnsserver_db_enumerate_partitions(TALLOC_CTX *mem_ctx,
+ struct dnsserver_serverinfo *serverinfo,
+ struct ldb_context *samdb);
struct dnsserver_zone *dnsserver_db_enumerate_zones(TALLOC_CTX *mem_ctx,
struct ldb_context *samdb,
- bool is_forest);
+ struct dnsserver_partition *p);
WERROR dnsserver_db_add_empty_node(TALLOC_CTX *mem_ctx,
struct ldb_context *samdb,
struct dnsserver_zone *z,