BIND 10 trac2656_2, updated. 58ccf7aa110fe656c52060cbc7b2cc26b4a9ae9d [2656] Use createNameFromLexer() in CNAME, DNAME and SRV constructors (which accept a lexer)
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Jan 29 06:35:27 UTC 2013
The branch, trac2656_2 has been updated
via 58ccf7aa110fe656c52060cbc7b2cc26b4a9ae9d (commit)
via 0aafc9b4325734e8d8d16805ad459f8dde153fdb (commit)
via af2672cf1515f459dfc5db30919c407abcb8273b (commit)
via e4cd5386850b79a824320a63bfed69f03358574f (commit)
via 7ddf561d6304d62ce755344b0e28ab9b025b9f27 (commit)
from e6603386c50335787bca7443a9716414cf68c7bc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 58ccf7aa110fe656c52060cbc7b2cc26b4a9ae9d
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jan 29 12:04:36 2013 +0530
[2656] Use createNameFromLexer() in CNAME, DNAME and SRV constructors (which accept a lexer)
commit 0aafc9b4325734e8d8d16805ad459f8dde153fdb
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Jan 29 12:01:10 2013 +0530
[2656] Add using statements for createNameFromLexer()
This used to work before (without the using statement) as they
came after SOA in the generated files.
commit af2672cf1515f459dfc5db30919c407abcb8273b
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Jan 24 19:00:50 2013 +0530
[2656] Add SRV implementation
commit e4cd5386850b79a824320a63bfed69f03358574f
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Jan 24 18:47:28 2013 +0530
[2656] Add DNAME implementation
commit 7ddf561d6304d62ce755344b0e28ab9b025b9f27
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Jan 24 18:45:44 2013 +0530
[2656] Add CNAME implementation
-----------------------------------------------------------------------
Summary of changes:
src/lib/dns/gen-rdatacode.py.in | 3 +++
src/lib/dns/rdata/generic/cname_5.cc | 8 +++++++
src/lib/dns/rdata/generic/dname_39.cc | 8 +++++++
src/lib/dns/rdata/generic/mx_15.cc | 1 +
src/lib/dns/rdata/generic/ns_2.cc | 1 +
src/lib/dns/rdata/generic/ptr_12.cc | 3 +++
src/lib/dns/rdata/in_1/srv_33.cc | 35 ++++++++++++++++++++++++++---
src/lib/dns/tests/rdata_cname_unittest.cc | 2 +-
src/lib/dns/tests/rdata_dname_unittest.cc | 2 +-
src/lib/dns/tests/rdata_srv_unittest.cc | 10 +++++++++
10 files changed, 68 insertions(+), 5 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/dns/gen-rdatacode.py.in b/src/lib/dns/gen-rdatacode.py.in
index b653126..ab2fa2e 100755
--- a/src/lib/dns/gen-rdatacode.py.in
+++ b/src/lib/dns/gen-rdatacode.py.in
@@ -33,6 +33,8 @@ import sys
# Example:
# new_rdata_factory_users = [('a', 'in'), ('a', 'ch'), ('soa', 'generic')]
new_rdata_factory_users = [('aaaa', 'in'),
+ ('cname', 'generic'),
+ ('dname', 'generic'),
('hinfo', 'generic'),
('naptr', 'generic'),
('mx', 'generic'),
@@ -40,6 +42,7 @@ new_rdata_factory_users = [('aaaa', 'in'),
('ptr', 'generic'),
('soa', 'generic'),
('spf', 'generic'),
+ ('srv', 'in'),
('txt', 'generic')
]
diff --git a/src/lib/dns/rdata/generic/cname_5.cc b/src/lib/dns/rdata/generic/cname_5.cc
index 5bb0aea..ba225f9 100644
--- a/src/lib/dns/rdata/generic/cname_5.cc
+++ b/src/lib/dns/rdata/generic/cname_5.cc
@@ -22,8 +22,11 @@
#include <dns/rdata.h>
#include <dns/rdataclass.h>
+#include <dns/rdata/generic/detail/lexer_util.h>
+
using namespace std;
using namespace isc::util;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
@@ -39,6 +42,11 @@ CNAME::CNAME(InputBuffer& buffer, size_t) :
// check consistency.
}
+CNAME::CNAME(MasterLexer& lexer, const Name* origin,
+ MasterLoader::Options, MasterLoaderCallbacks&) :
+ cname_(createNameFromLexer(lexer, origin))
+{}
+
CNAME::CNAME(const CNAME& other) :
Rdata(), cname_(other.cname_)
{}
diff --git a/src/lib/dns/rdata/generic/dname_39.cc b/src/lib/dns/rdata/generic/dname_39.cc
index a22fcc3..ea77d42 100644
--- a/src/lib/dns/rdata/generic/dname_39.cc
+++ b/src/lib/dns/rdata/generic/dname_39.cc
@@ -22,8 +22,11 @@
#include <dns/rdata.h>
#include <dns/rdataclass.h>
+#include <dns/rdata/generic/detail/lexer_util.h>
+
using namespace std;
using namespace isc::util;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
@@ -39,6 +42,11 @@ DNAME::DNAME(InputBuffer& buffer, size_t) :
// check consistency.
}
+DNAME::DNAME(MasterLexer& lexer, const Name* origin,
+ MasterLoader::Options, MasterLoaderCallbacks&) :
+ dname_(createNameFromLexer(lexer, origin))
+{}
+
DNAME::DNAME(const DNAME& other) :
Rdata(), dname_(other.dname_)
{}
diff --git a/src/lib/dns/rdata/generic/mx_15.cc b/src/lib/dns/rdata/generic/mx_15.cc
index c2001ca..ab6efbe 100644
--- a/src/lib/dns/rdata/generic/mx_15.cc
+++ b/src/lib/dns/rdata/generic/mx_15.cc
@@ -31,6 +31,7 @@
using namespace std;
using boost::lexical_cast;
using namespace isc::util;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
diff --git a/src/lib/dns/rdata/generic/ns_2.cc b/src/lib/dns/rdata/generic/ns_2.cc
index 2f0278f..d75ab7d 100644
--- a/src/lib/dns/rdata/generic/ns_2.cc
+++ b/src/lib/dns/rdata/generic/ns_2.cc
@@ -26,6 +26,7 @@
using namespace std;
using namespace isc::util;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
diff --git a/src/lib/dns/rdata/generic/ptr_12.cc b/src/lib/dns/rdata/generic/ptr_12.cc
index beec038..080faee 100644
--- a/src/lib/dns/rdata/generic/ptr_12.cc
+++ b/src/lib/dns/rdata/generic/ptr_12.cc
@@ -22,8 +22,11 @@
#include <dns/rdata.h>
#include <dns/rdataclass.h>
+#include <dns/rdata/generic/detail/lexer_util.h>
+
using namespace std;
using namespace isc::util;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
diff --git a/src/lib/dns/rdata/in_1/srv_33.cc b/src/lib/dns/rdata/in_1/srv_33.cc
index af8bbe3..7166e14 100644
--- a/src/lib/dns/rdata/in_1/srv_33.cc
+++ b/src/lib/dns/rdata/in_1/srv_33.cc
@@ -25,9 +25,12 @@
#include <dns/rdata.h>
#include <dns/rdataclass.h>
+#include <dns/rdata/generic/detail/lexer_util.h>
+
using namespace std;
using namespace isc::util;
using namespace isc::util::str;
+using isc::dns::rdata::generic::detail::createNameFromLexer;
// BEGIN_ISC_NAMESPACE
// BEGIN_RDATA_NAMESPACE
@@ -112,14 +115,40 @@ SRV::SRV(InputBuffer& buffer, size_t rdata_len) {
isc_throw(InvalidRdataLength, "SRV too short");
}
- uint16_t priority = buffer.readUint16();
- uint16_t weight = buffer.readUint16();
- uint16_t port = buffer.readUint16();
+ const uint16_t priority = buffer.readUint16();
+ const uint16_t weight = buffer.readUint16();
+ const uint16_t port = buffer.readUint16();
const Name targetname(buffer);
impl_ = new SRVImpl(priority, weight, port, targetname);
}
+SRV::SRV(MasterLexer& lexer, const Name* origin,
+ MasterLoader::Options, MasterLoaderCallbacks&)
+{
+ uint32_t num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
+ if (num > 65535) {
+ isc_throw(InvalidRdataText, "Invalid SRV priority");
+ }
+ const uint16_t priority = static_cast<uint16_t>(num);
+
+ num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
+ if (num > 65535) {
+ isc_throw(InvalidRdataText, "Invalid SRV weight");
+ }
+ const uint16_t weight = static_cast<uint16_t>(num);
+
+ num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
+ if (num > 65535) {
+ isc_throw(InvalidRdataText, "Invalid SRV port");
+ }
+ const uint16_t port = static_cast<uint16_t>(num);
+
+ const Name targetname = createNameFromLexer(lexer, origin);
+
+ impl_ = new SRVImpl(priority, weight, port, targetname);
+}
+
/// \brief The copy constructor.
///
/// It internally allocates a resource, and if it fails a corresponding
diff --git a/src/lib/dns/tests/rdata_cname_unittest.cc b/src/lib/dns/tests/rdata_cname_unittest.cc
index 6451f72..eda3aef 100644
--- a/src/lib/dns/tests/rdata_cname_unittest.cc
+++ b/src/lib/dns/tests/rdata_cname_unittest.cc
@@ -90,7 +90,7 @@ TEST_F(Rdata_CNAME_Test, createFromWire) {
TEST_F(Rdata_CNAME_Test, createFromLexer) {
EXPECT_EQ(0, rdata_cname.compare(
*test::createRdataUsingLexer(RRType::CNAME(), RRClass::IN(),
- "cn.example.com")));
+ "cn.example.com.")));
}
TEST_F(Rdata_CNAME_Test, toWireBuffer) {
diff --git a/src/lib/dns/tests/rdata_dname_unittest.cc b/src/lib/dns/tests/rdata_dname_unittest.cc
index c4e517c..1dc3fec 100644
--- a/src/lib/dns/tests/rdata_dname_unittest.cc
+++ b/src/lib/dns/tests/rdata_dname_unittest.cc
@@ -92,7 +92,7 @@ TEST_F(Rdata_DNAME_Test, createFromWire) {
TEST_F(Rdata_DNAME_Test, createFromLexer) {
EXPECT_EQ(0, rdata_dname.compare(
*test::createRdataUsingLexer(RRType::DNAME(), RRClass::IN(),
- "dn.example.com")));
+ "dn.example.com.")));
}
TEST_F(Rdata_DNAME_Test, toWireBuffer) {
diff --git a/src/lib/dns/tests/rdata_srv_unittest.cc b/src/lib/dns/tests/rdata_srv_unittest.cc
index 066755f..5c79980 100644
--- a/src/lib/dns/tests/rdata_srv_unittest.cc
+++ b/src/lib/dns/tests/rdata_srv_unittest.cc
@@ -125,6 +125,16 @@ TEST_F(Rdata_SRV_Test, createFromLexer) {
"1 5 1500 a.example.com.")));
// Exceptions cause NULL to be returned.
+
+ // Bad priority
+ EXPECT_FALSE(test::createRdataUsingLexer(RRType::SRV(), RRClass::IN(),
+ "65536 5 1500 "
+ "a.example.com."));
+ // Bad weight
+ EXPECT_FALSE(test::createRdataUsingLexer(RRType::SRV(), RRClass::IN(),
+ "1 65536 1500 "
+ "a.example.com."));
+ // Bad port
EXPECT_FALSE(test::createRdataUsingLexer(RRType::SRV(), RRClass::IN(),
"1 5 281474976710656 "
"a.example.com."));
More information about the bind10-changes
mailing list