BIND 10 #3329: Integrate use of D2ClientMgr IO services into b10-dhcp4

BIND 10 Development do-not-reply at isc.org
Sun Feb 16 15:56:28 UTC 2014


#3329: Integrate use of D2ClientMgr IO services into b10-dhcp4
-------------------------------------+-------------------------------------
            Reporter:  tmark         |                        Owner:
                Type:  enhancement   |  UnAssigned
            Priority:  medium        |                       Status:
           Component:  dhcp-ddns     |  reviewing
            Keywords:                |                    Milestone:  DHCP-
           Sensitive:  0             |  Kea0.9-alpha
         Sub-Project:  DHCP          |                   Resolution:
Estimated Difficulty:  24            |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  32
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by tmark):

 * hours:  0 => 32
 * estimatedhours:  0 => 24
 * status:  new => reviewing
 * owner:   => UnAssigned


Comment:

 This ticket involved a number of relatively small changes to complete.
 They were made as a series of small, modular commits.  There is little
 overlap between them so examining them in chronological order should make
 the review process a bit more manageable rather than trying to digest all
 of the diffs at one shot. I apologize ahead of time for amount of change
 relegated to this ticket.  With the completion of this ticket,  b10-dhcp4
 is now fully capable of generating !NameChangeRequests and transmitting
 them to b10-dhcp-ddns.

 The changes in the order they were completed are as follows:

 * !D2ClientMgr was split out into its own header and source files.

 * Remembering the io_service in use and how to run ready IO handlers was
 pushed down from D2ClientMgr into !NameChangeSender.

 * !NameChangeSender stop logic was altered so it will now cleanly complete
 the last send as well as without instigating the next send. This
 interrupts
 the daisy-chain of sends and alleviates the issue of leaving a
 successfully
 sent message in the queue after sending has been stopped.

 * D2ClientMgr registers and unregisters its runReadyIO method and sender's
 select-fd with !IfaceMgr external socket monitoring.

 * Changed dhcp_ddns::NameChangeSender to kick-start send process if there
 are
 messages in the queue when startSending is called. Prior to this it
 required
 the queuing of a new message via sendRequest().

 * Added enableUpdates() method to D2ClientConfig to allow DDNS updates to
 be
 enabled or disabled independent of reconfiguration.

 * Added ability to suspend DDNS updates to D2ClientMgr, so updating can be
 stopped when errors communications with D2 fail.

 * Made D2ClientMgr non-copyable to avoid programmatic errors.

 * Changed D2ClientMgr to return simply return from startSender() if
 already
 in send mode.

 * Added D2ClientMgr control into Dhcp4.
 Server now starts D2ClientMgr send mode after configuration if updates are
 enabled, and provides an error handler to intervene if D2 communications
 fail.
 Added new unit tests in d2_unittest.h and .cc.

 * Altered D2ClientMgr::sendRequest to call the client's error handler if
 in send mode and sendRequest fails. Prior to this it simply allowed any
 sender exceptions to propagate.

 * Replaced Dhcpv4Srv NCR queue with sends to D2ClientMgr
 Dhcpv4Srv now sends NameChangeRequests to D2ClientMgr rather than posting
 them to an internal queue.

 * Added a call to startD2 ControlledDhcpv4Srv::establishSession() to
 to ensure D2ClientMgr is started upon initial server startup.


 ChangeLog entry:

 {{{
 7xx.    [func]       tmark
     b10-dhcp4 can now create DHCP-DDNS updates and transmit them to b10
 -dhcp-ddns if
     configured to do.
     (Trac# 3329, git TBD)
 }}}

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


More information about the bind10-tickets mailing list