[SCM] Samba Shared Repository - branch master updated

Kai Blin kai at samba.org
Sun Sep 30 05:10:02 MDT 2012


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 <kai at 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 <kai at samba.org>
    
    Autobuild-User(master): Kai Blin <kai at samba.org>
    Autobuild-Date(master): Sun Sep 30 13:09:14 CEST 2012 on sn-devel-104

commit ecb4a8a824faf89a442bdd0eeb5ab9f79a14fb40
Author: Kai Blin <kai at 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


More information about the samba-cvs mailing list