[svn] commit: r2414 - in /branches/trac232/src: bin/auth/auth_srv.cc lib/datasrc/data_source.cc lib/datasrc/data_source.h lib/datasrc/sqlite3_datasrc.cc lib/datasrc/sqlite3_datasrc.h
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Jul 6 09:18:07 UTC 2010
Author: jelte
Date: Tue Jul 6 09:18:07 2010
New Revision: 2414
Log:
Make transaction an instantiated object that rolls back automatically should it be destroyed
Modified:
branches/trac232/src/bin/auth/auth_srv.cc
branches/trac232/src/lib/datasrc/data_source.cc
branches/trac232/src/lib/datasrc/data_source.h
branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc
branches/trac232/src/lib/datasrc/sqlite3_datasrc.h
Modified: branches/trac232/src/bin/auth/auth_srv.cc
==============================================================================
--- branches/trac232/src/bin/auth/auth_srv.cc (original)
+++ branches/trac232/src/bin/auth/auth_srv.cc Tue Jul 6 09:18:07 2010
@@ -344,8 +344,8 @@
RRTTL(args->get("rr_ttl")->stringValue())));
RdataPtr rdata = createRdata(rrset->getType(), rrset->getClass(), args->get("rr_rdata")->stringValue());
rrset->addRdata(rdata);
- DataSrcTransaction* transaction;
- DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+ DataSrcTransaction transaction(datasource, zone_name);
+ DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
if (r != DataSrc::SUCCESS) {
return isc::config::createAnswer(r, "error starting transaction");
}
@@ -394,8 +394,8 @@
rrset->addRdata(rdata);
}
}
- DataSrcTransaction* transaction;
- DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+ DataSrcTransaction transaction(datasource, zone_name);
+ DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
if (r != DataSrc::SUCCESS) {
return isc::config::createAnswer(r, "error starting transaction");
}
@@ -481,8 +481,8 @@
DataSrc* datasource = (DataSrc*) match.bestDataSrc();
// hmz can't we assign RRTypes?
if (datasource) {
- DataSrcTransaction* transaction;
- DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+ DataSrcTransaction transaction(datasource, zone_name);
+ DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
if (r != DataSrc::SUCCESS) {
return isc::config::createAnswer(r, "error starting transaction");
}
@@ -568,8 +568,8 @@
impl_->data_sources_.findClosestEnclosure(match, rrclass);
DataSrc* datasource = (DataSrc*) match.bestDataSrc();
if (datasource) {
- DataSrcTransaction* transaction;
- DataSrc::Result result = datasource->startTransaction(&transaction, zone_name);
+ DataSrcTransaction transaction(datasource, zone_name);
+ DataSrc::Result result = datasource->startTransaction(transaction, zone_name);
if (result != DataSrc::SUCCESS) {
return isc::config::createAnswer(result, "error starting transaction");
}
@@ -580,6 +580,7 @@
if (result != DataSrc::SUCCESS) {
return isc::config::createAnswer(result, "Error in doIXFR");
} else {
+ datasource->commitTransaction(transaction);
return isc::config::createAnswer();
}
} else {
Modified: branches/trac232/src/lib/datasrc/data_source.cc
==============================================================================
--- branches/trac232/src/lib/datasrc/data_source.cc (original)
+++ branches/trac232/src/lib/datasrc/data_source.cc Tue Jul 6 09:18:07 2010
@@ -917,52 +917,52 @@
}
DataSrc::Result
-DataSrc::startTransaction(DataSrcTransaction **transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::addRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::startTransaction(DataSrcTransaction& transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::addRRset(DataSrcTransaction& transaction UNUSED_PARAM,
const isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
}
DataSrc::Result
-DataSrc::delRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::delRRset(DataSrcTransaction& transaction UNUSED_PARAM,
isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
}
DataSrc::Result
-DataSrc::delZone(DataSrcTransaction* transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::replaceZone(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::delZone(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::replaceZone(DataSrcTransaction& transaction UNUSED_PARAM,
RRsetList& rrsets UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
}
DataSrc::Result
-DataSrc::doIXFR(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::doIXFR(DataSrcTransaction& transaction UNUSED_PARAM,
const isc::dns::RRsetIterator start UNUSED_PARAM,
const isc::dns::RRsetIterator end UNUSED_PARAM)
{
@@ -1028,46 +1028,52 @@
return (NOT_IMPLEMENTED);
}
-DataSrc::Result
-MetaDataSrc::startTransaction(DataSrcTransaction **transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::addRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrcTransaction::~DataSrcTransaction() {
+ if (getState() == RUNNING) {
+ _data_source->rollbackTransaction(*this);
+ }
+}
+
+DataSrc::Result
+MetaDataSrc::startTransaction(DataSrcTransaction& transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::addRRset(DataSrcTransaction& transaction UNUSED_PARAM,
isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
}
DataSrc::Result
-MetaDataSrc::delRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+MetaDataSrc::delRRset(DataSrcTransaction& transaction UNUSED_PARAM,
isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
}
DataSrc::Result
-MetaDataSrc::delZone(DataSrcTransaction* transaction UNUSED_PARAM)
-{
- return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::replaceZone(DataSrcTransaction* transaction UNUSED_PARAM,
+MetaDataSrc::delZone(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::replaceZone(DataSrcTransaction& transaction UNUSED_PARAM,
RRsetList& rrsets UNUSED_PARAM)
{
return NOT_IMPLEMENTED;
Modified: branches/trac232/src/lib/datasrc/data_source.h
==============================================================================
--- branches/trac232/src/lib/datasrc/data_source.h (original)
+++ branches/trac232/src/lib/datasrc/data_source.h Tue Jul 6 09:18:07 2010
@@ -167,9 +167,32 @@
// also probably should keep a pointer to a datasource
// should this also provide the outwards interface?
//
+
+//class DataSrcTransaction {
+//public:
+// virtual ~DataSrcTransaction() {};
+//};
+
class DataSrcTransaction {
public:
- virtual ~DataSrcTransaction() {};
+ enum states { INIT, RUNNING, DONE };
+
+ explicit DataSrcTransaction(DataSrc *data_source,
+ const isc::dns::Name& zone_name) :
+ _zone_name(zone_name),
+ _data_source(data_source),
+ _state(INIT) {};
+ ~DataSrcTransaction();
+ states getState() { return _state; };
+ void setState(states state) { _state = state; };
+ isc::data::ElementPtr getData() { return _data; };
+ void setData(isc::data::ElementPtr data) { _data = data; };
+
+private:
+ isc::data::ElementPtr _data;
+ isc::dns::Name _zone_name;
+ DataSrc* _data_source;
+ states _state;
};
// Base class for a DNS Data Source
@@ -241,17 +264,17 @@
// Writable data sources
//
// This certainly not the final API
- virtual Result addRRset(DataSrcTransaction* transaction,
+ virtual Result addRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- virtual Result delRRset(DataSrcTransaction* transaction,
+ virtual Result delRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- virtual Result delZone(DataSrcTransaction* transaction);
- virtual Result replaceZone(DataSrcTransaction* transaction,
+ virtual Result delZone(DataSrcTransaction& transaction);
+ virtual Result replaceZone(DataSrcTransaction& transaction,
isc::dns::RRsetList& rrsets);
- virtual Result startTransaction(DataSrcTransaction** transaction, const isc::dns::Name& zonename);
- virtual Result commitTransaction(DataSrcTransaction *transaction);
- virtual Result rollbackTransaction(DataSrcTransaction *transaction);
- virtual Result doIXFR(DataSrcTransaction* transaction,
+ virtual Result startTransaction(DataSrcTransaction& transaction, const isc::dns::Name& zonename);
+ virtual Result commitTransaction(DataSrcTransaction& transaction);
+ virtual Result rollbackTransaction(DataSrcTransaction& transaction);
+ virtual Result doIXFR(DataSrcTransaction& transaction,
const isc::dns::RRsetIterator start,
const isc::dns::RRsetIterator end);
@@ -328,16 +351,16 @@
// Writable data sources
//
// see comments at DataSrc
- virtual Result startTransaction(DataSrcTransaction** transaction, const isc::dns::Name& zonename);
- virtual Result commitTransaction(DataSrcTransaction* transaction);
- virtual Result rollbackTransaction(DataSrcTransaction* transaction);
+ virtual Result startTransaction(DataSrcTransaction& transaction, const isc::dns::Name& zonename);
+ virtual Result commitTransaction(DataSrcTransaction& transaction);
+ virtual Result rollbackTransaction(DataSrcTransaction& transaction);
- virtual Result addRRset(DataSrcTransaction* transaction,
+ virtual Result addRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- virtual Result delRRset(DataSrcTransaction* transaction,
+ virtual Result delRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- virtual Result delZone(DataSrcTransaction* transaction);
- virtual Result replaceZone(DataSrcTransaction* transaction,
+ virtual Result delZone(DataSrcTransaction& transaction);
+ virtual Result replaceZone(DataSrcTransaction& transaction,
isc::dns::RRsetList& rrsets);
// end of writable data sources part
private:
Modified: branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc
==============================================================================
--- branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc (original)
+++ branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc Tue Jul 6 09:18:07 2010
@@ -28,6 +28,8 @@
#include <dns/rdataclass.h>
#include <dns/rrset.h>
#include <dns/rrsetlist.h>
+
+#include <cc/data.h>
#include <boost/foreach.hpp>
@@ -776,15 +778,17 @@
}
DataSrc::Result
-Sqlite3DataSrc::startTransaction(DataSrcTransaction **transaction, const Name& zonename)
-{
+Sqlite3DataSrc::startTransaction(DataSrcTransaction& transaction, const Name& zonename)
+{
+ if (transaction.getState() != DataSrcTransaction::INIT) {
+ return DataSrc::ERROR;
+ }
int result = sqlite3_exec(dbparameters->db_, w_start_transaction_str, NULL, NULL, NULL);
if (result == SQLITE_OK) {
- if (transaction) {
- Sqlite3DataSrcTransaction *trans = new Sqlite3DataSrcTransaction();
- trans->zone_id = hasExactZone(zonename.toText().c_str());
- *transaction = trans;
- }
+ isc::data::ElementPtr trans_data = isc::data::Element::createFromString("{}");
+ trans_data->set("zone_id", isc::data::Element::create(hasExactZone(zonename.toText().c_str())));
+ transaction.setData(trans_data);
+ transaction.setState(DataSrcTransaction::RUNNING);
return DataSrc::SUCCESS;
} else {
return DataSrc::ERROR;
@@ -792,23 +796,33 @@
}
DataSrc::Result
-Sqlite3DataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
+Sqlite3DataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ if (transaction.getState() != DataSrcTransaction::RUNNING) {
+ return DataSrc::ERROR;
+ }
+
int result = sqlite3_exec(dbparameters->db_, w_commit_transaction_str, NULL, NULL, NULL);
- delete transaction;
+
if (result == SQLITE_OK) {
+ transaction.setState(DataSrcTransaction::DONE);
return DataSrc::SUCCESS;
} else {
return DataSrc::ERROR;
}
}
-DataSrc::Result
-Sqlite3DataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
+// Must be exception-free! should we have a catch-all to be sure?
+DataSrc::Result
+Sqlite3DataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+ if (transaction.getState() != DataSrcTransaction::RUNNING) {
+ return DataSrc::ERROR;
+ }
int result = sqlite3_exec(dbparameters->db_, w_rollback_transaction_str, NULL, NULL, NULL);
- delete transaction;
+
if (result == SQLITE_OK) {
+ transaction.setState(DataSrcTransaction::DONE);
return DataSrc::SUCCESS;
} else {
return DataSrc::ERROR;
@@ -889,12 +903,12 @@
}
DataSrc::Result
-Sqlite3DataSrc::addRRset(DataSrcTransaction* transaction,
+Sqlite3DataSrc::addRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset)
{
std::cout << "[XX] addRR at sqlite3" << std::endl;
- Sqlite3DataSrcTransaction* trans = (Sqlite3DataSrcTransaction*) transaction;
- std::cout << "[XX] zone id: " << trans->zone_id << std::endl;
+ int zone_id = transaction.getData()->get("zone_id")->intValue();
+ std::cout << "[XX] zone id: " << zone_id << std::endl;
RdataIteratorPtr rdp = rrset->getRdataIterator();
rdp->first();
@@ -902,7 +916,7 @@
std::cout << "[XX] RDATA: " << rdp->getCurrent().toText().c_str() << std::endl;
DataSrc::Result result = DataSrc::SUCCESS;
do {
- result = addRR(trans->zone_id, rrset->getName(), rrset->getType(), rrset->getTTL(), rdp->getCurrent());
+ result = addRR(zone_id, rrset->getName(), rrset->getType(), rrset->getTTL(), rdp->getCurrent());
if (result != DataSrc::SUCCESS) {
return result;
} else {
@@ -1054,11 +1068,12 @@
}
DataSrc::Result
-Sqlite3DataSrc::replaceZone(DataSrcTransaction* transaction,
+Sqlite3DataSrc::replaceZone(DataSrcTransaction& transaction,
isc::dns::RRsetList& rrsets)
{
- Sqlite3DataSrcTransaction *trans = (Sqlite3DataSrcTransaction*)transaction;
- DataSrc::Result result = delAll(trans->zone_id);
+ int zone_id = transaction.getData()->get("zone_id")->intValue();
+
+ DataSrc::Result result = delAll(zone_id);
if (result != DataSrc::SUCCESS) {
return result;
}
@@ -1069,10 +1084,11 @@
}
DataSrc::Result
-Sqlite3DataSrc::delZone(DataSrcTransaction* transaction)
-{
- Sqlite3DataSrcTransaction *trans = (Sqlite3DataSrcTransaction*)transaction;
- DataSrc::Result result = delAll(trans->zone_id);
+Sqlite3DataSrc::delZone(DataSrcTransaction& transaction)
+{
+ int zone_id = transaction.getData()->get("zone_id")->intValue();
+
+ DataSrc::Result result = delAll(zone_id);
if (result != DataSrc::SUCCESS) {
return result;
}
@@ -1083,13 +1099,13 @@
sqlite3_clear_bindings(query);
int rc;
- rc = sqlite3_bind_int(query, 1, trans->zone_id);
- if (rc != SQLITE_OK) {
- isc_throw(Sqlite3Error, "Could not bind zone ID " << trans->zone_id <<
+ rc = sqlite3_bind_int(query, 1, zone_id);
+ if (rc != SQLITE_OK) {
+ isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
" to SQL statement (query)");
}
- std::cout << "[XX] del zone " << trans->zone_id << " query prepared, executing" << std::endl;
+ std::cout << "[XX] del zone " << zone_id << " query prepared, executing" << std::endl;
int q_result = sqlite3_step(query);
sqlite3_reset(query);
@@ -1106,13 +1122,13 @@
DataSrc::Result
-Sqlite3DataSrc::delRRset(DataSrcTransaction* transaction,
+Sqlite3DataSrc::delRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset)
{
std::cout << "[XX] delRR at sqlite3" << std::endl;
- Sqlite3DataSrcTransaction* trans = (Sqlite3DataSrcTransaction*) transaction;
+ int zone_id = transaction.getData()->get("zone_id")->intValue();
- std::cout << "[XX] zone id for: " << trans->zone_id << std::endl;
+ std::cout << "[XX] zone id for: " << zone_id << std::endl;
DataSrc::Result result = DataSrc::SUCCESS;
@@ -1122,7 +1138,7 @@
std::cout << "[XX] RDATA: " << rdp->getCurrent().toText() << std::endl;
std::cout << "[XX] RDATA: " << rdp->getCurrent().toText().c_str() << std::endl;
do {
- result = delRR(trans->zone_id, rrset->getName(), rrset->getType(), rdp->getCurrent());
+ result = delRR(zone_id, rrset->getName(), rrset->getType(), rdp->getCurrent());
if (result != DataSrc::SUCCESS) {
return result;
} else {
@@ -1130,7 +1146,7 @@
}
} while (!rdp->isLast());
} else {
- result = delRR(trans->zone_id, rrset->getName(), rrset->getType());
+ result = delRR(zone_id, rrset->getName(), rrset->getType());
}
return result;
}
@@ -1160,7 +1176,7 @@
// TODO: this is a very general one, move to DataSrc?
// also more specific return values on error
DataSrc::Result
-Sqlite3DataSrc::doIXFR(DataSrcTransaction* transaction,
+Sqlite3DataSrc::doIXFR(DataSrcTransaction& transaction,
const RRsetIterator start,
const RRsetIterator end)
{
@@ -1171,18 +1187,17 @@
rrsets++;
if (first_soa->getType() == RRType::SOA()) {
if (!haveRRset(this, first_soa)) {
- rollbackTransaction(transaction);
std::cout << "[XX] Start SOA does not match mine: " << first_soa->toText() << std::endl;
return DataSrc::ERROR;
}
} else {
// Not a SOA, then this must be an AXFR-type response
- delAll(((Sqlite3DataSrcTransaction*)transaction)->zone_id);
+ int zone_id = transaction.getData()->get("zone_id")->intValue();
+ delAll(zone_id);
while (rrsets != end) {
addRRset(transaction, *rrsets++);
}
- commitTransaction(transaction);
return DataSrc::SUCCESS;
}
bool deleting = true;
@@ -1208,7 +1223,6 @@
delRRset(transaction, cur_rrset);
} else {
std::cout << "[XX] rrset for delete not found: " << cur_rrset->toText() << std::endl;
- rollbackTransaction(transaction);
return DataSrc::ERROR;
}
} else {
@@ -1222,11 +1236,9 @@
// Finally replace the SOA
delRRset(transaction, first_soa);
addRRset(transaction, final_soa);
- commitTransaction(transaction);
return DataSrc::SUCCESS;
} else {
std::cout << "[XX] something went wrong" << std::endl;
- rollbackTransaction(transaction);
return DataSrc::ERROR;
}
}
Modified: branches/trac232/src/lib/datasrc/sqlite3_datasrc.h
==============================================================================
--- branches/trac232/src/lib/datasrc/sqlite3_datasrc.h (original)
+++ branches/trac232/src/lib/datasrc/sqlite3_datasrc.h Tue Jul 6 09:18:07 2010
@@ -110,19 +110,19 @@
// hmz, should we have a transaction context object? (see comments
// in datasource.h
- Result startTransaction(DataSrcTransaction **transaction, const isc::dns::Name& zonename);
- Result commitTransaction(DataSrcTransaction *transaction);
- Result rollbackTransaction(DataSrcTransaction *transaction);
+ Result startTransaction(DataSrcTransaction& transaction, const isc::dns::Name& zonename);
+ Result commitTransaction(DataSrcTransaction& transaction);
+ Result rollbackTransaction(DataSrcTransaction& transaction);
//DataSrc::Result addRRset(const isc::dns::Name& zonename, const isc::dns::RRset& rrset);
- DataSrc::Result addRRset(DataSrcTransaction* transaction,
+ DataSrc::Result addRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- DataSrc::Result delRRset(DataSrcTransaction* transaction,
+ DataSrc::Result delRRset(DataSrcTransaction& transaction,
isc::dns::ConstRRsetPtr rrset);
- DataSrc::Result replaceZone(DataSrcTransaction* transaction,
+ DataSrc::Result replaceZone(DataSrcTransaction& transaction,
isc::dns::RRsetList& rrsets);
- DataSrc::Result delZone(DataSrcTransaction* transaction);
- DataSrc::Result doIXFR(DataSrcTransaction* transaction,
+ DataSrc::Result delZone(DataSrcTransaction& transaction);
+ DataSrc::Result doIXFR(DataSrcTransaction& transaction,
const isc::dns::RRsetIterator start,
const isc::dns::RRsetIterator end);
@@ -159,11 +159,6 @@
Sqlite3Parameters* dbparameters;
};
-class Sqlite3DataSrcTransaction : public DataSrcTransaction {
-public:
- int zone_id;
-};
-
}
}
More information about the bind10-changes
mailing list