2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 21:18:02 +00:00

[2585] don't replace the name in findAll unless it's wildcard substituion.

This commit is contained in:
JINMEI Tatuya 2013-02-08 18:09:33 -08:00
parent 9b16b116c9
commit 52b0979f34
2 changed files with 16 additions and 6 deletions

View File

@ -865,7 +865,8 @@ InMemoryZoneFinder::findInternal(const isc::dns::Name& name,
const RdataSet* cur_rds = node->getData();
while (cur_rds != NULL) {
target->push_back(createTreeNodeRRset(node, cur_rds, rrclass_,
options, &name));
options,
wild ? &name : NULL));
cur_rds = cur_rds->getNext();
}
LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ANY_SUCCESS).

View File

@ -442,14 +442,23 @@ protected:
}
EXPECT_EQ((expected_flags & ZoneFinder::RESULT_WILDCARD) != 0,
find_result->isWildcard());
EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC_SIGNED)
!= 0, find_result->isNSECSigned());
EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC3_SIGNED)
!= 0, find_result->isNSEC3Signed());
// Convert all rrsets to 'full' ones before checking
EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC_SIGNED) != 0,
find_result->isNSECSigned());
EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC3_SIGNED) != 0,
find_result->isNSEC3Signed());
// Convert all rrsets to 'full' ones before checking. Also, confirm
// each RRset of the vector is of the "same kind" as one would be
// found by the find() method.
std::vector<ConstRRsetPtr> converted_rrsets;
BOOST_FOREACH(ConstRRsetPtr cur_rrset, target) {
converted_rrsets.push_back(convertRRset(cur_rrset));
// As we know findAll() succeeded, this find() should also
// succeed, and the two sets should be "identical".
const ZoneFinderContextPtr result =
finder->find(name, cur_rrset->getType());
ASSERT_TRUE(result->rrset);
EXPECT_TRUE(result->rrset->isSameKind(*cur_rrset));
}
rrsetsCheck(expected_rrsets.begin(), expected_rrsets.end(),
converted_rrsets.begin(), converted_rrsets.end());