JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
rrset.SetArray();
rrset.Reserve(nsset.size(), query.GetAllocator());
- for(size_t i = 0; i < nsset.size(); i++) {
+ for(rapidjson::SizeType i = 0; i < nsset.size(); i++) {
rapidjson::Value &rr = rrset[i];
rr.SetObject();
JSON_ADD_MEMBER(rr, "qtype", nsset[i].qtype.getName().c_str(), query.GetAllocator());
rapidjson::Document query,answer;
rapidjson::Value parameters;
query.SetObject();
- JSON_ADD_MEMBER(query, "method", "superMasterBackend", query.GetAllocator());
+ JSON_ADD_MEMBER(query, "method", "createSlaveDomain", query.GetAllocator());
parameters.SetObject();
JSON_ADD_MEMBER(parameters, "ip", ip.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
rapidjson::Document query,answer;
rapidjson::Value parameters;
rapidjson::Value rj_rrset;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "replaceRRSet", query.GetAllocator());
+ parameters.SetObject();
JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
JSON_ADD_MEMBER(parameters, "qname", qname.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "qtype", qtype.getName().c_str(), query.GetAllocator());
rj_rrset.SetArray();
rj_rrset.Reserve(rrset.size(), query.GetAllocator());
- for(size_t i = 0; i < rrset.size(); i++) {
+ for(rapidjson::SizeType i = 0; i < rrset.size(); i++) {
rapidjson::Value &rr = rj_rrset[i];
rr.SetObject();
JSON_ADD_MEMBER(rr, "qtype", rrset[i].qtype.getName().c_str(), query.GetAllocator());
bool RemoteBackend::feedRecord(const DNSResourceRecord &rr, string *ordername) {
rapidjson::Document query,answer;
rapidjson::Value parameters;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedRecord", query.GetAllocator());
+ parameters.SetObject();
JSON_ADD_MEMBER(parameters, "qtype", rr.qtype.getName().c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "qname", rr.qname.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "qclass", QClass::IN, query.GetAllocator());
rapidjson::Document query,answer;
rapidjson::Value parameters;
rapidjson::Value nts;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedEnts", query.GetAllocator());
+ parameters.SetObject();
JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
nts.SetArray();
BOOST_FOREACH(const string &t, nonterm) {
rapidjson::Document query,answer;
rapidjson::Value parameters;
rapidjson::Value nts;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedEnts3", query.GetAllocator());
+ parameters.SetObject();
JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "times", times, query.GetAllocator());
JSON_ADD_MEMBER(parameters, "salt", salt.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "narrow", narrow, query.GetAllocator());
return true;
}
-bool RemoteBackend::startTransaction(const string &domain, int domain_id) { return false; }
-bool RemoteBackend::commitTransaction() { return false; }
-bool RemoteBackend::abortTransaction() { return false; }
-bool RemoteBackend::calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial) { return false; }
+bool RemoteBackend::startTransaction(const string &domain, int domain_id) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "startTransaction", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+
+}
+bool RemoteBackend::commitTransaction() {
+ rapidjson::Document query,answer;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "abortTransaction", query.GetAllocator());
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::abortTransaction() {
+ rapidjson::Document query,answer;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "commitTransaction", query.GetAllocator());
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value soadata;
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "calculateSOASerial", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ soadata.SetObject();
+ JSON_ADD_MEMBER(soadata, "qname", sd.qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "nameserver", sd.nameserver.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "hostmaster", sd.hostmaster.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "ttl", sd.ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "serial", sd.serial, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "refresh", sd.refresh, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "retry", sd.retry, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "expire", sd.expire, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "default_ttl", sd.default_ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "domain_id", sd.domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "scopeMask", sd.scopeMask, query.GetAllocator());
+ parameters.AddMember("sd", soadata, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+
+ if (answer["result"].IsInt64() == false)
+ return false;
+
+ serial = answer["result"].GetInt64();
+ return true;
+}
DNSBackend *RemoteBackend::maker()
{