|
@@ -21,7 +21,6 @@
|
|
#include <dns/rrclass.h>
|
|
#include <dns/rrclass.h>
|
|
#include <dns/rrsetlist.h>
|
|
#include <dns/rrsetlist.h>
|
|
#include <dns/masterload.h>
|
|
#include <dns/masterload.h>
|
|
-#include <log/macros.h>
|
|
|
|
|
|
|
|
#include <datasrc/memory_datasrc.h>
|
|
#include <datasrc/memory_datasrc.h>
|
|
#include <datasrc/rbtree.h>
|
|
#include <datasrc/rbtree.h>
|
|
@@ -96,7 +95,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
l > origin_labels;
|
|
l > origin_labels;
|
|
--l, wname = wname.split(1)) {
|
|
--l, wname = wname.split(1)) {
|
|
if (wname.isWildcard()) {
|
|
if (wname.isWildcard()) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_ADD_WILDCARD).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ADD_WILDCARD).
|
|
arg(name);
|
|
arg(name);
|
|
// Ensure a separate level exists for the "wildcarding" name,
|
|
// Ensure a separate level exists for the "wildcarding" name,
|
|
// and mark the node as "wild".
|
|
// and mark the node as "wild".
|
|
@@ -134,13 +133,13 @@ struct MemoryZone::MemoryZoneImpl {
|
|
// (depending on how we support DNSSEC). We should revisit it
|
|
// (depending on how we support DNSSEC). We should revisit it
|
|
// at that point.
|
|
// at that point.
|
|
if (!domain->empty()) {
|
|
if (!domain->empty()) {
|
|
- logger.error(DATASRC_MEM_CNAME_TO_NONEMPTY).
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_CNAME_TO_NONEMPTY).
|
|
arg(rrset->getName());
|
|
arg(rrset->getName());
|
|
isc_throw(AddError, "CNAME can't be added with other data for "
|
|
isc_throw(AddError, "CNAME can't be added with other data for "
|
|
<< rrset->getName());
|
|
<< rrset->getName());
|
|
}
|
|
}
|
|
} else if (domain->find(RRType::CNAME()) != domain->end()) {
|
|
} else if (domain->find(RRType::CNAME()) != domain->end()) {
|
|
- logger.error(DATASRC_MEM_CNAME_COEXIST).arg(rrset->getName());
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_CNAME_COEXIST).arg(rrset->getName());
|
|
isc_throw(AddError, "CNAME and " << rrset->getType() <<
|
|
isc_throw(AddError, "CNAME and " << rrset->getType() <<
|
|
" can't coexist for " << rrset->getName());
|
|
" can't coexist for " << rrset->getName());
|
|
}
|
|
}
|
|
@@ -158,7 +157,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
(rrset->getType() == RRType::NS() &&
|
|
(rrset->getType() == RRType::NS() &&
|
|
domain->find(RRType::DNAME()) != domain->end())))
|
|
domain->find(RRType::DNAME()) != domain->end())))
|
|
{
|
|
{
|
|
- logger.error(DATASRC_MEM_DNAME_NS).arg(rrset->getName());
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_DNAME_NS).arg(rrset->getName());
|
|
isc_throw(AddError, "DNAME can't coexist with NS in non-apex "
|
|
isc_throw(AddError, "DNAME can't coexist with NS in non-apex "
|
|
"domain " << rrset->getName());
|
|
"domain " << rrset->getName());
|
|
}
|
|
}
|
|
@@ -180,7 +179,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
// XXX: this is not only for CNAME or DNAME. We should generalize
|
|
// XXX: this is not only for CNAME or DNAME. We should generalize
|
|
// this code for all other "singleton RR types" (such as SOA) in a
|
|
// this code for all other "singleton RR types" (such as SOA) in a
|
|
// separate task.
|
|
// separate task.
|
|
- logger.error(DATASRC_MEM_SINGLETON).arg(rrset->getName()).
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_SINGLETON).arg(rrset->getName()).
|
|
arg(rrset->getType());
|
|
arg(rrset->getType());
|
|
isc_throw(AddError, "multiple RRs of singleton type for "
|
|
isc_throw(AddError, "multiple RRs of singleton type for "
|
|
<< rrset->getName());
|
|
<< rrset->getName());
|
|
@@ -190,7 +189,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
if (compare.getRelation() != NameComparisonResult::SUPERDOMAIN &&
|
|
if (compare.getRelation() != NameComparisonResult::SUPERDOMAIN &&
|
|
compare.getRelation() != NameComparisonResult::EQUAL)
|
|
compare.getRelation() != NameComparisonResult::EQUAL)
|
|
{
|
|
{
|
|
- logger.error(DATASRC_MEM_OUT_OF_ZONE).arg(rrset->getName()).
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_OUT_OF_ZONE).arg(rrset->getName()).
|
|
arg(origin_);
|
|
arg(origin_);
|
|
isc_throw(OutOfZone, "The name " << rrset->getName() <<
|
|
isc_throw(OutOfZone, "The name " << rrset->getName() <<
|
|
" is not contained in zone " << origin_);
|
|
" is not contained in zone " << origin_);
|
|
@@ -206,12 +205,14 @@ struct MemoryZone::MemoryZoneImpl {
|
|
// behavior.
|
|
// behavior.
|
|
if (rrset->getName().isWildcard()) {
|
|
if (rrset->getName().isWildcard()) {
|
|
if (rrset->getType() == RRType::NS()) {
|
|
if (rrset->getType() == RRType::NS()) {
|
|
- logger.error(DATASRC_MEM_WILDCARD_NS).arg(rrset->getName());
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_WILDCARD_NS).
|
|
|
|
+ arg(rrset->getName());
|
|
isc_throw(AddError, "Invalid NS owner name (wildcard): " <<
|
|
isc_throw(AddError, "Invalid NS owner name (wildcard): " <<
|
|
rrset->getName());
|
|
rrset->getName());
|
|
}
|
|
}
|
|
if (rrset->getType() == RRType::DNAME()) {
|
|
if (rrset->getType() == RRType::DNAME()) {
|
|
- logger.error(DATASRC_MEM_WILDCARD_DNAME).arg(rrset->getName());
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_WILDCARD_DNAME).
|
|
|
|
+ arg(rrset->getName());
|
|
isc_throw(AddError, "Invalid DNAME owner name (wildcard): " <<
|
|
isc_throw(AddError, "Invalid DNAME owner name (wildcard): " <<
|
|
rrset->getName());
|
|
rrset->getName());
|
|
}
|
|
}
|
|
@@ -287,8 +288,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
void addFromLoad(const ConstRRsetPtr& set, DomainTree* domains) {
|
|
void addFromLoad(const ConstRRsetPtr& set, DomainTree* domains) {
|
|
switch (add(set, domains)) {
|
|
switch (add(set, domains)) {
|
|
case result::EXIST:
|
|
case result::EXIST:
|
|
- logger.error(DATASRC_MEM_DUP_RRSET).arg(set->getName()).
|
|
|
|
- arg(set->getType());
|
|
|
|
|
|
+ LOG_ERROR(logger, DATASRC_MEM_DUP_RRSET).
|
|
|
|
+ arg(set->getName()).arg(set->getType());
|
|
isc_throw(dns::MasterLoadError, "Duplicate rrset: " <<
|
|
isc_throw(dns::MasterLoadError, "Duplicate rrset: " <<
|
|
set->toText());
|
|
set->toText());
|
|
case result::SUCCESS:
|
|
case result::SUCCESS:
|
|
@@ -325,7 +326,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
const Domain::const_iterator foundDNAME(node.getData()->find(
|
|
const Domain::const_iterator foundDNAME(node.getData()->find(
|
|
RRType::DNAME()));
|
|
RRType::DNAME()));
|
|
if (foundDNAME != node.getData()->end()) {
|
|
if (foundDNAME != node.getData()->end()) {
|
|
- logger.debug(DBG_TRACE_DETAILED, DATASRC_MEM_DNAME_ENCOUNTERED);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED,
|
|
|
|
+ DATASRC_MEM_DNAME_ENCOUNTERED);
|
|
state->dname_node_ = &node;
|
|
state->dname_node_ = &node;
|
|
state->rrset_ = foundDNAME->second;
|
|
state->rrset_ = foundDNAME->second;
|
|
// No more processing below the DNAME (RFC 2672, section 3
|
|
// No more processing below the DNAME (RFC 2672, section 3
|
|
@@ -347,7 +349,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
return (false);
|
|
return (false);
|
|
}
|
|
}
|
|
|
|
|
|
- logger.debug(DBG_TRACE_DETAILED, DATASRC_MEM_NS_ENCOUNTERED);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED, DATASRC_MEM_NS_ENCOUNTERED);
|
|
|
|
|
|
// BIND 9 checks if this node is not the origin. That's probably
|
|
// BIND 9 checks if this node is not the origin. That's probably
|
|
// because it can support multiple versions for dynamic updates
|
|
// because it can support multiple versions for dynamic updates
|
|
@@ -384,7 +386,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
rrset, bool rename)
|
|
rrset, bool rename)
|
|
{
|
|
{
|
|
if (rename) {
|
|
if (rename) {
|
|
- logger.debug(DBG_TRACE_DETAILED, DATASRC_MEM_RENAME).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DETAILED, DATASRC_MEM_RENAME).
|
|
arg(rrset->getName()).arg(name);
|
|
arg(rrset->getName()).arg(name);
|
|
/*
|
|
/*
|
|
* We lose a signature here. But it would be wrong anyway, because
|
|
* We lose a signature here. But it would be wrong anyway, because
|
|
@@ -408,7 +410,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
FindResult find(const Name& name, RRType type,
|
|
FindResult find(const Name& name, RRType type,
|
|
RRsetList* target, const FindOptions options) const
|
|
RRsetList* target, const FindOptions options) const
|
|
{
|
|
{
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_FIND).arg(name).arg(type);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_FIND).arg(name).
|
|
|
|
+ arg(type);
|
|
// Get the node
|
|
// Get the node
|
|
DomainNode* node(NULL);
|
|
DomainNode* node(NULL);
|
|
FindState state(options);
|
|
FindState state(options);
|
|
@@ -435,7 +438,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
* is NULL.
|
|
* is NULL.
|
|
*/
|
|
*/
|
|
if (state.dname_node_ != NULL) {
|
|
if (state.dname_node_ != NULL) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_DNAME_FOUND).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_DNAME_FOUND).
|
|
arg(state.rrset_->getName());
|
|
arg(state.rrset_->getName());
|
|
// We were traversing a DNAME node (and wanted to go
|
|
// We were traversing a DNAME node (and wanted to go
|
|
// lower below it), so return the DNAME
|
|
// lower below it), so return the DNAME
|
|
@@ -443,7 +446,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
rename)));
|
|
rename)));
|
|
}
|
|
}
|
|
if (state.zonecut_node_ != NULL) {
|
|
if (state.zonecut_node_ != NULL) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_DELEG_FOUND).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_DELEG_FOUND).
|
|
arg(state.rrset_->getName());
|
|
arg(state.rrset_->getName());
|
|
return (FindResult(DELEGATION, prepareRRset(name,
|
|
return (FindResult(DELEGATION, prepareRRset(name,
|
|
state.rrset_, rename)));
|
|
state.rrset_, rename)));
|
|
@@ -493,7 +496,7 @@ struct MemoryZone::MemoryZoneImpl {
|
|
if (node_path.getLastComparisonResult().getRelation() ==
|
|
if (node_path.getLastComparisonResult().getRelation() ==
|
|
NameComparisonResult::COMMONANCESTOR && node_path.
|
|
NameComparisonResult::COMMONANCESTOR && node_path.
|
|
getLastComparisonResult().getCommonLabels() > 1) {
|
|
getLastComparisonResult().getCommonLabels() > 1) {
|
|
- logger.debug(DBG_TRACE_DATA,
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA,
|
|
DATASRC_MEM_WILDCARD_CANCEL).arg(name);
|
|
DATASRC_MEM_WILDCARD_CANCEL).arg(name);
|
|
return (FindResult(NXDOMAIN, ConstRRsetPtr()));
|
|
return (FindResult(NXDOMAIN, ConstRRsetPtr()));
|
|
}
|
|
}
|
|
@@ -517,7 +520,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
|
|
|
|
// fall through
|
|
// fall through
|
|
case DomainTree::NOTFOUND:
|
|
case DomainTree::NOTFOUND:
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_NOTFOUND).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_NOTFOUND).
|
|
|
|
+ arg(name);
|
|
return (FindResult(NXDOMAIN, ConstRRsetPtr()));
|
|
return (FindResult(NXDOMAIN, ConstRRsetPtr()));
|
|
case DomainTree::EXACTMATCH: // This one is OK, handle it
|
|
case DomainTree::EXACTMATCH: // This one is OK, handle it
|
|
break;
|
|
break;
|
|
@@ -529,7 +533,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
// If there is an exact match but the node is empty, it's equivalent
|
|
// If there is an exact match but the node is empty, it's equivalent
|
|
// to NXRRSET.
|
|
// to NXRRSET.
|
|
if (node->isEmpty()) {
|
|
if (node->isEmpty()) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_DOMAIN_EMPTY).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_DOMAIN_EMPTY).
|
|
|
|
+ arg(name);
|
|
return (FindResult(NXRRSET, ConstRRsetPtr()));
|
|
return (FindResult(NXRRSET, ConstRRsetPtr()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -540,8 +545,8 @@ struct MemoryZone::MemoryZoneImpl {
|
|
if (node->getFlag(DomainNode::FLAG_CALLBACK) && node != origin_data_) {
|
|
if (node->getFlag(DomainNode::FLAG_CALLBACK) && node != origin_data_) {
|
|
found = node->getData()->find(RRType::NS());
|
|
found = node->getData()->find(RRType::NS());
|
|
if (found != node->getData()->end()) {
|
|
if (found != node->getData()->end()) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_EXACT_DELEGATION).
|
|
|
|
- arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA,
|
|
|
|
+ DATASRC_MEM_EXACT_DELEGATION).arg(name);
|
|
return (FindResult(DELEGATION, prepareRRset(name,
|
|
return (FindResult(DELEGATION, prepareRRset(name,
|
|
found->second, rename)));
|
|
found->second, rename)));
|
|
}
|
|
}
|
|
@@ -557,14 +562,15 @@ struct MemoryZone::MemoryZoneImpl {
|
|
boost::const_pointer_cast<RRset>(prepareRRset(name,
|
|
boost::const_pointer_cast<RRset>(prepareRRset(name,
|
|
found->second, rename)));
|
|
found->second, rename)));
|
|
}
|
|
}
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_ANY_SUCCESS).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ANY_SUCCESS).
|
|
|
|
+ arg(name);
|
|
return (FindResult(SUCCESS, ConstRRsetPtr()));
|
|
return (FindResult(SUCCESS, ConstRRsetPtr()));
|
|
}
|
|
}
|
|
|
|
|
|
found = node->getData()->find(type);
|
|
found = node->getData()->find(type);
|
|
if (found != node->getData()->end()) {
|
|
if (found != node->getData()->end()) {
|
|
// Good, it is here
|
|
// Good, it is here
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_SUCCESS).arg(name).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_SUCCESS).arg(name).
|
|
arg(type);
|
|
arg(type);
|
|
return (FindResult(SUCCESS, prepareRRset(name, found->second,
|
|
return (FindResult(SUCCESS, prepareRRset(name, found->second,
|
|
rename)));
|
|
rename)));
|
|
@@ -572,13 +578,14 @@ struct MemoryZone::MemoryZoneImpl {
|
|
// Next, try CNAME.
|
|
// Next, try CNAME.
|
|
found = node->getData()->find(RRType::CNAME());
|
|
found = node->getData()->find(RRType::CNAME());
|
|
if (found != node->getData()->end()) {
|
|
if (found != node->getData()->end()) {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_CNAME).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_CNAME).arg(name);
|
|
return (FindResult(CNAME, prepareRRset(name, found->second,
|
|
return (FindResult(CNAME, prepareRRset(name, found->second,
|
|
rename)));
|
|
rename)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// No exact match or CNAME. Return NXRRSET.
|
|
// No exact match or CNAME. Return NXRRSET.
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_NXRRSET).arg(type).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_NXRRSET).arg(type).
|
|
|
|
+ arg(name);
|
|
return (FindResult(NXRRSET, ConstRRsetPtr()));
|
|
return (FindResult(NXRRSET, ConstRRsetPtr()));
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -586,12 +593,12 @@ struct MemoryZone::MemoryZoneImpl {
|
|
MemoryZone::MemoryZone(const RRClass& zone_class, const Name& origin) :
|
|
MemoryZone::MemoryZone(const RRClass& zone_class, const Name& origin) :
|
|
impl_(new MemoryZoneImpl(zone_class, origin))
|
|
impl_(new MemoryZoneImpl(zone_class, origin))
|
|
{
|
|
{
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_CREATE).arg(origin).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_CREATE).arg(origin).
|
|
arg(zone_class);
|
|
arg(zone_class);
|
|
}
|
|
}
|
|
|
|
|
|
MemoryZone::~MemoryZone() {
|
|
MemoryZone::~MemoryZone() {
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_DESTROY).arg(getOrigin()).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_DESTROY).arg(getOrigin()).
|
|
arg(getClass());
|
|
arg(getClass());
|
|
delete impl_;
|
|
delete impl_;
|
|
}
|
|
}
|
|
@@ -621,7 +628,7 @@ MemoryZone::add(const ConstRRsetPtr& rrset) {
|
|
|
|
|
|
void
|
|
void
|
|
MemoryZone::load(const string& filename) {
|
|
MemoryZone::load(const string& filename) {
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_LOAD).arg(getOrigin()).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_LOAD).arg(getOrigin()).
|
|
arg(filename);
|
|
arg(filename);
|
|
// Load it into a temporary tree
|
|
// Load it into a temporary tree
|
|
MemoryZoneImpl::DomainTree tmp;
|
|
MemoryZoneImpl::DomainTree tmp;
|
|
@@ -635,7 +642,7 @@ MemoryZone::load(const string& filename) {
|
|
|
|
|
|
void
|
|
void
|
|
MemoryZone::swap(MemoryZone& zone) {
|
|
MemoryZone::swap(MemoryZone& zone) {
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_SWAP).arg(getOrigin()).
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_SWAP).arg(getOrigin()).
|
|
arg(zone.getOrigin());
|
|
arg(zone.getOrigin());
|
|
std::swap(impl_, zone.impl_);
|
|
std::swap(impl_, zone.impl_);
|
|
}
|
|
}
|
|
@@ -677,8 +684,8 @@ MemoryDataSrc::addZone(ZonePtr zone) {
|
|
"Null pointer is passed to MemoryDataSrc::addZone()");
|
|
"Null pointer is passed to MemoryDataSrc::addZone()");
|
|
}
|
|
}
|
|
|
|
|
|
- logger.debug(DBG_TRACE_BASIC, DATASRC_MEM_ADD_ZONE).arg(zone->getOrigin()).
|
|
|
|
- arg(zone->getClass().toText());
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_BASIC, DATASRC_MEM_ADD_ZONE).
|
|
|
|
+ arg(zone->getOrigin()).arg(zone->getClass().toText());
|
|
|
|
|
|
const result::Result result = impl_->zone_table.addZone(zone);
|
|
const result::Result result = impl_->zone_table.addZone(zone);
|
|
if (result == result::SUCCESS) {
|
|
if (result == result::SUCCESS) {
|
|
@@ -689,7 +696,7 @@ MemoryDataSrc::addZone(ZonePtr zone) {
|
|
|
|
|
|
MemoryDataSrc::FindResult
|
|
MemoryDataSrc::FindResult
|
|
MemoryDataSrc::findZone(const isc::dns::Name& name) const {
|
|
MemoryDataSrc::findZone(const isc::dns::Name& name) const {
|
|
- logger.debug(DBG_TRACE_DATA, DATASRC_MEM_FIND_ZONE).arg(name);
|
|
|
|
|
|
+ LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_FIND_ZONE).arg(name);
|
|
return (FindResult(impl_->zone_table.findZone(name).code,
|
|
return (FindResult(impl_->zone_table.findZone(name).code,
|
|
impl_->zone_table.findZone(name).zone));
|
|
impl_->zone_table.findZone(name).zone));
|
|
}
|
|
}
|