howto know if a query was delegated to cache
Kevin Darcy
kcd at chrysler.com
Mon Jul 25 21:49:48 UTC 2011
On 7/25/2011 6:14 AM, harish badrinath wrote:
> (Originally sent to bind-workers, sorry if this is considered cross
> posting. Slightly modified from the original message)
>
> Hello,
>
> I am using Bind version:BIND 9.7.1-P2
>
>
> I am doing some small internal changes to bind and i have to know when
> a query is being answered from internal cache and when from resolvers.
>
> That information doesn’t seem to be recorded in client.attributes or
> client->query.attributes ??
>
> Can any one tell me where the code branches for cached/non cached
> responses in function query_find in the file "bin/named/query.c" *or*
> if the current client was responsible for cache insertion/addition for
> client->query.qname.
>
> I need help, to generate a construct along the lines of,
> if(condition|binary_function == (true|false))
> {
> response was given by cache
> }
>
> *or*
> #define ISFROMCACHE(client/query) ...
>
Whatever you're trying to accomplish, it's would not appear to be
consistent with the founding RFCs for DNS:
(RFC 1034, Section 5.3.3, Resolver Algorithm):
"Step 1 searches the cache for the desired data. If the data is in the
cache, IT IS ASSUMED TO BE GOOD ENOUGH FOR NORMAL USE [capitalization
added - kcd]. Some resolvers have an option at the user interface which
will force the resolver to ignore the cached data and consult with an
authoritative server. This is not recommended as the default."
Perhaps it would help if you explained *why* you care whether the data
is from cache or not (?) If you're concerned about the *integrity* of
the DNS data, you should do some research on DNSSEC.If you have a
different reason, maybe there's a better way to accomplish your goal.
- Kevin
More information about the bind-users
mailing list