[svn] commit: r678 - in /experiments/each-query/src/lib/auth/cpp: TODO data_source.cc data_source.h data_source_static.cc data_source_static.h query.h
BIND 10 source code commits
bind10-changes at lists.isc.org
Sat Jan 30 01:24:03 UTC 2010
Author: each
Date: Sat Jan 30 01:24:03 2010
New Revision: 678
Log:
checkpoint
Added:
experiments/each-query/src/lib/auth/cpp/TODO
Modified:
experiments/each-query/src/lib/auth/cpp/data_source.cc
experiments/each-query/src/lib/auth/cpp/data_source.h
experiments/each-query/src/lib/auth/cpp/data_source_static.cc
experiments/each-query/src/lib/auth/cpp/data_source_static.h
experiments/each-query/src/lib/auth/cpp/query.h
Modified: experiments/each-query/src/lib/auth/cpp/data_source.cc
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source.cc (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source.cc Sat Jan 30 01:24:03 2010
@@ -18,10 +18,11 @@
Message& m = q.message();
while (!q.tasks().empty()) {
+ bool found = false;
QueryTaskPtr task = q.tasks().front();
q.tasks().pop();
- const DataSrc* ds = findClosestEnclosure(task->qname, container);
+ const DataSrc* ds = findClosestEnclosure(task->qname, container, found);
if (ds == NULL) {
result = ZONE_NOT_FOUND;
Modified: experiments/each-query/src/lib/auth/cpp/data_source.h
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source.h (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source.h Sat Jan 30 01:24:03 2010
@@ -59,7 +59,8 @@
RRsetList& target) const = 0;
virtual const DataSrc* findClosestEnclosure(const Name& qname,
- Name& container) const = 0;
+ Name& container,
+ bool& found) const = 0;
// Optional 'low-level' methods. These will have stub implementations
// in the general DataSrc class but MAY be overwritten by subclasses
@@ -91,7 +92,8 @@
RRsetList& target) const = 0;
virtual const DataSrc* findClosestEnclosure(const Name& qname,
- Name& container) const = 0;
+ Name& container,
+ bool& found) const = 0;
const RRClass& getClass() const { return rrclass; }
void setClass(RRClass& c) { rrclass = c; }
@@ -118,7 +120,8 @@
};
const DataSrc* findClosestEnclosure(const Name& qname,
- Name& container) const
+ Name& container,
+ bool& found) const
{
const DataSrc* best = NULL;
BOOST_FOREACH (DataSrc* ds, data_sources) {
@@ -128,7 +131,7 @@
continue;
}
- source = ds->findClosestEnclosure(qname, container);
+ source = ds->findClosestEnclosure(qname, container, found);
if (source != NULL) {
best = source;
}
Modified: experiments/each-query/src/lib/auth/cpp/data_source_static.cc
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source_static.cc (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source_static.cc Sat Jan 30 01:24:03 2010
@@ -30,11 +30,12 @@
}
const DataSrc*
-StaticDataSrc::findClosestEnclosure(const Name& qname, Name& container) const {
+StaticDataSrc::findClosestEnclosure(const Name& qname, Name& container, bool& found) const {
NameComparisonResult::NameRelation version_cmp = qname.compare(version_name).getRelation();
if (version_cmp == NameComparisonResult::EQUAL ||
version_cmp == NameComparisonResult::SUBDOMAIN) {
if (version_name.compare(container).getRelation() == NameComparisonResult::SUBDOMAIN) {
+ found = true;
container = version_name;
return this;
} else {
@@ -45,6 +46,7 @@
if (authors_cmp == NameComparisonResult::EQUAL ||
authors_cmp == NameComparisonResult::SUBDOMAIN) {
if (authors_name.compare(container).getRelation() == NameComparisonResult::SUBDOMAIN) {
+ found = true;
container = authors_name;
return this;
} else {
Modified: experiments/each-query/src/lib/auth/cpp/data_source_static.h
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source_static.h (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source_static.h Sat Jan 30 01:24:03 2010
@@ -36,7 +36,8 @@
~StaticDataSrc() {};
const DataSrc* findClosestEnclosure(const Name& qname,
- Name& container) const;
+ Name& container,
+ bool& found) const;
DSResult findRRset(const Name& qname,
const RRClass& qclass,
Modified: experiments/each-query/src/lib/auth/cpp/query.h
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/query.h (original)
+++ experiments/each-query/src/lib/auth/cpp/query.h Sat Jan 30 01:24:03 2010
@@ -86,7 +86,7 @@
qclass_ = &query->getClass();
qtype_ = &query->getType();
QueryTask *qt = new QueryTask(*qname_, *qclass_, *qtype_,
- Section::ANSWER());
+ Section::ANSWER());
querytasks.push(QueryTaskPtr(qt));
};
More information about the bind10-changes
mailing list