[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Tue Jul 29 11:34:04 MDT 2014


The branch, master has been updated
       via  6d10418 tests: dnsserver: Add a update test with name set to '.'
       via  4b4e30b s4-rpc: dnsserver: Allow . to be specified for @ record
      from  a49ba00 selftest: Fix a typo (SIGTERm --> SIGTERM)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6d104182d9667e4f996439d24cfa052f34098ce4
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Jul 28 18:09:37 2014 +1000

    tests: dnsserver: Add a update test with name set to '.'
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Tue Jul 29 19:33:19 CEST 2014 on sn-devel-104

commit 4b4e30b780345c74f9983ba77f04c616b3d034b7
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Jul 28 13:07:58 2014 +1000

    s4-rpc: dnsserver: Allow . to be specified for @ record
    
    Windows allow both . and @ to be specified with modifying @ record.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=10742
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 python/samba/tests/dcerpc/dnsserver.py          |   41 ++++++++++++++++++++++-
 source4/rpc_server/dnsserver/dcerpc_dnsserver.c |    4 ++-
 2 files changed, 43 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/tests/dcerpc/dnsserver.py b/python/samba/tests/dcerpc/dnsserver.py
index 59d6eee..e2c6667 100644
--- a/python/samba/tests/dcerpc/dnsserver.py
+++ b/python/samba/tests/dcerpc/dnsserver.py
@@ -19,7 +19,7 @@
 
 from samba.dcerpc import dnsp, dnsserver
 from samba.tests import RpcInterfaceTestCase, env_get_var_value
-from samba.netcmd.dns import ARecord
+from samba.netcmd.dns import ARecord, NSRecord
 
 class DnsserverTests(RpcInterfaceTestCase):
 
@@ -239,3 +239,42 @@ class DnsserverTests(RpcInterfaceTestCase):
                                         select_flags,
                                         None,
                                         None)
+
+    def test_updaterecords2_soa(self):
+        client_version = dnsserver.DNS_CLIENT_VERSION_LONGHORN
+        record_type = dnsp.DNS_TYPE_NS
+        select_flags = (dnsserver.DNS_RPC_VIEW_AUTHORITY_DATA |
+                        dnsserver.DNS_RPC_VIEW_NO_CHILDREN)
+
+        nameserver = 'ns.example.local'
+        rec = NSRecord(nameserver)
+
+        # Add record
+        add_rec_buf = dnsserver.DNS_RPC_RECORD_BUF()
+        add_rec_buf.rec = rec
+        self.conn.DnssrvUpdateRecord2(client_version,
+                                        0,
+                                        self.server,
+                                        self.zone,
+                                        '.',
+                                        add_rec_buf,
+                                        None)
+
+        buflen, result = self.conn.DnssrvEnumRecords2(client_version,
+                                                        0,
+                                                        self.server,
+                                                        self.zone,
+                                                        '@',
+                                                        None,
+                                                        record_type,
+                                                        select_flags,
+                                                        None,
+                                                        None)
+        self.assertEquals(1, result.count)
+        self.assertEquals(2, result.rec[0].wRecordCount)
+        match = False
+        for i in range(2):
+            self.assertEquals(dnsp.DNS_TYPE_NS, result.rec[0].records[i].wType)
+            if result.rec[0].records[i].data.str.rstrip('.') == nameserver:
+                match = True
+        self.assertEquals(match, True)
diff --git a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
index f3dd195..856016c 100644
--- a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
+++ b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
@@ -1859,7 +1859,9 @@ static WERROR dnsserver_update_record(struct dnsserver_state *dsstate,
 	W_ERROR_HAVE_NO_MEMORY(tmp_ctx);
 
 	/* If node_name is @ or zone name, dns record is @ */
-	if (strcmp(node_name, "@") == 0 || strcasecmp(node_name, z->name) == 0) {
+	if (strcmp(node_name, "@") == 0 ||
+	    strcmp(node_name, ".") == 0 ||
+	    strcasecmp(node_name, z->name) == 0) {
 		name = talloc_strdup(tmp_ctx, "@");
 	} else {
 		name = dns_split_node_name(tmp_ctx, node_name, z->name);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list