Browse Source

[2165] Move ZoneFinder::stripRRsigs() into a .cc file

Mukund Sivaraman 12 years ago
parent
commit
a173297fd3
3 changed files with 57 additions and 23 deletions
  1. 1 1
      src/lib/datasrc/Makefile.am
  2. 1 22
      src/lib/datasrc/zone.h
  3. 55 0
      src/lib/datasrc/zone_finder.cc

+ 1 - 1
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 += rbnode_rrset.h
 libb10_datasrc_la_SOURCES += rbtree.h
 libb10_datasrc_la_SOURCES += rbtree.h
 libb10_datasrc_la_SOURCES += zonetable.h zonetable.cc
 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 += result.h
 libb10_datasrc_la_SOURCES += logger.h logger.cc
 libb10_datasrc_la_SOURCES += logger.h logger.cc
 libb10_datasrc_la_SOURCES += client.h iterator.h
 libb10_datasrc_la_SOURCES += client.h iterator.h

+ 1 - 22
src/lib/datasrc/zone.h

@@ -137,28 +137,7 @@ public:
     /// \brief A helper function to strip RRSIGs when FIND_DNSSEC is not
     /// \brief A helper function to strip RRSIGs when FIND_DNSSEC is not
     /// requested.
     /// requested.
     static isc::dns::ConstRRsetPtr
     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.
     /// \brief Context of the result of a find() call.
     ///
     ///

+ 55 - 0
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 <dns/rdata.h>
+#include <dns/rrset.h>
+#include <dns/rrtype.h>
+#include <dns/rdataclass.h>
+
+#include <datasrc/zone.h>
+
+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