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