The branch, master has been updated via 8180522 s4 dns: Fix return code for deleted records via ecb4a8a s4 dns: Get rid of deprecated allocation result check from 7d0a9f5 selftest: use an array when starting testenv with system()
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 81805222ec7a652e188bd106199820570c9dcaad Author: Kai Blin <k...@samba.org> Date: Sun Sep 30 11:26:24 2012 +0200 s4 dns: Fix return code for deleted records This fixes bug #9225. We already had a test for this scenario, but the test wasn't correct. This patch fixes the test, and also fixes the bug. Signed-off-by: Kai Blin <k...@samba.org> Autobuild-User(master): Kai Blin <k...@samba.org> Autobuild-Date(master): Sun Sep 30 13:09:14 CEST 2012 on sn-devel-104 commit ecb4a8a824faf89a442bdd0eeb5ab9f79a14fb40 Author: Kai Blin <k...@samba.org> Date: Sun Sep 30 10:44:03 2012 +0200 s4 dns: Get rid of deprecated allocation result check ----------------------------------------------------------------------- Summary of changes: source4/dns_server/dns_utils.c | 6 ++- source4/scripting/python/samba/tests/dns.py | 46 +++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/dns_server/dns_utils.c b/source4/dns_server/dns_utils.c index 11ded68..3988393 100644 --- a/source4/dns_server/dns_utils.c +++ b/source4/dns_server/dns_utils.c @@ -201,11 +201,13 @@ WERROR dns_lookup_records(struct dns_server *dns, if (el == NULL) { *records = NULL; *rec_count = 0; - return WERR_OK; + return DNS_ERR(NAME_ERROR); } recs = talloc_zero_array(mem_ctx, struct dnsp_DnssrvRpcRecord, el->num_values); - W_ERROR_HAVE_NO_MEMORY(recs); + if (recs == NULL) { + return WERR_NOMEM; + } for (ri = 0; ri < el->num_values; ri++) { struct ldb_val *v = &el->values[ri]; enum ndr_err_code ndr_err; diff --git a/source4/scripting/python/samba/tests/dns.py b/source4/scripting/python/samba/tests/dns.py index 7401124..49d699e 100644 --- a/source4/scripting/python/samba/tests/dns.py +++ b/source4/scripting/python/samba/tests/dns.py @@ -434,6 +434,10 @@ class TestDNSUpdates(DNSTest): def test_delete_record(self): "Test if deleting records works" + + NAME = "deleterec.%s" % self.get_dns_domain() + + # First, create a record to make sure we have a record to delete. p = self.make_name_packet(dns.DNS_OPCODE_UPDATE) updates = [] @@ -445,7 +449,43 @@ class TestDNSUpdates(DNSTest): updates = [] r = dns.res_rec() - r.name = "textrec.%s" % self.get_dns_domain() + r.name = NAME + r.rr_type = dns.DNS_QTYPE_TXT + r.rr_class = dns.DNS_QCLASS_IN + r.ttl = 900 + r.length = 0xffff + r.rdata = dns.txt_record() + r.rdata.txt = '"This is a test"' + updates.append(r) + p.nscount = len(updates) + p.nsrecs = updates + + response = self.dns_transaction_udp(p) + self.assert_dns_rcode_equals(response, dns.DNS_RCODE_OK) + + # Now check the record is around + p = self.make_name_packet(dns.DNS_OPCODE_QUERY) + questions = [] + q = self.make_name_question(NAME, dns.DNS_QTYPE_TXT, dns.DNS_QCLASS_IN) + questions.append(q) + + self.finish_name_packet(p, questions) + response = self.dns_transaction_udp(p) + self.assert_dns_rcode_equals(response, dns.DNS_RCODE_OK) + + # Now delete the record + p = self.make_name_packet(dns.DNS_OPCODE_UPDATE) + updates = [] + + name = self.get_dns_domain() + + u = self.make_name_question(name, dns.DNS_QTYPE_SOA, dns.DNS_QCLASS_IN) + updates.append(u) + self.finish_name_packet(p, updates) + + updates = [] + r = dns.res_rec() + r.name = NAME r.rr_type = dns.DNS_QTYPE_TXT r.rr_class = dns.DNS_QCLASS_NONE r.ttl = 0 @@ -459,11 +499,11 @@ class TestDNSUpdates(DNSTest): response = self.dns_transaction_udp(p) self.assert_dns_rcode_equals(response, dns.DNS_RCODE_OK) + # And finally check it's gone p = self.make_name_packet(dns.DNS_OPCODE_QUERY) questions = [] - name = "textrec.%s" % self.get_dns_domain() - q = self.make_name_question(name, dns.DNS_QTYPE_TXT, dns.DNS_QCLASS_IN) + q = self.make_name_question(NAME, dns.DNS_QTYPE_TXT, dns.DNS_QCLASS_IN) questions.append(q) self.finish_name_packet(p, questions) -- Samba Shared Repository