[svn] commit: r841 - in /branches/each-ds/src/lib: auth/cpp/data_source.cc dns/cpp/rrsetlist.h

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Feb 16 18:34:41 UTC 2010


Author: each
Date: Tue Feb 16 18:34:41 2010
New Revision: 841

Log:
checkpoint

Modified:
    branches/each-ds/src/lib/auth/cpp/data_source.cc
    branches/each-ds/src/lib/dns/cpp/rrsetlist.h

Modified: branches/each-ds/src/lib/auth/cpp/data_source.cc
==============================================================================
--- branches/each-ds/src/lib/auth/cpp/data_source.cc (original)
+++ branches/each-ds/src/lib/auth/cpp/data_source.cc Tue Feb 16 18:34:41 2010
@@ -5,6 +5,7 @@
 #include <dns/name.h>
 #include <dns/rdataclass.h>
 #include <dns/rrset.h>
+#include <dns/rrsetlist.h>
 
 #include <cc/data.h>
 
@@ -66,7 +67,7 @@
                                  rrset->getTTL()));
         cname->addRdata(generic::CNAME(newname));
         cname->setTTL(rrset->getTTL());
-        target.push_back(cname);
+        target.addRRset(cname);
     } catch (...) {}
 }
 
@@ -110,8 +111,6 @@
     case QueryTask::REF_QUERY:
         return (ds->findReferral(q, task.qname, task.qclass, target, sigs));
     }
-
-    // XXX what to return if none of these works?  Throw an exception?
 }
 
 //
@@ -171,7 +170,7 @@
                         }
 
                         if (found) {
-                            BOOST_FOREACH (RRsetPtr r, ref) {
+                            BOOST_FOREACH (RRsetPtr r, ref.get()) {
                                 if (r->getType() == RRType::NS()) {
                                     // XXX: eventually also handle DS
                                     m.addRRset(Section::AUTHORITY(), r);
@@ -180,9 +179,10 @@
                                     m.addRRset(Section::ANSWER(), r);
                                     RRsetList syn;
                                     synthesizeCname(q, task, r, syn);
-                                    if (syn.size() == 1) {
-                                        m.addRRset(Section::ANSWER(), syn[0]);
-                                        chaseCname(q, task, syn[0]);
+                                    if (syn.get().size() == 1) {
+                                        m.addRRset(Section::ANSWER(),
+                                                   syn.get()[0]);
+                                        chaseCname(q, task, syn.get()[0]);
                                     }
                                 }
                             }
@@ -220,7 +220,7 @@
             switch (task.state) {
             case QueryTask::GETANSWER:
             case QueryTask::FOLLOWCNAME:
-                BOOST_FOREACH(RRsetPtr rrset, data) {
+                BOOST_FOREACH(RRsetPtr rrset, data.get()) {
                     m.addRRset(task.section, rrset);
                     getAdditional(q, rrset);
                     if (rrset->getType() == RRType::NS()) {
@@ -242,7 +242,7 @@
                             return;
                         }
 
-                        BOOST_FOREACH(RRsetPtr rrset, auth) {
+                        BOOST_FOREACH(RRsetPtr rrset, auth.get()) {
                             if (rrset->getType() == RRType::DNAME()) {
                                 continue;
                             }
@@ -254,7 +254,7 @@
                 continue;
 
             case QueryTask::GETAUTHORITY:
-                BOOST_FOREACH(RRsetPtr rrset, data) {
+                BOOST_FOREACH(RRsetPtr rrset, data.get()) {
                     m.addRRset(task.section, rrset);
                     getAdditional(q, rrset);
                 }
@@ -265,7 +265,7 @@
                 continue;
 
             case QueryTask::GETADDITIONAL:
-                BOOST_FOREACH(RRsetPtr rrset, data) {
+                BOOST_FOREACH(RRsetPtr rrset, data.get()) {
                     if (q.status() == Query::ANSWERED &&
                         rrset->getName() == q.qname() &&
                         rrset->getType() == q.qtype()) {
@@ -286,12 +286,13 @@
         case CNAME_FOUND:
             // The qname node contains a CNAME.  Add a new task to the
             // queue to look up its target.
-            if (data.size() != 1 || data[0]->getType() != RRType::CNAME()) {
+            if (data.get().size() != 1 ||
+                data.get()[0]->getType() != RRType::CNAME()) {
                 dns_throw (Unexpected, "invalid data");
             }
 
-            m.addRRset(task.section, data[0]);
-            chaseCname(q, task, data[0]);
+            m.addRRset(task.section, data.get()[0]);
+            chaseCname(q, task, data.get()[0]);
             continue;
 
         case REFERRAL_FOUND:
@@ -305,7 +306,7 @@
                     m.setRcode(Rcode::SERVFAIL());
                     return;
                 }
-                BOOST_FOREACH (RRsetPtr rrset, auth) {
+                BOOST_FOREACH (RRsetPtr rrset, auth.get()) {
                     if (rrset->getType() == RRType::DNAME()) {
                         continue;
                     }
@@ -352,7 +353,7 @@
                         // only be one rrset returned in wild.  But
                         // eventually this will need to handle ANY queries,
                         // so wrap it in a BOOST_FOREACH statement anyway.
-                        BOOST_FOREACH (RRsetPtr rrset, wild) {
+                        BOOST_FOREACH (RRsetPtr rrset, wild.get()) {
                             rrset->setName(task.qname);
                             m.addRRset(Section::ANSWER(), rrset);
 
@@ -369,7 +370,7 @@
                                     return;
                                 }
 
-                                BOOST_FOREACH (RRsetPtr rrset, auth) {
+                                BOOST_FOREACH (RRsetPtr rrset, auth.get()) {
                                     if (rrset->getType() == RRType::DNAME()) {
                                         continue;
                                     }
@@ -401,7 +402,7 @@
                     return;
                 }
 
-                m.addRRset(Section::AUTHORITY(), soa[0]);
+                m.addRRset(Section::AUTHORITY(), soa.get()[0]);
                 q.setStatus(Query::FAILURE);
                 return;
             }

Modified: branches/each-ds/src/lib/dns/cpp/rrsetlist.h
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rrsetlist.h (original)
+++ branches/each-ds/src/lib/dns/cpp/rrsetlist.h Tue Feb 16 18:34:41 2010
@@ -39,8 +39,9 @@
 public:
     void addRRset(const RRsetPtr new_rrsetptr);
     const RRsetPtr findRRset(const RRType& rrtype,
-        const RRClass& rrclass = RRClass::IN());
+                             const RRClass& rrclass = RRClass::IN());
     const RRsetPtr findRRset(const RRsetPtr);
+    std::vector<RRsetPtr> get() { return rrsets_; }
 private:
     std::vector<RRsetPtr> rrsets_;
 };




More information about the bind10-changes mailing list