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 <ami...@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 <ami...@gmail.com> Reviewed-by: Stefan Metzmacher <me...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Tue Jul 29 19:33:19 CEST 2014 on sn-devel-104 commit 4b4e30b780345c74f9983ba77f04c616b3d034b7 Author: Amitay Isaacs <ami...@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 <ami...@gmail.com> Reviewed-by: Stefan Metzmacher <me...@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