[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