BIND 10 master, updated. 469f80fa1e994479c42898cffb88595cd3ba9185 Merge branch 'trac2539'

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Feb 5 06:50:27 UTC 2014


The branch, master has been updated
       via  469f80fa1e994479c42898cffb88595cd3ba9185 (commit)
       via  86baf211c8a9f1a5ad1498672728f4a15eaa311d (commit)
       via  8885b2d4e06fc897eee4efdace356c1bd29c771c (commit)
       via  48da2e4e8966ecf8258e4e818f7aa5223e969abe (commit)
      from  2dec38e5e39d5b391a1cbb3e72e18b31ba341cba (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 469f80fa1e994479c42898cffb88595cd3ba9185
Merge: 2dec38e 86baf21
Author: Mukund Sivaraman <muks at isc.org>
Date:   Wed Feb 5 12:10:15 2014 +0530

    Merge branch 'trac2539'

-----------------------------------------------------------------------

Summary of changes:
 src/lib/datasrc/memory/memory_client.cc            |   15 ++++++++++++++-
 .../datasrc/tests/memory/memory_client_unittest.cc |   15 ++++++++++++---
 2 files changed, 26 insertions(+), 4 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/memory_client.cc b/src/lib/datasrc/memory/memory_client.cc
index 0b0c827..98fbb57 100644
--- a/src/lib/datasrc/memory/memory_client.cc
+++ b/src/lib/datasrc/memory/memory_client.cc
@@ -90,6 +90,7 @@ private:
     ZoneChain chain_;
     const RdataSet* set_node_;
     const RRClass rrclass_;
+    ConstRRsetPtr soa_;
     const ZoneTree& tree_;
     const ZoneNode* node_;
     // Only used when separate_rrs_ is true
@@ -120,6 +121,18 @@ public:
             isc_throw(Unexpected,
                       "In-memory zone corrupted, missing origin node");
         }
+
+        if (node_) {
+            const RdataSet* origin_set = node_->getData();
+            if (origin_set) {
+                const RdataSet* soa_set = RdataSet::find(origin_set, RRType::SOA());
+                if (soa_set) {
+                    soa_ = ConstRRsetPtr (new TreeNodeRRset(rrclass_, node_,
+                                                            soa_set, true));
+                }
+            }
+        }
+
         // Initialize the iterator if there's somewhere to point to
         if (node_ != NULL && node_->getData() != NULL) {
             set_node_ = node_->getData();
@@ -231,7 +244,7 @@ public:
     }
 
     virtual ConstRRsetPtr getSOA() const {
-        isc_throw(NotImplemented, "Not implemented");
+        return (soa_);
     }
 };
 
diff --git a/src/lib/datasrc/tests/memory/memory_client_unittest.cc b/src/lib/datasrc/tests/memory/memory_client_unittest.cc
index 73862e3..7644a1e 100644
--- a/src/lib/datasrc/tests/memory/memory_client_unittest.cc
+++ b/src/lib/datasrc/tests/memory/memory_client_unittest.cc
@@ -774,13 +774,22 @@ TEST_F(MemoryClientTest, getIteratorSeparateSigned) {
     EXPECT_TRUE(seen_nsec3);
 }
 
-TEST_F(MemoryClientTest, getIteratorGetSOAThrowsNotImplemented) {
+TEST_F(MemoryClientTest, getIteratorGetSOA) {
     loadZoneIntoTable(*ztable_segment_, Name("example.org"), zclass_,
                       TEST_DATA_DIR "/example.org-empty.zone");
     ZoneIteratorPtr iterator(client_->getIterator(Name("example.org")));
 
-    // This method is not implemented.
-    EXPECT_THROW(iterator->getSOA(), isc::NotImplemented);
+    ConstRRsetPtr soa_rrset(iterator->getSOA());
+
+    ASSERT_EQ(RRType::SOA(), soa_rrset->getType());
+    ASSERT_EQ(1, soa_rrset->getRdataCount());
+
+    RdataIteratorPtr it(soa_rrset->getRdataIterator());
+    const generic::SOA& soa
+        (dynamic_cast<const generic::SOA&>(it->getCurrent()));
+
+    EXPECT_EQ(71, soa.getSerial().getValue());
+    EXPECT_EQ(3600, soa.getMinimum());
 }
 
 TEST_F(MemoryClientTest, addEmptyRRsetThrows) {



More information about the bind10-changes mailing list