BIND 10 #374: Writable datasources: Basic support for writables in C++ datasrc library
BIND 10 Development
do-not-reply at isc.org
Fri Oct 22 08:22:08 UTC 2010
#374: Writable datasources: Basic support for writables in C++ datasrc library
------------------------------+---------------------------------------------
Reporter: jelte | Owner: UnAssigned
Type: enhancement | Status: reviewing
Priority: major | Milestone:
Component: data source | Resolution:
Keywords: | Sensitive: 0
Estimatedhours: 0.0 | Hours: 0
Billable: 1 | Totalhours: 0
Internal: 0 |
------------------------------+---------------------------------------------
Changes (by jelte):
* owner: jelte => UnAssigned
* status: new => reviewing
Comment:
Changes can be found by diffing r3257 to r3309 in branches/trac374
Alternatively, you can do
{{{
svn merge --reintegrate
svn+ssh://bind10.isc.org/svn/bind10/branches/trac374
}}}
It should still merge cleanly.
Notes for review:
Since this is only the c++ part, and our XFR and loadzone functionality
(i.e. the external interfaces to actually use this), actual data source
changes are only done in the unit tests (i.e. you can't actually play with
your own zones in this branch). See the upcoming branches for #375 and
#376 for that.
I'd start out reading the (added) documentation in data_source.h,
specifically the DataSrcTransaction class (which is a general data
placeholder for whatever any specific datasource implementation needs to
perform transactions, and makes sure the transaction is finished later).
The design of the interface is generally based on the existing datasource
one, so there's low-level functions that must be overridden (addRRset
etc.), and high-level ones that work on DNS Message objects, that could be
overridden but don't have to be. We might find that these need to be moved
up out of the Data Source API, but for now I decided to keep them there,
to keep it close to the query logic.
One 'open' issue is that most of the current code works extensively with
return codes, and not so much with exceptions. Especially in functions
like doIXFR this means a lot of if (success) statements. This may need to
be reconsidered.
--
Ticket URL: <https://bind10.isc.org/ticket/374#comment:1>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list