From: Mukund Sivaraman Date: Sun, 26 Aug 2012 23:10:57 +0000 (+0530) Subject: [2165] Move ZoneFinder::stripRRsigs() into a .cc file X-Git-Tag: trac2351_base~110^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a173297fd323767a6a37dbf7acba00f54b10ccdc;p=thirdparty%2Fkea.git [2165] Move ZoneFinder::stripRRsigs() into a .cc file --- diff --git a/src/lib/datasrc/Makefile.am b/src/lib/datasrc/Makefile.am index bb18b75b4a..d1e113f9c5 100644 --- a/src/lib/datasrc/Makefile.am +++ b/src/lib/datasrc/Makefile.am @@ -29,7 +29,7 @@ libb10_datasrc_la_SOURCES += cache.h cache.cc libb10_datasrc_la_SOURCES += rbnode_rrset.h libb10_datasrc_la_SOURCES += rbtree.h libb10_datasrc_la_SOURCES += zonetable.h zonetable.cc -libb10_datasrc_la_SOURCES += zone.h zone_finder_context.cc +libb10_datasrc_la_SOURCES += zone.h zone_finder.cc zone_finder_context.cc libb10_datasrc_la_SOURCES += result.h libb10_datasrc_la_SOURCES += logger.h logger.cc libb10_datasrc_la_SOURCES += client.h iterator.h diff --git a/src/lib/datasrc/zone.h b/src/lib/datasrc/zone.h index 3ca1043ca0..2330412290 100644 --- a/src/lib/datasrc/zone.h +++ b/src/lib/datasrc/zone.h @@ -137,28 +137,7 @@ public: /// \brief A helper function to strip RRSIGs when FIND_DNSSEC is not /// requested. static isc::dns::ConstRRsetPtr - stripRRsigs(isc::dns::ConstRRsetPtr rp, const FindOptions options) { - if (rp) { - isc::dns::ConstRRsetPtr sig_rrset = rp->getRRsig(); - if (sig_rrset && - ((options & ZoneFinder::FIND_DNSSEC) == 0)) { - isc::dns::RRsetPtr result_base - (new isc::dns::RRset(rp->getName(), - rp->getClass(), - rp->getType(), - rp->getTTL())); - for (isc::dns::RdataIteratorPtr i(rp->getRdataIterator()); - !i->isLast(); - i->next()) { - result_base->addRdata(i->getCurrent()); - } - - return (result_base); - } - } - - return (rp); - } + stripRRsigs(isc::dns::ConstRRsetPtr rp, const FindOptions options); /// \brief Context of the result of a find() call. /// diff --git a/src/lib/datasrc/zone_finder.cc b/src/lib/datasrc/zone_finder.cc new file mode 100644 index 0000000000..562b43f54f --- /dev/null +++ b/src/lib/datasrc/zone_finder.cc @@ -0,0 +1,55 @@ +// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +#include +#include +#include +#include + +#include + +using namespace std; +using namespace isc::dns; +using namespace isc::dns::rdata; + +namespace isc { +namespace datasrc { + +isc::dns::ConstRRsetPtr +ZoneFinder::stripRRsigs(isc::dns::ConstRRsetPtr rp, + const FindOptions options) { + if (rp) { + isc::dns::ConstRRsetPtr sig_rrset = rp->getRRsig(); + if (sig_rrset && + ((options & ZoneFinder::FIND_DNSSEC) == 0)) { + isc::dns::RRsetPtr result_base + (new isc::dns::RRset(rp->getName(), + rp->getClass(), + rp->getType(), + rp->getTTL())); + for (isc::dns::RdataIteratorPtr i(rp->getRdataIterator()); + !i->isLast(); + i->next()) { + result_base->addRdata(i->getCurrent()); + } + + return (result_base); + } + } + + return (rp); +} + +} // namespace datasrc +} // datasrc isc