BIND 10 #1261: IXFR-in protocol handling
BIND 10 Development
do-not-reply at isc.org
Wed Oct 5 08:36:12 UTC 2011
#1261: IXFR-in protocol handling
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: accepted
Type: task | Milestone:
Priority: | Sprint-20111011
blocker | Resolution:
Component: xfrin | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: N/A | Estimated Difficulty: 0
Feature Depending on Ticket: | Total Hours: 0
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
trac1261 is ready for review.
It turned out to be a bit bigger than I originally expected (as a
hindsight we could have separated this task for the send-query part
and the handle-response part). I also needed to do some small
changes in various places (not only for xfrin) to make it really work.
My suggestion for the reviewer is:
- first look at the diff for the "send query" part. It can be
retrieved by 'git diff e4c78a2^..38e530b' This is reasonably small
and I believe it is quite straightforward.
- commits for the Diff python lib (3bfaa40 and f6c675c) and commit for
sqlite3 accessor (2de8b71) are not directly related to xfrin, but
were necessary to make it work. See the commit logs for the
rationale of the change. These can be reviewed separately.
- The others are mainly for the "handle response" part (and a bunch of
small cleanups).
As for the last part, it basically copies the current AXFR-only
implementation to (_handle_axfrin_response() - a bit renamed) to a
separate method (_handle_xfrin_responses()) and adjusts it to support
the IXFR protocol. As for the protocol handling, I basically ported
the BIND 9's xfrin logic (implemented in xfr_rr() and
xfrin_recv_done() of lib/dns/xfrin.c) in relatively straightforward
way, but using the state design pattern instead of the compound
switch-case structure. This decision may be debatable - I thought the
size of the original switch-case (with goto's) was already unreadable
enough and refactoring the code in a more object-oriented way made
sense here (and the abstraction overhead wouldn't matter much for
xfrin).
I don't think we need a changelog entry yet (we'll probably need one
when #1262 is completed).
--
Ticket URL: <http://bind10.isc.org/ticket/1261#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list