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