summaryrefslogtreecommitdiff
path: root/source4/dns_server/dns_utils.c
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2012-03-27 13:36:16 +0200
committerKai Blin <kai@samba.org>2012-03-27 16:03:16 +0200
commit8d9da67185aac48d7d0bc1e7b90262ae9afc6a64 (patch)
tree6b8e7f733db82291d961e43c72e3dbf94896905d /source4/dns_server/dns_utils.c
parenta99139160555072339f8f9cc5912c570158fc236 (diff)
downloadsamba-8d9da67185aac48d7d0bc1e7b90262ae9afc6a64.tar.gz
s4 dns: Only forward for zones we don't own
Diffstat (limited to 'source4/dns_server/dns_utils.c')
-rw-r--r--source4/dns_server/dns_utils.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/source4/dns_server/dns_utils.c b/source4/dns_server/dns_utils.c
index 1f7648cd5b4..b4f308c0279 100644
--- a/source4/dns_server/dns_utils.c
+++ b/source4/dns_server/dns_utils.c
@@ -294,6 +294,34 @@ WERROR dns_replace_records(struct dns_server *dns,
return WERR_OK;
}
+bool dns_authorative_for_zone(struct dns_server *dns,
+ const char *name)
+{
+ const struct dns_server_zone *z;
+ size_t host_part_len = 0;
+
+ if (name == NULL) {
+ return false;
+ }
+
+ if (strcmp(name, "") == 0) {
+ return true;
+ }
+ for (z = dns->zones; z != NULL; z = z->next) {
+ bool match;
+
+ match = dns_name_match(z->name, name, &host_part_len);
+ if (match) {
+ break;
+ }
+ }
+ if (z == NULL) {
+ return false;
+ }
+
+ return true;
+}
+
WERROR dns_name2dn(struct dns_server *dns,
TALLOC_CTX *mem_ctx,
const char *name,