BIND 10 trac449, updated. 0ae5d2d73aad78ee24e641870cec1ab06f65e3f6 [trac449] second round of review comments
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Feb 14 09:52:13 UTC 2011
The branch, trac449 has been updated
via 0ae5d2d73aad78ee24e641870cec1ab06f65e3f6 (commit)
from a02e4f3441285f10958b72e2337aa1b6e290fb56 (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 0ae5d2d73aad78ee24e641870cec1ab06f65e3f6
Author: Jelte Jansen <jelte at isc.org>
Date: Mon Feb 14 10:50:31 2011 +0100
[trac449] second round of review comments
-----------------------------------------------------------------------
Summary of changes:
src/lib/cache/message_entry.cc | 1 +
src/lib/cache/resolver_cache.cc | 53 ++++++++++++++++++--------------------
src/lib/cache/rrset_cache.cc | 2 +
3 files changed, 28 insertions(+), 28 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/cache/message_entry.cc b/src/lib/cache/message_entry.cc
index 8891eb9..26c8bee 100644
--- a/src/lib/cache/message_entry.cc
+++ b/src/lib/cache/message_entry.cc
@@ -128,6 +128,7 @@ MessageEntry::getRRsetTrustLevel(const Message& message,
rrset_iter != message.endSection(section)) {
++rrset_iter;
}
+ assert(rrset_iter != message.endSection(section));
// According RFC2181 section 5.4.1, only the record
// describing that ailas is necessarily authoritative.
diff --git a/src/lib/cache/resolver_cache.cc b/src/lib/cache/resolver_cache.cc
index 2cfd660..67d86d0 100644
--- a/src/lib/cache/resolver_cache.cc
+++ b/src/lib/cache/resolver_cache.cc
@@ -35,7 +35,6 @@ ResolverClassCache::ResolverClassCache(const RRClass& cache_class) :
messages_cache_ = MessageCachePtr(new MessageCache(rrsets_cache_,
MESSAGE_CACHE_DEFAULT_SIZE,
cache_class_.getCode()));
- std::cout << "[XX] Created cache for class " << cache_class_ << std::endl;
}
ResolverClassCache::ResolverClassCache(CacheSizeInfo cache_info) :
@@ -49,7 +48,6 @@ ResolverClassCache::ResolverClassCache(CacheSizeInfo cache_info) :
messages_cache_ = MessageCachePtr(new MessageCache(rrsets_cache_,
cache_info.message_cache_size,
klass));
- std::cout << "[XX] Created cache for class " << cache_class_ << std::endl;
}
const RRClass&
@@ -110,8 +108,8 @@ ResolverClassCache::updateRRsetCache(const isc::dns::ConstRRsetPtr rrset_ptr,
RRsetCachePtr rrset_cache_ptr)
{
RRsetTrustLevel level;
- string typestr = rrset_ptr->getType().toText();
- if (typestr == "A" || typestr == "AAAA") {
+ if (rrset_ptr->getType() == RRType::A() ||
+ rrset_ptr->getType() == RRType::AAAA()) {
level = RRSET_TRUST_PRIM_GLUE;
} else {
level = RRSET_TRUST_PRIM_ZONE_NONGLUE;
@@ -182,21 +180,19 @@ ResolverCache::lookupClosestRRset(const isc::dns::Name& qname,
const isc::dns::RRClass& qclass) const
{
ResolverClassCache* cc = getClassCache(qclass);
- if (!cc) {
- return (RRsetPtr());
- }
-
- unsigned int count = qname.getLabelCount();
- unsigned int level = 0;
- while(level < count) {
- Name close_name = qname.split(level);
- RRsetPtr rrset_ptr = cc->lookup(close_name, qtype);
- if (rrset_ptr) {
- return (rrset_ptr);
- } else {
- ++level;
- }
- }
+ if (cc) {
+ unsigned int count = qname.getLabelCount();
+ unsigned int level = 0;
+ while(level < count) {
+ Name close_name = qname.split(level);
+ RRsetPtr rrset_ptr = cc->lookup(close_name, qtype);
+ if (rrset_ptr) {
+ return (rrset_ptr);
+ } else {
+ ++level;
+ }
+ }
+ }
return (RRsetPtr());
}
@@ -206,20 +202,21 @@ ResolverCache::update(const isc::dns::Message& msg) {
QuestionIterator iter = msg.beginQuestion();
ResolverClassCache* cc = getClassCache((*iter)->getClass());
- if (!cc) {
- return (false);
- }
-
- return (cc->update(msg));
+ if (cc) {
+ return (cc->update(msg));
+ } else {
+ return (false);
+ }
}
bool
ResolverCache::update(const isc::dns::ConstRRsetPtr rrset_ptr) {
ResolverClassCache* cc = getClassCache(rrset_ptr->getClass());
- if (!cc) {
- return (false);
- }
- return (cc->update(rrset_ptr));
+ if (cc) {
+ return (cc->update(rrset_ptr));
+ } else {
+ return (false);
+ }
}
void
diff --git a/src/lib/cache/rrset_cache.cc b/src/lib/cache/rrset_cache.cc
index f0e5b2e..e980bcd 100644
--- a/src/lib/cache/rrset_cache.cc
+++ b/src/lib/cache/rrset_cache.cc
@@ -52,6 +52,8 @@ RRsetCache::lookup(const isc::dns::Name& qname,
RRsetEntryPtr
RRsetCache::update(const isc::dns::RRset& rrset, const RRsetTrustLevel& level) {
+ // TODO: If the RRset is an NS, we should update the NSAS as well
+
// lookup first
RRsetEntryPtr entry_ptr = lookup(rrset.getName(), rrset.getType());
if(!entry_ptr) {
More information about the bind10-changes
mailing list