BIND 10 #1261: IXFR-in protocol handling
BIND 10 Development
do-not-reply at isc.org
Wed Sep 28 23:07:47 UTC 2011
#1261: IXFR-in protocol handling
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | Status: new
Priority: blocker | Milestone:
Component: xfrin | Sprint-20111011
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
-------------------------------------+-------------------------------------
This is a subtask of #1212 and depends on #1258, #1259, and #1260.
But it should be possible to start working on it without waiting for
them to fully complete.
In this subtask we'll update the do_xfrin() function of the current
implementation:
{{{
if ret == XFRIN_OK:
logger.info(XFRIN_AXFR_TRANSFER_STARTED, self._zone_name)
self._send_query(RRType.AXFR())
isc.datasrc.sqlite3_ds.load(self._db_file,
self._zone_name,
self._handle_xfrin_response)
}}}
Unless IXFR is disabled, send IXFR query instead of AXFR, and instead
of doing the sqlite3 specific stuff, implement and perform a
completely separate code logic, where:
- receive IXFR messages (until the xfrin process completes), parse it
with PRESERVE_ORDER mode
- handle each RR in the responses according to RFC1995. call
ixfr_putdata() for each RR, and ixfr_commit() for each "difference"
(a single set of deletes and adds for one SOA change). I also
suggest checking BIND 9's lib/dns/xfrin.c:xfr_rr() to know any
corner cases and hints for tests.
- in this task we only handle real incremental transfer (i.e., non
AXFR-compatible mode). The AXFR-style behavior will be deferred to
a separate ticket (to be created)
--
Ticket URL: <http://bind10.isc.org/ticket/1261>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list