BIND 10 #2204: revise auth DataSourceConfiguratorGeneric::reconfigure()

BIND 10 Development do-not-reply at isc.org
Sat Aug 18 00:04:29 UTC 2012


#2204: revise auth DataSourceConfiguratorGeneric::reconfigure()
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |                       Status:  new
            Priority:  medium        |                    Milestone:  New
           Component:  b10-auth      |  Tasks
           Sensitive:  0             |                     Keywords:
         Sub-Project:  DNS           |              Defect Severity:  N/A
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |  background zone loading
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
 A subtask of #2201, depend on #2203.

 This change will allow us to exclude the whole reconfigure() from a
 critical section protected by a lock in a later stage of this work.

 What to do are (there are many, but each should be pretty
 straightforward):

 - change type of `AuthSrvImpl::client_lists_` to a shared_ptr of map
 - don't reuse the existing client list: always create a new one
   and builds it with the new config
 - pass reconfigure() an empty `map<RRClass, ConfigurableClientList(PTr)>`
   and have reconfigure() fill in it with the entire new data source
   client lists
 - introduce AuthSrv::setDataSourceClientLists().  It takes a shared
   pointer to the new map created by reconfigure() and swaps it with the
   current value of `AuthSrvImpl::client_lists_`, and returns the
   old one.
 - Deprecate the current `AuthSrv::setClientList()` interface (we
   don't need it any more)
 - revise the command handler (introduced in #2203) so it calls
   reconfigure() with the new config and then call
   setDataSourceClientLists() with the result.  For now, the old map
   returned by setDataSourceClientLists() is just dropped at this
   point (but the swap behavior will become important in #TBD)

-- 
Ticket URL: <http://bind10.isc.org/ticket/2204>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list