BIND 10 #491: Connect DNS cache
BIND 10 Development
do-not-reply at isc.org
Mon Feb 21 12:50:21 UTC 2011
#491: Connect DNS cache
-------------------------------------+-------------------------------------
Reporter: shane | Owner: jelte
Type: | Status: reviewing
enhancement | Milestone: R-Team-
Priority: major | Sprint-20110222
Component: | Resolution:
resolver | Sensitive: 0
Keywords: | Add Hours to Ticket: 0
Estimated Number of Hours: 4.0 | Total Hours: 0
Billable?: 1 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by stephen):
* owner: stephen => jelte
Comment:
Reviewed commit c9a06623e3e6041342046d52f502ce5e478ef29c
'''src/bin/resolver/resolver.cc'''[[BR]]
MessageAnswer::operator(): when constructing the answer, can we assume
that the passed-in answer_message has the RD and CD bits clear? If not,
the code does not explicitly clear them if the corresponding bits in the
query message are clear. (Perhaps there should be an assertion?)
'''src/lib/asiolink/recursive_query.h'''[[BR]]
!RunningQuery: Agree that the cache should be initialized in the resolver
class. The cache should be a singleton - if !RecursiveQuery is the code
that handles an upstream fetch, placing it here suggests that either each
upstream query has its own cache, or that the singleton cache is
(re)initialized on every fetch.
'''src/lib/asiolink/recursive_query.cc'''[[BR]]
RunningQuery::handleRecursiveAnswer(): In the code handling
ResponseClassifier::REFERRAL, when a glue address is found, there should
be a "break" to exit the loop.
RunningQuery::stop(); The comment is confusing - I'm not clear as to the
"either or" - either a "full answer" (answer to the original query?) is
cache or answer (answer to an upstream fetch?) is cached; why not both?
RunningQuery::operator(): Should the query be placed into the cache before
checking with !ResponseClassifier? This could lead to erroneous messages
being placed there.
Comment: RecursiveQuery::resolver() - agree that the cache should set the
RCODE as well.
'''src/lib/cache/message_cache.cc'''[[BR]]
MessageCache::lookup(): Outputs a debug message.
MessageCache::update(): Outputs a debug message.
'''src/lib/cache/resolver_cache.cc'''[[BR]]
ResolverCache::update(): redundant creation of an RRClass object.
'''src/lib/resolve/resolve.cc'''[[BR]]
initResponseMessage(): should either assert that the question section of
the answer section is empty before appending the question section of the
query to it, or update the Message class to allow sections to be copied
between messages.
'''src/lib/resolve/resolve.h'''[[BR]]
In the first header for initResponseMessage, the description of
reponse_message says "must be type Message::RENDER". It's more accurate
to say that the message must be in RENDER mode.
--
Ticket URL: <http://bind10.isc.org/ticket/491#comment:5>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list