BIND 10 trac2165_2, updated. 52f1d2c35bb10b9d5d3f7d055ce39cac3b2423b8 [2165] Remove multiple copies of the same code

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Aug 21 16:51:43 UTC 2012


The branch, trac2165_2 has been updated
       via  52f1d2c35bb10b9d5d3f7d055ce39cac3b2423b8 (commit)
      from  18324f005be1053dd9be7ccce0c5a6182fcb144c (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 52f1d2c35bb10b9d5d3f7d055ce39cac3b2423b8
Author: Mukund Sivaraman <muks at isc.org>
Date:   Tue Aug 21 22:15:32 2012 +0530

    [2165] Remove multiple copies of the same code

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

Summary of changes:
 src/bin/auth/tests/query_unittest.cc   |   25 ++-----------------------
 src/lib/datasrc/memory_datasrc.cc      |   19 +------------------
 src/lib/datasrc/zone.h                 |   23 +++++++++++++++++++++++
 src/lib/datasrc/zone_finder_context.cc |   20 ++------------------
 4 files changed, 28 insertions(+), 59 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/auth/tests/query_unittest.cc b/src/bin/auth/tests/query_unittest.cc
index 5ed6547..b9650d6 100644
--- a/src/bin/auth/tests/query_unittest.cc
+++ b/src/bin/auth/tests/query_unittest.cc
@@ -314,27 +314,6 @@ textToRRset(const string& text_rrset, const Name& origin = Name::ROOT_NAME()) {
     return (rrset);
 }
 
-ConstRRsetPtr
-prepareRRset(ConstRRsetPtr rr, const ZoneFinder::FindOptions options) {
-    ConstRRsetPtr sig_rrset = rr->getRRsig();
-    if (sig_rrset &&
-        ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
-        RRsetPtr result_base(new RRset(rr->getName(),
-                                       rr->getClass(),
-                                       rr->getType(),
-                                       rr->getTTL()));
-        for (RdataIteratorPtr i(rr->getRdataIterator());
-             !i->isLast();
-             i->next()) {
-            result_base->addRdata(i->getCurrent());
-        }
-
-        return(result_base);
-    } else {
-        return(rr);
-    }
-}
-
 // This is a mock Zone Finder class for testing.
 // It is a derived class of ZoneFinder for the convenient of tests.
 // Its find() method emulates the common behavior of protocol compliant
@@ -506,7 +485,7 @@ protected:
                                        isc::dns::ConstRRsetPtr rrset,
                                        FindResultFlags flags = RESULT_DEFAULT)
     {
-        ConstRRsetPtr rr = (rrset ? prepareRRset(rrset, options) : rrset);
+        ConstRRsetPtr rr = (rrset ? stripRRsigs(rrset, options) : rrset);
         return (ZoneFinderContextPtr(
                     new Context(*this, options,
                                 ResultContext(code, rr, flags))));
@@ -622,7 +601,7 @@ MockZoneFinder::findAll(const Name& name, std::vector<ConstRRsetPtr>& target,
                  found_domain->second.begin();
                  found_rrset != found_domain->second.end(); ++found_rrset) {
                 // Insert RRs under the domain name into target
-                target.push_back(prepareRRset(found_rrset->second, options));
+                target.push_back(stripRRsigs(found_rrset->second, options));
             }
             return (ZoneFinderContextPtr(
                         new Context(*this, options,
diff --git a/src/lib/datasrc/memory_datasrc.cc b/src/lib/datasrc/memory_datasrc.cc
index 694616f..e4ef97f 100644
--- a/src/lib/datasrc/memory_datasrc.cc
+++ b/src/lib/datasrc/memory_datasrc.cc
@@ -860,24 +860,7 @@ private:
                     } else {
                         rr = found->second;
                     }
-
-                    ConstRRsetPtr sig_rrset = rr->getRRsig();
-                    if (sig_rrset &&
-                        ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
-                        RRsetPtr result_base(new RRset(rr->getName(),
-                                                       rr->getClass(),
-                                                       rr->getType(),
-                                                       rr->getTTL()));
-                        for (RdataIteratorPtr i(rr->getRdataIterator());
-                             !i->isLast();
-                             i->next()) {
-                            result_base->addRdata(i->getCurrent());
-                        }
-
-                        result.push_back(result_base);
-                    } else {
-                        result.push_back(rr);
-                    }
+                    result.push_back(ZoneFinder::stripRRsigs(rr, options));
                 }
             }
         }
diff --git a/src/lib/datasrc/zone.h b/src/lib/datasrc/zone.h
index 5c76a37..4babefe 100644
--- a/src/lib/datasrc/zone.h
+++ b/src/lib/datasrc/zone.h
@@ -134,6 +134,29 @@ protected:
     };
 
 public:
+    /// \brief A helper function to strip RRSIGs when FIND_DNSSEC is not
+    /// requested.
+    static isc::dns::ConstRRsetPtr
+    stripRRsigs(isc::dns::ConstRRsetPtr rr, const FindOptions options) {
+        isc::dns::ConstRRsetPtr sig_rrset = rr->getRRsig();
+        if (sig_rrset &&
+            ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
+            isc::dns::RRsetPtr result_base(new isc::dns::RRset(rr->getName(),
+                                           rr->getClass(),
+                                           rr->getType(),
+                                           rr->getTTL()));
+            for (isc::dns::RdataIteratorPtr i(rr->getRdataIterator());
+                 !i->isLast();
+                 i->next()) {
+                result_base->addRdata(i->getCurrent());
+            }
+
+            return(result_base);
+        } else {
+            return(rr);
+        }
+    }
+
     /// \brief Context of the result of a find() call.
     ///
     /// This class encapsulates results and (possibly) associated context
diff --git a/src/lib/datasrc/zone_finder_context.cc b/src/lib/datasrc/zone_finder_context.cc
index 019707b..bf9c4b0 100644
--- a/src/lib/datasrc/zone_finder_context.cc
+++ b/src/lib/datasrc/zone_finder_context.cc
@@ -47,24 +47,8 @@ getAdditionalAddrs(ZoneFinder& finder, const Name& name,
     BOOST_FOREACH(RRType rrtype, requested_types) {
         ConstZoneFinderContextPtr ctx = finder.find(name, rrtype, options);
         if (ctx->code == ZoneFinder::SUCCESS) {
-            ConstRRsetPtr rr = ctx->rrset;
-            ConstRRsetPtr sig_rrset = rr->getRRsig();
-            if (sig_rrset &&
-                ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
-                RRsetPtr result_base(new RRset(rr->getName(),
-                                               rr->getClass(),
-                                               rr->getType(),
-                                               rr->getTTL()));
-                for (RdataIteratorPtr i(rr->getRdataIterator());
-                     !i->isLast();
-                     i->next()) {
-                    result_base->addRdata(i->getCurrent());
-                }
-
-                result_rrsets.push_back(result_base);
-            } else {
-                result_rrsets.push_back(rr);
-            }
+            result_rrsets.push_back(ZoneFinder::stripRRsigs(ctx->rrset,
+                                                            options));
         }
     }
 }



More information about the bind10-changes mailing list