summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2014-07-30 18:53:44 +1000
committerKarolin Seeger <kseeger@samba.org>2014-09-08 07:49:09 +0200
commit019c587cfc0eb4574a9079cc2ccc6f6cab4cda13 (patch)
treed2344c643b3d20f0112a0b740c1d795369f7eeae /source4
parent5fdc841c44c190bb3dd5acf5eb7458b855e1d6a2 (diff)
downloadsamba-019c587cfc0eb4574a9079cc2ccc6f6cab4cda13.tar.gz
s4-rpc: dnsserver: Correctly set rank for glue NS records
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10751 Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Stefan Metzmacher <metze@samba.org> (cherry picked from commit 2036cbd9249c84d9b46370f0e8cd6a0264c737ba)
Diffstat (limited to 'source4')
-rw-r--r--source4/rpc_server/dnsserver/dnsdb.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source4/rpc_server/dnsserver/dnsdb.c b/source4/rpc_server/dnsserver/dnsdb.c
index 8cdeae41f52..24e9e89c022 100644
--- a/source4/rpc_server/dnsserver/dnsdb.c
+++ b/source4/rpc_server/dnsserver/dnsdb.c
@@ -408,10 +408,13 @@ WERROR dnsserver_db_add_record(TALLOC_CTX *mem_ctx,
rec = dns_to_dnsp_copy(mem_ctx, add_record);
W_ERROR_HAVE_NO_MEMORY(rec);
- /* Set the correct rank for the record.
- * FIXME: add logic to check for glue records */
+ /* Set the correct rank for the record. */
if (z->zoneinfo->dwZoneType == DNS_ZONE_TYPE_PRIMARY) {
- rec->rank |= DNS_RANK_ZONE;
+ if (strcmp(name, "@") != 0 && rec->wType == DNS_TYPE_NS) {
+ rec->rank = DNS_RANK_NS_GLUE;
+ } else {
+ rec->rank |= DNS_RANK_ZONE;
+ }
} else if (strcmp(z->name, ".") == 0) {
rec->rank |= DNS_RANK_ROOT_HINT;
}