BIND 10 #2975: Create initial DnsClient class

BIND 10 Development do-not-reply at isc.org
Thu Jul 4 11:57:02 UTC 2013


#2975: Create initial DnsClient class
-------------------------------------+-------------------------------------
            Reporter:  tmark         |                        Owner:  tmark
                Type:  enhancement   |                       Status:
            Priority:  medium        |  reviewing
           Component:  dhcp-ddns     |                    Milestone:
            Keywords:                |  Sprint-DHCP-20130717
           Sensitive:  0             |                   Resolution:
         Sub-Project:  DHCP          |                 CVSS Scoring:
Estimated Difficulty:  0             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by tmark):

 Review Comments:

 Really I only have a few comments.  Good job on this.

 General:

 * From a naming standpoint it is somewhat confusing for DNSClient to
 derive from IOFetch::Callback and have an embedded class named Callback
 and member callback_.

 Perhaps changing the name of the instance member from callback_ to
 client_callback_  or external_callback_.  You could call
 DNSClient::Callback something like ResponseHandler.

 * Question: - " Caller must provide a callback, which will be invoked when
 the response from the DNS server is received, a timeout has occured or IO
 service has been stopped for any
 reason. "

 What if the address given is bad, or there is a network error, like a
 disconnect of some kind other than timeout?  I notice the IOFetch::Result
 doesn't provide a value for this.   "Stopped" should only happen if the
 IOService is stopped which an IO error should not cause.

 * Am guessing the @todo for DNSClient::operator() is being done under
 2977?

 * As per our discussion, providing a protocol selection parameter for
 TCP/UDP would be good, and we need to think about TSIG as well.  Meaning
 that, perhaps we need a variant of update which accepts a TSIGKey
 parameter?  Initial release will not implement actual TSIG,but the
 interface could accommodate it.

 * Minor pick - spell check, Marcin.  You have several misspellings in the
 commentary.  I use GVIM to do my spell checking ;)


 Also I have taken the liberty to attach a class diagram for you:

 [[Image(dns_client.svg)]]

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


More information about the bind10-tickets mailing list