From 019c587cfc0eb4574a9079cc2ccc6f6cab4cda13 Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Wed, 30 Jul 2014 18:53:44 +1000 Subject: [PATCH] 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 Reviewed-by: Stefan Metzmacher (cherry picked from commit 2036cbd9249c84d9b46370f0e8cd6a0264c737ba) --- source4/rpc_server/dnsserver/dnsdb.c | 9 ++++++--- 1 file 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; } -- 2.11.4.GIT