s4 dns: Test deleting records and fix a small bu
authorKai Blin <kai@samba.org>
Sat, 10 Mar 2012 23:25:57 +0000 (00:25 +0100)
committerKai Blin <kai@samba.org>
Sun, 11 Mar 2012 01:27:45 +0000 (02:27 +0100)
Autobuild-User: Kai Blin <kai@samba.org>
Autobuild-Date: Sun Mar 11 02:27:45 CET 2012 on sn-devel-104

source4/dns_server/dns_update.c
source4/scripting/python/samba/tests/dns.py

index ca1708b060bfe545b3322c1c1fe8e098dbddaf05..3d7ecce12631a9c2d4ff1ac7862c978764b65a5a 100644 (file)
@@ -628,6 +628,10 @@ static WERROR handle_one_update(struct dns_server *dns,
                                ZERO_STRUCT(recs[i]);
                        }
                }
+
+               werror = dns_replace_records(dns, mem_ctx, dn,
+                                            needs_add, recs, rcount);
+               W_ERROR_NOT_OK_RETURN(werror);
        }
 
        return WERR_OK;
index 8285139a9238a2ca1e3f2198db5a593e08c1f746..ff973bde058d16f7d8b05fa6fc65c04a87693298 100644 (file)
@@ -429,6 +429,45 @@ class DNSTest(TestCase):
         self.assertEquals(response.answers[0].rdata.txt, '"This is a test" "and this is a test, too"')
 
 
+    def test_delete_record(self):
+        "Test if deleting records works"
+        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 = "textrec.%s" % self.get_dns_domain()
+        r.rr_type = dns.DNS_QTYPE_TXT
+        r.rr_class = dns.DNS_QCLASS_NONE
+        r.ttl = 0
+        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)
+
+        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)
+        questions.append(q)
+
+        self.finish_name_packet(p, questions)
+        response = self.dns_transaction_udp(p)
+        self.assert_dns_rcode_equals(response, dns.DNS_RCODE_NXDOMAIN)
+
+
 if __name__ == "__main__":
     import unittest
     unittest.main()