BIND 10 trac1063, updated. 4cbf309be8a302afe3bc041da11c24b593464157 [1063] Little bit of logging
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Aug 16 11:30:12 UTC 2011
The branch, trac1063 has been updated
via 4cbf309be8a302afe3bc041da11c24b593464157 (commit)
via b3bcd825cfb9c19a62a7db4d12717e85aca0b1e8 (commit)
via 3f5a0900a568436b011fc14b628b71bb130ae5f7 (commit)
from 3ce7b09732207eac03998fa5e267672760e475c9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4cbf309be8a302afe3bc041da11c24b593464157
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Tue Aug 16 13:29:59 2011 +0200
[1063] Little bit of logging
commit b3bcd825cfb9c19a62a7db4d12717e85aca0b1e8
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Tue Aug 16 13:17:29 2011 +0200
[1063] Few more tests
commit 3f5a0900a568436b011fc14b628b71bb130ae5f7
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Tue Aug 16 13:11:46 2011 +0200
[1063] Split long test
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/database.cc | 10 +
src/lib/datasrc/datasrc_messages.mes | 14 ++
src/lib/datasrc/tests/database_unittest.cc | 332 +++++++++++++++-------------
3 files changed, 203 insertions(+), 153 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/database.cc b/src/lib/datasrc/database.cc
index 287602a..b9d7330 100644
--- a/src/lib/datasrc/database.cc
+++ b/src/lib/datasrc/database.cc
@@ -314,8 +314,14 @@ DatabaseClient::Finder::find(const isc::dns::Name& name,
// (it can be only NS or DNAME here)
result_rrset = found.second;
if (result_rrset->getType() == isc::dns::RRType::NS()) {
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED,
+ DATASRC_DATABASE_FOUND_DELEGATION).
+ arg(superdomain);
result_status = DELEGATION;
} else {
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED,
+ DATASRC_DATABASE_FOUND_DNAME).
+ arg(superdomain);
result_status = DNAME;
}
// Don't search more
@@ -331,7 +337,11 @@ DatabaseClient::Finder::find(const isc::dns::Name& name,
records_found = found.first;
result_rrset = found.second;
if (result_rrset && name != origin &&
+
result_rrset->getType() == isc::dns::RRType::NS()) {
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED,
+ DATASRC_DATABASE_FOUND_DELEGATION_EXACT).
+ arg(name);
result_status = DELEGATION;
} else if (result_rrset && type != isc::dns::RRType::CNAME() &&
result_rrset->getType() == isc::dns::RRType::CNAME()) {
diff --git a/src/lib/datasrc/datasrc_messages.mes b/src/lib/datasrc/datasrc_messages.mes
index 6af4fe6..a080a6a 100644
--- a/src/lib/datasrc/datasrc_messages.mes
+++ b/src/lib/datasrc/datasrc_messages.mes
@@ -90,6 +90,20 @@ most likely points to a logic error in the code, and can be considered a bug.
The current search is aborted. Specific information about the exception is
printed in this error message.
+% DATASRC_DATABASE_FOUND_DELEGATION Found delegation at %1
+When searching for a domain, the program met a delegation to a different zone
+at the given domain name. It will return that one instead.
+
+% DATASRC_DATABASE_FOUND_DELEGATION_EXACT Found delegation at %1 (exact match)
+The program found the domain requested, but it is a delegation point to a
+different zone, therefore it is not authoritative for this domain name.
+It will return the NS record instead.
+
+% DATASRC_DATABASE_FOUND_DNAME Found DNAME at %1
+When searching for a domain, the program met a DNAME redirection to a different
+place in the domain space at the given domain name. It will return that one
+instead.
+
% DATASRC_DATABASE_FOUND_NXDOMAIN search in datasource %1 resulted in NXDOMAIN for %2/%3/%4
The data returned by the database backend did not contain any data for the given
domain name, class and type.
diff --git a/src/lib/datasrc/tests/database_unittest.cc b/src/lib/datasrc/tests/database_unittest.cc
index f4b5d09..9efb1dd 100644
--- a/src/lib/datasrc/tests/database_unittest.cc
+++ b/src/lib/datasrc/tests/database_unittest.cc
@@ -272,6 +272,8 @@ private:
addCurName("delegation.example.org.");
addRecord("A", "3600", "", "192.0.2.1");
addCurName("ns.delegation.example.org.");
+ addRecord("A", "3600", "", "192.0.2.1");
+ addCurName("deep.below.delegation.example.org.");
addRecord("A", "3600", "", "192.0.2.1");
addRecord("DNAME", "3600", "", "dname.example.com.");
@@ -336,6 +338,21 @@ public:
EXPECT_EQ(42, finder->zone_id());
EXPECT_EQ(current_database_, &finder->database());
}
+
+ shared_ptr<DatabaseClient::Finder> getFinder() {
+ DataSourceClient::FindResult zone(
+ client_->findZone(Name("example.org")));
+ EXPECT_EQ(result::SUCCESS, zone.code);
+ shared_ptr<DatabaseClient::Finder> finder(
+ dynamic_pointer_cast<DatabaseClient::Finder>(zone.zone_finder));
+ EXPECT_EQ(42, finder->zone_id());
+ EXPECT_FALSE(current_database_->searchRunning());
+
+ return (finder);
+ }
+
+ std::vector<std::string> expected_rdatas_;
+ std::vector<std::string> expected_sig_rdatas_;
};
TEST_F(DatabaseClientTest, zoneNotFound) {
@@ -388,24 +405,24 @@ doFindTest(shared_ptr<DatabaseClient::Finder> finder,
const isc::dns::RRType& expected_type,
const isc::dns::RRTTL expected_ttl,
ZoneFinder::Result expected_result,
- const std::vector<std::string>& expected_rdatas,
- const std::vector<std::string>& expected_sig_rdatas,
+ const std::vector<std::string>& expected_rdatas_,
+ const std::vector<std::string>& expected_sig_rdatas_,
const isc::dns::Name& expected_name = isc::dns::Name::ROOT_NAME())
{
SCOPED_TRACE("doFindTest " + name.toText() + " " + type.toText());
ZoneFinder::FindResult result =
finder->find(name, type, NULL, ZoneFinder::FIND_DEFAULT);
ASSERT_EQ(expected_result, result.code) << name << " " << type;
- if (expected_rdatas.size() > 0) {
+ if (expected_rdatas_.size() > 0) {
checkRRset(result.rrset, expected_name != Name(".") ? expected_name :
name, finder->getClass(), expected_type, expected_ttl,
- expected_rdatas);
+ expected_rdatas_);
- if (expected_sig_rdatas.size() > 0) {
+ if (expected_sig_rdatas_.size() > 0) {
checkRRset(result.rrset->getRRsig(), expected_name != Name(".") ?
expected_name : name, finder->getClass(),
isc::dns::RRType::RRSIG(), expected_ttl,
- expected_sig_rdatas);
+ expected_sig_rdatas_);
} else {
EXPECT_EQ(isc::dns::RRsetPtr(), result.rrset->getRRsig());
}
@@ -416,227 +433,220 @@ doFindTest(shared_ptr<DatabaseClient::Finder> finder,
} // end anonymous namespace
TEST_F(DatabaseClientTest, find) {
- DataSourceClient::FindResult zone(client_->findZone(Name("example.org")));
- ASSERT_EQ(result::SUCCESS, zone.code);
- shared_ptr<DatabaseClient::Finder> finder(
- dynamic_pointer_cast<DatabaseClient::Finder>(zone.zone_finder));
- EXPECT_EQ(42, finder->zone_id());
- EXPECT_FALSE(current_database_->searchRunning());
- std::vector<std::string> expected_rdatas;
- std::vector<std::string> expected_sig_rdatas;
+ shared_ptr<DatabaseClient::Finder> finder(getFinder());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
doFindTest(finder, isc::dns::Name("www.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_rdatas.push_back("192.0.2.2");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_rdatas_.push_back("192.0.2.2");
doFindTest(finder, isc::dns::Name("www2.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("2001:db8::1");
- expected_rdatas.push_back("2001:db8::2");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("2001:db8::1");
+ expected_rdatas_.push_back("2001:db8::2");
doFindTest(finder, isc::dns::Name("www.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::AAAA(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
doFindTest(finder, isc::dns::Name("www.example.org."),
isc::dns::RRType::TXT(), isc::dns::RRType::TXT(),
isc::dns::RRTTL(3600),
ZoneFinder::NXRRSET,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("www.example.org.");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("www.example.org.");
doFindTest(finder, isc::dns::Name("cname.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::CNAME(),
isc::dns::RRTTL(3600),
ZoneFinder::CNAME,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("www.example.org.");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("www.example.org.");
doFindTest(finder, isc::dns::Name("cname.example.org."),
isc::dns::RRType::CNAME(), isc::dns::RRType::CNAME(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
doFindTest(finder, isc::dns::Name("doesnotexist.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::NXDOMAIN,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12346 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12346 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signed1.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("2001:db8::1");
- expected_rdatas.push_back("2001:db8::2");
- expected_sig_rdatas.push_back("AAAA 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("2001:db8::1");
+ expected_rdatas_.push_back("2001:db8::2");
+ expected_sig_rdatas_.push_back("AAAA 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signed1.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::AAAA(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
doFindTest(finder, isc::dns::Name("signed1.example.org."),
isc::dns::RRType::TXT(), isc::dns::RRType::TXT(),
isc::dns::RRTTL(3600),
ZoneFinder::NXRRSET,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("www.example.org.");
- expected_sig_rdatas.push_back("CNAME 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("www.example.org.");
+ expected_sig_rdatas_.push_back("CNAME 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signedcname1.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::CNAME(),
isc::dns::RRTTL(3600),
ZoneFinder::CNAME,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12346 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12346 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signed2.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("2001:db8::2");
- expected_rdatas.push_back("2001:db8::1");
- expected_sig_rdatas.push_back("AAAA 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("2001:db8::2");
+ expected_rdatas_.push_back("2001:db8::1");
+ expected_sig_rdatas_.push_back("AAAA 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signed2.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::AAAA(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
doFindTest(finder, isc::dns::Name("signed2.example.org."),
isc::dns::RRType::TXT(), isc::dns::RRType::TXT(),
isc::dns::RRTTL(3600),
ZoneFinder::NXRRSET,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("www.example.org.");
- expected_sig_rdatas.push_back("CNAME 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("www.example.org.");
+ expected_sig_rdatas_.push_back("CNAME 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("signedcname2.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::CNAME(),
isc::dns::RRTTL(3600),
ZoneFinder::CNAME,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("acnamesig1.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("acnamesig2.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("acnamesig3.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_rdatas.push_back("192.0.2.2");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_rdatas_.push_back("192.0.2.2");
doFindTest(finder, isc::dns::Name("ttldiff1.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(360),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_rdatas.push_back("192.0.2.2");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_rdatas_.push_back("192.0.2.2");
doFindTest(finder, isc::dns::Name("ttldiff2.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(360),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
@@ -712,112 +722,128 @@ TEST_F(DatabaseClientTest, find) {
// This RRSIG has the wrong sigtype field, which should be
// an error if we decide to keep using that field
// Right now the field is ignored, so it does not error
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.push_back("A 5 3 3600 20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("badsigtype.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
isc::dns::RRTTL(3600),
ZoneFinder::SUCCESS,
- expected_rdatas, expected_sig_rdatas);
+ expected_rdatas_, expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
+}
+
+TEST_F(DatabaseClientTest, findDelegation) {
+ shared_ptr<DatabaseClient::Finder> finder(getFinder());
// The apex should not be considered delegation point and we can access
// data
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
doFindTest(finder, isc::dns::Name("example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
- isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
- expected_rdatas.push_back("ns.example.com.");
- expected_sig_rdatas.push_back("NS 5 3 3600 20000101000000 20000201000000 "
+ expected_rdatas_.clear();
+ expected_rdatas_.push_back("ns.example.com.");
+ expected_sig_rdatas_.push_back("NS 5 3 3600 20000101000000 20000201000000 "
"12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("example.org."),
isc::dns::RRType::NS(), isc::dns::RRType::NS(),
- isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
// Check when we ask for something below delegation point, we get the NS
// (Both when the RRset there exists and doesn't)
- expected_rdatas.clear();
- expected_sig_rdatas.clear();
- expected_rdatas.push_back("ns.example.com.");
- expected_rdatas.push_back("ns.delegation.example.org.");
- expected_sig_rdatas.push_back("NS 5 3 3600 20000101000000 20000201000000 "
+ expected_rdatas_.clear();
+ expected_sig_rdatas_.clear();
+ expected_rdatas_.push_back("ns.example.com.");
+ expected_rdatas_.push_back("ns.delegation.example.org.");
+ expected_sig_rdatas_.push_back("NS 5 3 3600 20000101000000 20000201000000 "
"12345 example.org. FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("ns.delegation.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::NS(),
- isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas,
- expected_sig_rdatas, isc::dns::Name("delegation.example.org."));
+ isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas_,
+ expected_sig_rdatas_,
+ isc::dns::Name("delegation.example.org."));
EXPECT_FALSE(current_database_->searchRunning());
doFindTest(finder, isc::dns::Name("ns.delegation.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::NS(),
- isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas,
- expected_sig_rdatas, isc::dns::Name("delegation.example.org."));
+ isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas_,
+ expected_sig_rdatas_,
+ isc::dns::Name("delegation.example.org."));
+ doFindTest(finder, isc::dns::Name("deep.below.delegation.example.org."),
+ isc::dns::RRType::AAAA(), isc::dns::RRType::NS(),
+ isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas_,
+ expected_sig_rdatas_,
+ isc::dns::Name("delegation.example.org."));
EXPECT_FALSE(current_database_->searchRunning());
// Even when we check directly at the delegation point, we should get
// the NS
doFindTest(finder, isc::dns::Name("delegation.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::NS(),
- isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
// And when we ask direcly for the NS, we should still get delegation
doFindTest(finder, isc::dns::Name("delegation.example.org."),
isc::dns::RRType::NS(), isc::dns::RRType::NS(),
- isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::DELEGATION, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
// Now test delegation. If it is below the delegation point, we should get
// the DNAME (the one with data under DNAME is invalid zone, but we test
// the behaviour anyway just to make sure)
- expected_rdatas.clear();
- expected_rdatas.push_back("dname.example.com.");
- expected_sig_rdatas.clear();
- expected_sig_rdatas.push_back("DNAME 5 3 3600 20000101000000 "
+ expected_rdatas_.clear();
+ expected_rdatas_.push_back("dname.example.com.");
+ expected_sig_rdatas_.clear();
+ expected_sig_rdatas_.push_back("DNAME 5 3 3600 20000101000000 "
"20000201000000 12345 example.org. "
"FAKEFAKEFAKE");
doFindTest(finder, isc::dns::Name("below.dname.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::DNAME(),
- isc::dns::RRTTL(3600), ZoneFinder::DNAME, expected_rdatas,
- expected_sig_rdatas, isc::dns::Name("dname.example.org."));
+ isc::dns::RRTTL(3600), ZoneFinder::DNAME, expected_rdatas_,
+ expected_sig_rdatas_, isc::dns::Name("dname.example.org."));
EXPECT_FALSE(current_database_->searchRunning());
doFindTest(finder, isc::dns::Name("below.dname.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::DNAME(),
- isc::dns::RRTTL(3600), ZoneFinder::DNAME, expected_rdatas,
- expected_sig_rdatas, isc::dns::Name("dname.example.org."));
+ isc::dns::RRTTL(3600), ZoneFinder::DNAME, expected_rdatas_,
+ expected_sig_rdatas_, isc::dns::Name("dname.example.org."));
+ EXPECT_FALSE(current_database_->searchRunning());
+ doFindTest(finder, isc::dns::Name("really.deep.below.dname.example.org."),
+ isc::dns::RRType::AAAA(), isc::dns::RRType::DNAME(),
+ isc::dns::RRTTL(3600), ZoneFinder::DNAME, expected_rdatas_,
+ expected_sig_rdatas_, isc::dns::Name("dname.example.org."));
EXPECT_FALSE(current_database_->searchRunning());
// Asking direcly for DNAME should give SUCCESS
doFindTest(finder, isc::dns::Name("dname.example.org."),
isc::dns::RRType::DNAME(), isc::dns::RRType::DNAME(),
- isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas_,
+ expected_sig_rdatas_);
// But we don't delegate at DNAME point
- expected_rdatas.clear();
- expected_rdatas.push_back("192.0.2.1");
- expected_sig_rdatas.clear();
+ expected_rdatas_.clear();
+ expected_rdatas_.push_back("192.0.2.1");
+ expected_sig_rdatas_.clear();
doFindTest(finder, isc::dns::Name("dname.example.org."),
isc::dns::RRType::A(), isc::dns::RRType::A(),
- isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::SUCCESS, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
- expected_rdatas.clear();
+ expected_rdatas_.clear();
doFindTest(finder, isc::dns::Name("dname.example.org."),
isc::dns::RRType::AAAA(), isc::dns::RRType::AAAA(),
- isc::dns::RRTTL(3600), ZoneFinder::NXRRSET, expected_rdatas,
- expected_sig_rdatas);
+ isc::dns::RRTTL(3600), ZoneFinder::NXRRSET, expected_rdatas_,
+ expected_sig_rdatas_);
EXPECT_FALSE(current_database_->searchRunning());
// This is broken dname, it contains two targets
More information about the bind10-changes
mailing list