diff options
author | Kai Blin <kai@samba.org> | 2012-03-27 13:36:16 +0200 |
---|---|---|
committer | Kai Blin <kai@samba.org> | 2012-03-27 16:03:16 +0200 |
commit | 8d9da67185aac48d7d0bc1e7b90262ae9afc6a64 (patch) | |
tree | 6b8e7f733db82291d961e43c72e3dbf94896905d /source4/dns_server/dns_utils.c | |
parent | a99139160555072339f8f9cc5912c570158fc236 (diff) | |
download | samba-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.c | 28 |
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, |