The Samba-Bugzilla – Attachment 8903 Details for
Bug 9485
DNS server does not support MX queries
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Updated patch adding MX support, for v4-0-test
0001-dns-Add-support-for-MX-queries.patch (text/plain), 3.22 KB, created by
Kai Blin
on 2013-05-17 10:03:43 UTC
(
hide
)
Description:
Updated patch adding MX support, for v4-0-test
Filename:
MIME Type:
Creator:
Kai Blin
Created:
2013-05-17 10:03:43 UTC
Size:
3.22 KB
patch
obsolete
>From 2ded3a307ad04799f1694c31a2d8a85c92ad28b1 Mon Sep 17 00:00:00 2001 >From: Kai Blin <kai@samba.org> >Date: Mon, 10 Dec 2012 05:50:05 +1000 >Subject: [PATCH] dns: Add support for MX queries > >Due to an oversight, the internal DNS server supports MX record updates, >but not MX record queries. Add support for MX queries and tests. > >This should fix bug #9485 > >Signed-off-by: Kai Blin <kai@samba.org> >Reviewed-By: Amitay Isaacs <amitay@gmail.com> >--- > python/samba/tests/dns.py | 43 ++++++++++++++++++++++++++++++++++++++++++ > source4/dns_server/dns_query.c | 8 ++++++++ > 2 files changed, 51 insertions(+) > >diff --git a/python/samba/tests/dns.py b/python/samba/tests/dns.py >index 49d699e..a29025d 100644 >--- a/python/samba/tests/dns.py >+++ b/python/samba/tests/dns.py >@@ -510,6 +510,49 @@ class TestDNSUpdates(DNSTest): > response = self.dns_transaction_udp(p) > self.assert_dns_rcode_equals(response, dns.DNS_RCODE_NXDOMAIN) > >+ def test_update_add_mx_record(self): >+ "test adding MX 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 = "%s" % self.get_dns_domain() >+ r.rr_type = dns.DNS_QTYPE_MX >+ r.rr_class = dns.DNS_QCLASS_IN >+ r.ttl = 900 >+ r.length = 0xffff >+ rdata = dns.mx_record() >+ rdata.preference = 10 >+ rdata.exchange = 'mail.%s' % self.get_dns_domain() >+ r.rdata = rdata >+ 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 = "%s" % self.get_dns_domain() >+ q = self.make_name_question(name, dns.DNS_QTYPE_MX, 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) >+ self.assertEqual(response.ancount, 1) >+ self.assertEqual(response.answers[0].rdata.preference, 10) >+ self.assertEqual(response.answers[0].rdata.exchange, 'mail.%s' % self.get_dns_domain()) >+ > > class TestComplexQueries(DNSTest): > >diff --git a/source4/dns_server/dns_query.c b/source4/dns_server/dns_query.c >index 54e0c7f..75f0e9f 100644 >--- a/source4/dns_server/dns_query.c >+++ b/source4/dns_server/dns_query.c >@@ -89,6 +89,14 @@ static WERROR create_response_rr(const struct dns_name_question *question, > case DNS_QTYPE_PTR: > ans[ai].rdata.ptr_record = talloc_strdup(ans, rec->data.ptr); > break; >+ case DNS_QTYPE_MX: >+ ans[ai].rdata.mx_record.preference = rec->data.mx.wPriority; >+ ans[ai].rdata.mx_record.exchange = talloc_strdup( >+ ans, rec->data.mx.nameTarget); >+ if (ans[ai].rdata.mx_record.exchange == NULL) { >+ return WERR_NOMEM; >+ } >+ break; > case DNS_QTYPE_TXT: > tmp = talloc_asprintf(ans, "\"%s\"", rec->data.txt.str[0]); > W_ERROR_HAVE_NO_MEMORY(tmp); >-- >1.8.1.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
amitay
:
review+
Actions:
View
Attachments on
bug 9485
:
8314
|
8767
| 8903