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