BIND 10 trac2108_3, updated. 5bd8df4b94383665c2c6de44436b3eeedae7f2d4 Revert "[2108] getTTL() is unimplemented in TreeNodeRRset"
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Sep 10 05:38:41 UTC 2012
The branch, trac2108_3 has been updated
via 5bd8df4b94383665c2c6de44436b3eeedae7f2d4 (commit)
via a727e666876aa6ec02cc9d736b2735c4d021fca4 (commit)
from f60ea8d945a1c503670418c7e3f6cc57e5b82ee1 (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 5bd8df4b94383665c2c6de44436b3eeedae7f2d4
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Sep 10 11:06:44 2012 +0530
Revert "[2108] getTTL() is unimplemented in TreeNodeRRset"
This reverts commit 72f8b8a0db78bab56f8efb0f344fc8961f9adadc.
commit a727e666876aa6ec02cc9d736b2735c4d021fca4
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Sep 10 11:06:29 2012 +0530
[2108] Implement TreeNodeRRset::getTTL()
This is used in the iterator when separating RRs.
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory/memory_client.cc | 2 +-
.../memory/tests/treenode_rrset_unittest.cc | 16 +++++++++-------
src/lib/datasrc/memory/treenode_rrset.cc | 10 ++++++++--
src/lib/datasrc/memory/treenode_rrset.h | 4 +++-
4 files changed, 21 insertions(+), 11 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/memory_client.cc b/src/lib/datasrc/memory/memory_client.cc
index 12e68df..e21fd48 100644
--- a/src/lib/datasrc/memory/memory_client.cc
+++ b/src/lib/datasrc/memory/memory_client.cc
@@ -839,7 +839,7 @@ public:
RRsetPtr result(new RRset(rrset_->getName(),
rrset_->getClass(),
rrset_->getType(),
- RRTTL(0)));
+ rrset_->getTTL()));
result->addRdata(rdata_iterator_->getCurrent());
rdata_iterator_->next();
if (rdata_iterator_->isLast()) {
diff --git a/src/lib/datasrc/memory/tests/treenode_rrset_unittest.cc b/src/lib/datasrc/memory/tests/treenode_rrset_unittest.cc
index cf486bf..c83c034 100644
--- a/src/lib/datasrc/memory/tests/treenode_rrset_unittest.cc
+++ b/src/lib/datasrc/memory/tests/treenode_rrset_unittest.cc
@@ -138,11 +138,13 @@ protected:
void
checkBasicFields(const AbstractRRset& actual_rrset, const Name& expected_name,
const RRClass& expected_class, const RRType& expected_type,
+ const uint32_t expected_ttl,
size_t expected_rdatacount, size_t expected_sigcount)
{
EXPECT_EQ(expected_name, actual_rrset.getName());
EXPECT_EQ(expected_class, actual_rrset.getClass());
EXPECT_EQ(expected_type, actual_rrset.getType());
+ EXPECT_EQ(RRTTL(expected_ttl), actual_rrset.getTTL());
EXPECT_EQ(expected_rdatacount, actual_rrset.getRdataCount());
EXPECT_EQ(expected_sigcount, actual_rrset.getRRsigDataCount());
}
@@ -150,31 +152,31 @@ checkBasicFields(const AbstractRRset& actual_rrset, const Name& expected_name,
TEST_F(TreeNodeRRsetTest, create) {
// Constructed with RRSIG, and it should be visible.
checkBasicFields(TreeNodeRRset(rrclass_, www_node_, a_rdataset_, true),
- www_name_, rrclass_, RRType::A(), 2, 1);
+ www_name_, rrclass_, RRType::A(), 3600, 2, 1);
// Constructed with RRSIG, and it should be invisible.
checkBasicFields(TreeNodeRRset(rrclass_, www_node_, a_rdataset_, false),
- www_name_, rrclass_, RRType::A(), 2, 0);
+ www_name_, rrclass_, RRType::A(), 3600, 2, 0);
// Constructed without RRSIG, and it would be visible (but of course won't)
checkBasicFields(TreeNodeRRset(rrclass_, origin_node_, ns_rdataset_, true),
- origin_name_, rrclass_, RRType::NS(), 1, 0);
+ origin_name_, rrclass_, RRType::NS(), 3600, 1, 0);
// Constructed without RRSIG, and it should be visible
checkBasicFields(TreeNodeRRset(rrclass_, origin_node_, ns_rdataset_,
false),
- origin_name_, rrclass_, RRType::NS(), 1, 0);
+ origin_name_, rrclass_, RRType::NS(), 3600, 1, 0);
// RRSIG-only case (note the RRset's type is covered type)
checkBasicFields(TreeNodeRRset(rrclass_, www_node_, rrsig_only_rdataset_,
true),
- www_name_, rrclass_, RRType::TXT(), 0, 1);
+ www_name_, rrclass_, RRType::TXT(), 3600, 0, 1);
// RRSIG-only case (note the RRset's type is covered type), but it's
// invisible
checkBasicFields(TreeNodeRRset(rrclass_, www_node_, rrsig_only_rdataset_,
false),
- www_name_, rrclass_, RRType::TXT(), 0, 0);
+ www_name_, rrclass_, RRType::TXT(), 3600, 0, 0);
// Wildcard substitution
checkBasicFields(TreeNodeRRset(match_name_, rrclass_,
wildcard_node_, wildcard_rdataset_,
true),
- match_name_, rrclass_, RRType::A(), 2, 1);
+ match_name_, rrclass_, RRType::A(), 3600, 2, 1);
}
// Templated if and when we support OutputBuffer version of toWire().
diff --git a/src/lib/datasrc/memory/treenode_rrset.cc b/src/lib/datasrc/memory/treenode_rrset.cc
index 6fc6b66..1f4bc1d 100644
--- a/src/lib/datasrc/memory/treenode_rrset.cc
+++ b/src/lib/datasrc/memory/treenode_rrset.cc
@@ -46,7 +46,7 @@ TreeNodeRRset::TreeNodeRRset(const dns::Name& realname,
bool dnssec_ok) :
node_(node), rdataset_(rdataset),
rrsig_count_(rdataset_->getSigRdataCount()), rrclass_(rrclass),
- dnssec_ok_(dnssec_ok), name_(NULL)
+ dnssec_ok_(dnssec_ok), name_(NULL), ttl_(NULL)
{
const LabelSequence labels(realname);
const size_t labels_storangelen = labels.getSerializedLength();
@@ -69,7 +69,13 @@ TreeNodeRRset::getName() const {
const RRTTL&
TreeNodeRRset::getTTL() const {
- isc_throw(Unexpected, "unexpected method called on TreeNodeRRset");
+ if (ttl_ == NULL) {
+ util::InputBuffer ttl_buffer(rdataset_->getTTLData(),
+ sizeof(uint32_t));
+ ttl_ = new RRTTL(ttl_buffer);
+ }
+
+ return (*ttl_);
}
void
diff --git a/src/lib/datasrc/memory/treenode_rrset.h b/src/lib/datasrc/memory/treenode_rrset.h
index 1f52124..91f81e8 100644
--- a/src/lib/datasrc/memory/treenode_rrset.h
+++ b/src/lib/datasrc/memory/treenode_rrset.h
@@ -105,7 +105,7 @@ public:
const RdataSet* rdataset, bool dnssec_ok) :
node_(node), rdataset_(rdataset),
rrsig_count_(rdataset_->getSigRdataCount()), rrclass_(rrclass),
- dnssec_ok_(dnssec_ok), name_(NULL), realname_buf_(NULL)
+ dnssec_ok_(dnssec_ok), name_(NULL), realname_buf_(NULL), ttl_(NULL)
{}
/// \brief Constructor for wildcard-expanded owner name.
@@ -126,6 +126,7 @@ public:
virtual ~TreeNodeRRset() {
delete[] realname_buf_;
+ delete ttl_;
delete name_;
}
@@ -251,6 +252,7 @@ private:
const bool dnssec_ok_;
mutable dns::Name* name_;
uint8_t* realname_buf_;
+ mutable dns::RRTTL* ttl_;
};
} // namespace memory
More information about the bind10-changes
mailing list