BIND 10 #497: CNAME processing / CNAME loop detection (reception)

BIND 10 Development do-not-reply at isc.org
Tue Feb 8 09:41:09 UTC 2011


#497: CNAME processing / CNAME loop detection (reception)
-------------------------------------+-------------------------------------
                 Reporter:  shane    |                Owner:  UnAssigned
                     Type:           |               Status:  reviewing
  enhancement                        |            Milestone:  R-Team-
                 Priority:  major    |  Sprint-20110208
                Component:           |           Resolution:
  resolver                           |            Sensitive:  0
                 Keywords:           |  Add Hours to Ticket:  0
Estimated Number of Hours:  3.0      |          Total Hours:  0
                Billable?:  1        |
                Internal?:  0        |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * owner:  jelte => UnAssigned
 * status:  assigned => reviewing


Comment:

 As part of this ticket, I did a few things more to make things Better:

 I moved the response_classifier.[cc|h] to lib/resolve.

 I also changed the API a bit; it now takes a const Message& instead of a
 MessagePtr, and it takes a (non-const) reference to a Name and an unsigned
 int, to store the target of a possible cname chain (so that it does not
 have to do the cname-following dance twice).

 With that there, our handleRecursiveAnswer (still in asiolink), now uses
 the ResponseClassifier instead of figuring things out itself.

 Another addition I did was to lib/dns/message.[cc|h]; I added a
 clearSection(Message::Section) method, that simply removes all RRs from
 the given section (used in one of the new helper functions in
 lib/resolve/resolve.cc, in this case to clear an answer we were building
 when we find a problem).

 Having these changes also allowed me to make the 'client timeout'
 behaviour as really intended (send back a servfail, but don't stop
 resolving), so I updated that too.

 Ready for review. Branch name trac497, parent commit
 1e5b246a41dbfee1fdeb672b07b4e73ee1b94353, final commit
 4d29fda48f7304d2c5bfbc246326850ca5970b0f

 Proposed changelog(s):

 [func]  jelte
 The resolver now handles CNAMEs, it will follow them, and include them in
 the answer. The maximum length of CNAME chains that is supported is 16.

 [func] jelte
 The resolver now sends back a SERVFAIL when there is a client timeout
 (timeout_client config setting), but it will not stop resolving (until
 there is a lookup timeout).

-- 
Ticket URL: <http://bind10.isc.org/ticket/497#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list