diff options
author | Amitay Isaacs <amitay@gmail.com> | 2011-12-15 17:44:32 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@gmail.com> | 2011-12-23 16:17:09 +1100 |
commit | 5673e2cec946502da84956f866658718e7632a3e (patch) | |
tree | ee9a38f49b49d6d7fcdedd2e83ec52eaa1e8ccdf /source4/rpc_server/dnsserver/dnsserver.h | |
parent | 9f76e076fa2593fdc67c3b82fb262670154bad09 (diff) | |
download | samba-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.h | 24 |
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, |