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