BIND 10 trac2165_2, updated. 3c20e037be36b32640289bb61f45d555649bad12 [2165] Ignore RRSIG database records if sigs argument is false

BIND 10 source code commits bind10-changes at lists.isc.org
Sun Aug 26 22:12:47 UTC 2012


The branch, trac2165_2 has been updated
       via  3c20e037be36b32640289bb61f45d555649bad12 (commit)
       via  32dd44a999662e0021389bac3bfcc581fc00c00d (commit)
       via  a8d00eae92e24cb76e197e1fc1263ea11c9181bd (commit)
      from  94d0fd242d1b56ac9afe56e8f1240084946556c5 (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 3c20e037be36b32640289bb61f45d555649bad12
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Aug 27 03:42:29 2012 +0530

    [2165] Ignore RRSIG database records if sigs argument is false
    
    This avoids some more processing if RRSIGs are not requested.
    
    DatabaseClientTest.invalidRdata was adjusted to call find() with
    ZoneFinder::FIND_DNSSEC because the invalid RDATA was in the RRSIG.

commit 32dd44a999662e0021389bac3bfcc581fc00c00d
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Aug 27 03:39:35 2012 +0530

    [2165] Rename member variable to contain underscore

commit a8d00eae92e24cb76e197e1fc1263ea11c9181bd
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Aug 27 03:38:52 2012 +0530

    [2165] Fix typo in comment

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

Summary of changes:
 src/lib/datasrc/database.cc                |   18 +++++++++++-------
 src/lib/datasrc/tests/database_unittest.cc |    6 ++++--
 2 files changed, 15 insertions(+), 9 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/database.cc b/src/lib/datasrc/database.cc
index 9e29587..ede7aa3 100644
--- a/src/lib/datasrc/database.cc
+++ b/src/lib/datasrc/database.cc
@@ -157,7 +157,7 @@ public:
         const isc::dns::RRType& type_covered =
             static_cast<isc::dns::rdata::generic::RRSIG*>(
                 sig_rdata.get())->typeCovered();
-        sigs[type_covered].push_back(sig_rdata);
+        sigs_[type_covered].push_back(sig_rdata);
     }
 
     // If the store contains signatures for the type of the given
@@ -165,16 +165,20 @@ public:
     void appendSignatures(isc::dns::RRsetPtr& rrset) const {
         std::map<isc::dns::RRType,
                  std::vector<isc::dns::rdata::RdataPtr> >::const_iterator
-            found = sigs.find(rrset->getType());
-        if (found != sigs.end()) {
+            found = sigs_.find(rrset->getType());
+        if (found != sigs_.end()) {
             BOOST_FOREACH(isc::dns::rdata::RdataPtr sig, found->second) {
                 rrset->addRRsig(sig);
             }
         }
     }
 
+    bool empty() const {
+        return (sigs_.empty());
+    }
+
 private:
-    std::map<isc::dns::RRType, std::vector<isc::dns::rdata::RdataPtr> > sigs;
+    std::map<isc::dns::RRType, std::vector<isc::dns::rdata::RdataPtr> > sigs_;
 };
 }
 
@@ -214,7 +218,7 @@ DatabaseClient::Finder::getRRsets(const string& name, const WantedTypes& types,
         try {
             const RRType cur_type(columns[DatabaseAccessor::TYPE_COLUMN]);
 
-            if (cur_type == RRType::RRSIG()) {
+            if (sigs && (cur_type == RRType::RRSIG())) {
                 // If we get signatures before we get the actual data, we
                 // can't know which ones to keep and which to drop...
                 // So we keep a separate store of any signature that may be
@@ -229,7 +233,7 @@ DatabaseClient::Finder::getRRsets(const string& name, const WantedTypes& types,
             if (types.find(cur_type) != types.end() || any) {
                 // This type is requested, so put it into result
                 const RRTTL cur_ttl(columns[DatabaseAccessor::TTL_COLUMN]);
-                // Ths sigtype column was an optimization for finding the
+                // The sigtype column was an optimization for finding the
                 // relevant RRSIG RRs for a lookup. Currently this column is
                 // not used in this revised datasource implementation. We
                 // should either start using it again, or remove it from use
@@ -277,7 +281,7 @@ DatabaseClient::Finder::getRRsets(const string& name, const WantedTypes& types,
         isc_throw(DataSourceError, "CNAME shares domain " << name <<
                   " with something else");
     }
-    if (sigs) {
+    if (!sig_store.empty()) {
         // Add signatures to all found RRsets
         for (std::map<RRType, RRsetPtr>::iterator i(result.begin());
              i != result.end(); ++ i) {
diff --git a/src/lib/datasrc/tests/database_unittest.cc b/src/lib/datasrc/tests/database_unittest.cc
index cd1b59a..640477e 100644
--- a/src/lib/datasrc/tests/database_unittest.cc
+++ b/src/lib/datasrc/tests/database_unittest.cc
@@ -3641,9 +3641,11 @@ TYPED_TEST(DatabaseClientTest, compoundUpdate) {
 TYPED_TEST(DatabaseClientTest, invalidRdata) {
     boost::shared_ptr<DatabaseClient::Finder> finder(this->getFinder());
 
-    EXPECT_THROW(finder->find(Name("invalidrdata.example.org."), RRType::A()),
+    EXPECT_THROW(finder->find(Name("invalidrdata.example.org."),
+                              RRType::A()),
                  DataSourceError);
-    EXPECT_THROW(finder->find(Name("invalidrdata2.example.org."), RRType::A()),
+    EXPECT_THROW(finder->find(Name("invalidrdata2.example.org."),
+                              RRType::A(), ZoneFinder::FIND_DNSSEC),
                  DataSourceError);
 }
 



More information about the bind10-changes mailing list