BIND 10 master, updated. cc0fc600dfdc1f4652aa7ec5a7472db06c1cbd4d Merge branch 'trac1397'
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Feb 3 09:32:43 UTC 2014
The branch, master has been updated
via cc0fc600dfdc1f4652aa7ec5a7472db06c1cbd4d (commit)
via 30c527eedf5ff9b38d20f81c795acfb049c7aed9 (commit)
via 6db6928823e9f7626c3d49f4583f665d92e8ee95 (commit)
via 0022aaf1bd3bb9bb91bbf5542fdd962848776b59 (commit)
via 7417af2406fa1e11241b31dfe68a36b55f99146a (commit)
from 2f88f1b4926783fd03871f434b88fbb3d801e590 (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 cc0fc600dfdc1f4652aa7ec5a7472db06c1cbd4d
Merge: 2f88f1b 30c527e
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Feb 3 14:39:58 2014 +0530
Merge branch 'trac1397'
Conflicts:
src/lib/dns/tests/rrset_unittest.cc
The merge conflict resolution was reviewed by Shane on Jabber.
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory/treenode_rrset.cc | 5 +++++
src/lib/datasrc/memory/treenode_rrset.h | 5 +++++
.../tests/memory/treenode_rrset_unittest.cc | 1 +
src/lib/dns/rrset.cc | 5 +++++
src/lib/dns/rrset.h | 17 +++++++++++++++++
src/lib/dns/tests/rrset_unittest.cc | 16 ++++++++++++++--
6 files changed, 47 insertions(+), 2 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/treenode_rrset.cc b/src/lib/datasrc/memory/treenode_rrset.cc
index 1d468ef..396bf87 100644
--- a/src/lib/datasrc/memory/treenode_rrset.cc
+++ b/src/lib/datasrc/memory/treenode_rrset.cc
@@ -270,6 +270,11 @@ TreeNodeRRset::addRdata(const rdata::Rdata&) {
isc_throw(Unexpected, "unexpected method called on TreeNodeRRset");
}
+void
+TreeNodeRRset::addRdata(const std::string&) {
+ isc_throw(Unexpected, "unexpected method called on TreeNodeRRset");
+}
+
namespace {
// In this namespace we define a set of helper stuff to implement the
// RdataIterator for the TreeNodeRRset. We should eventually optimize
diff --git a/src/lib/datasrc/memory/treenode_rrset.h b/src/lib/datasrc/memory/treenode_rrset.h
index 51e1eed..47d196e 100644
--- a/src/lib/datasrc/memory/treenode_rrset.h
+++ b/src/lib/datasrc/memory/treenode_rrset.h
@@ -206,6 +206,11 @@ public:
/// It throws \c isc::Unexpected unconditionally.
virtual void addRdata(const dns::rdata::Rdata& rdata);
+ /// \brief Specialized version of \c addRdata() for \c TreeNodeRRset.
+ ///
+ /// It throws \c isc::Unexpected unconditionally.
+ virtual void addRdata(const std::string& rdata_str);
+
virtual dns::RdataIteratorPtr getRdataIterator() const;
/// \brief Specialized version of \c getRRsig() for \c TreeNodeRRset.
diff --git a/src/lib/datasrc/tests/memory/treenode_rrset_unittest.cc b/src/lib/datasrc/tests/memory/treenode_rrset_unittest.cc
index 451a91a..a1f1b28 100644
--- a/src/lib/datasrc/tests/memory/treenode_rrset_unittest.cc
+++ b/src/lib/datasrc/tests/memory/treenode_rrset_unittest.cc
@@ -694,6 +694,7 @@ TEST_F(TreeNodeRRsetTest, unexpectedMethods) {
EXPECT_THROW(rrset.setTTL(RRTTL(0)), isc::Unexpected);
EXPECT_THROW(rrset.addRdata(createRdata(RRType::A(), rrclass_, "0.0.0.0")),
isc::Unexpected);
+ EXPECT_THROW(rrset.addRdata("0.0.0.0"), isc::Unexpected);
RdataPtr sig_rdata = createRdata(
RRType::RRSIG(), rrclass_,
"A 5 2 3600 20120814220826 20120715220826 5300 example.com. FAKE");
diff --git a/src/lib/dns/rrset.cc b/src/lib/dns/rrset.cc
index 8b9f4c4..b3da32c 100644
--- a/src/lib/dns/rrset.cc
+++ b/src/lib/dns/rrset.cc
@@ -254,6 +254,11 @@ BasicRRset::addRdata(const Rdata& rdata) {
AbstractRRset::addRdata(rdata);
}
+void
+BasicRRset::addRdata(const std::string& rdata_str) {
+ addRdata(createRdata(getType(), getClass(), rdata_str));
+}
+
unsigned int
BasicRRset::getRdataCount() const {
return (impl_->rdatalist_.size());
diff --git a/src/lib/dns/rrset.h b/src/lib/dns/rrset.h
index 42b890d..23e1d0a 100644
--- a/src/lib/dns/rrset.h
+++ b/src/lib/dns/rrset.h
@@ -401,6 +401,16 @@ public:
/// object, a copy of which is to be added to the \c RRset.
virtual void addRdata(const rdata::Rdata& rdata) = 0;
+ /// \brief Add an RDATA to the RRset (string version).
+ ///
+ /// This method constructs an Rdata object from the the given
+ /// \c rdata_str in presentation format and adds it to the \c RRset.
+ ///
+ /// \param rdata_str RDATA string in presentation format.
+ /// \throw InvalidRdataText if the \c rdata_str is invalid for this
+ /// \c RRset.
+ virtual void addRdata(const std::string& rdata_str) = 0;
+
/// \brief Return an iterator to go through all RDATA stored in the
/// \c RRset.
///
@@ -755,6 +765,13 @@ public:
/// See \c AbstractRRset::addRdata(const rdata::Rdata&).
virtual void addRdata(const rdata::Rdata& rdata);
+ /// \brief Add an RDATA to the RRset (string version).
+ ///
+ /// \param rdata_str RDATA string in presentation format.
+ /// \throw InvalidRdataText if the \c rdata_str is invalid for this
+ /// \c RRset.
+ virtual void addRdata(const std::string& rdata_str);
+
/// \brief Return an iterator to go through all RDATA stored in the
/// \c BasicRRset.
///
diff --git a/src/lib/dns/tests/rrset_unittest.cc b/src/lib/dns/tests/rrset_unittest.cc
index 6e7e788..a91f979 100644
--- a/src/lib/dns/tests/rrset_unittest.cc
+++ b/src/lib/dns/tests/rrset_unittest.cc
@@ -130,7 +130,7 @@ TEST_F(RRsetTest, isSameKind) {
void
addRdataTestCommon(const RRset& rrset) {
- EXPECT_EQ(2, rrset.getRdataCount());
+ ASSERT_EQ(2, rrset.getRdataCount());
RdataIteratorPtr it = rrset.getRdataIterator(); // cursor is set to the 1st
EXPECT_FALSE(it->isLast());
@@ -157,7 +157,7 @@ TEST_F(RRsetTest, addRdataPtr) {
rrset_a_empty.addRdata(createRdata(rrset_a_empty.getType(),
rrset_a_empty.getClass(),
"192.0.2.2"));
- addRdataTestCommon(rrset_a);
+ addRdataTestCommon(rrset_a_empty);
}
TEST_F(RRsetTest, addRdataPtrMismatched) {
@@ -175,6 +175,18 @@ TEST_F(RRsetTest, addRdataPtrMismatched) {
EXPECT_EQ(1, rrset_ch_txt.getRdataCount());
}
+TEST_F(RRsetTest, addRdataString) {
+ rrset_a_empty.addRdata("192.0.2.1");
+ rrset_a_empty.addRdata("192.0.2.2");
+
+ addRdataTestCommon(rrset_a_empty);
+
+ // String version of addRdata() will throw for bad RDATA for
+ // RRType::A().
+ EXPECT_THROW(rrset_a_empty.addRdata("ns.example.com."), InvalidRdataText);
+ addRdataTestCommon(rrset_a_empty);
+}
+
TEST_F(RRsetTest, iterator) {
// Iterator for an empty RRset.
RdataIteratorPtr it = rrset_a_empty.getRdataIterator();
More information about the bind10-changes
mailing list