// If none of the above succeeds, we conclude the name doesn't exist in
// the zone, and throw an OutOfZone exception.
FindNodeResult findNode(const ZoneData& zone_data,
- const Name& name,
+ const LabelSequence& name_labels,
ZoneChain& node_path,
ZoneFinder::FindOptions options)
{
FindState state((options & ZoneFinder::FIND_GLUE_OK) != 0);
const ZoneTree& tree(zone_data.getZoneTree());
- ZoneTree::Result result = tree.find(isc::dns::LabelSequence(name),
- &node, node_path, cutCallback,
- &state);
+ const ZoneTree::Result result = tree.find(name_labels, &node, node_path,
+ cutCallback, &state);
const unsigned int zonecut_flag =
(state.zonecut_node_ != NULL) ? FindNodeResult::FIND_ZONECUT : 0;
if (result == ZoneTree::EXACTMATCH) {
if (node_path.getLastComparisonResult().getRelation() ==
NameComparisonResult::SUPERDOMAIN) { // empty node, so NXRRSET
LOG_DEBUG(logger, DBG_TRACE_DATA,
- DATASRC_MEM_SUPER_STOP).arg(name);
+ DATASRC_MEM_SUPER_STOP).arg(name_labels);
const ZoneNode* nsec_node;
const RdataSet* nsec_rds = getClosestNSEC(zone_data,
node_path,
// baz.foo.wild.example. The common ancestor, foo.wild.example,
// should cancel wildcard. Treat it as NXDOMAIN.
LOG_DEBUG(logger, DBG_TRACE_DATA,
- DATASRC_MEM_WILDCARD_CANCEL).arg(name);
+ DATASRC_MEM_WILDCARD_CANCEL).arg(name_labels);
const ZoneNode* nsec_node;
const RdataSet* nsec_rds = getClosestNSEC(zone_data,
node_path,
FindNodeResult::FIND_WILDCARD | zonecut_flag));
}
- LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_NOT_FOUND).arg(name);
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_NOT_FOUND).
+ arg(name_labels);
const ZoneNode* nsec_node;
const RdataSet* nsec_rds = getClosestNSEC(zone_data, node_path,
&nsec_node, options);
} else {
// If the name is neither an exact or partial match, it is
// out of bailiwick, which is considered an error.
- isc_throw(OutOfZone, name.toText() << " not in " <<
+ isc_throw(OutOfZone, name_labels << " not in " <<
zone_data.getOriginNode()->getName());
}
}
// in findNode(). We simply construct a result structure and return.
ZoneChain node_path;
const FindNodeResult node_result =
- findNode(zone_data_, name, node_path, options);
+ findNode(zone_data_, LabelSequence(name), node_path, options);
if (node_result.code != SUCCESS) {
return (createFindResult(rrclass_, zone_data_, node_result.code,
node_result.rrset, node_result.node,