BIND 10 #598: Resolver DO bit, forwarder pass DO bit

BIND 10 Development do-not-reply at isc.org
Fri Apr 8 11:29:20 UTC 2011


#598: Resolver DO bit, forwarder pass DO bit
-------------------------------------+-------------------------------------
                 Reporter:  jreed    |                Owner:  vorner
                     Type:  defect   |               Status:  reviewing
                 Priority:  major    |            Milestone:
                Component:           |  Sprint-20110419
  resolver                           |           Resolution:
                 Keywords:           |            Sensitive:  0
Estimated Number of Hours:  0.0      |  Add Hours to Ticket:  0
                Billable?:  1        |          Total Hours:  0
                Internal?:  0        |
-------------------------------------+-------------------------------------
Changes (by zhanglikun):

 * owner:  zhanglikun => vorner


Comment:

 Replying to [comment:8 vorner]:
 > Hello
 >
 > Is it possible you didn't push your changes? Because I didn't find
 anything new in the repository.

 sorry, please see the latest change in trac598

 >
 > > Replying to [comment:6 vorner]:
 > > > But I have some comments on the code:
 > > >  * In IOFetch, you set EDNS if it is supported by the client.
 However, the UDP size is set to the servers maximal size, which can be
 larger than what the client supports. What will happen if the answer fits
 into our buffer, but doesn't fit into the client's buffer?
 >
 > I didn't look last time as closely, but isn't the same buffer sent back?
 Is the message really parsed and rendered again?

 No, the buffer size from client is ingored now, that's always think it
 support the max buffer size of forwarder. BTW, according the RFC, the
 edns0 information should not be forwarded.

 >
 > > I don't think it's a problem, forwarder should always use the max
 buffer size it supports, when geting the response, cache it for the coming
 same query from other clients. If the forwarder find

 client's buffer is smaller, forwarder should set TC bit and reply to
 client.

 > asio itself provides a function that reads the whole amount of data for
 you, retrying the read if the previous one was shorter. You have a loop
 where you keep retrying read until you have enough data, this can be
 simplified (or did I look at older code?).

 Could you mention the code where I should use async_read?


 > So, what changelog entry do you propose?

 possible entry is:
 [trac598] Implement the simplest forwarder, which pass everything throught
 except QID, port number, and the response will not be cached.

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


More information about the bind10-tickets mailing list