From: Aki Tuomi Date: Tue, 15 Jul 2014 15:54:23 +0000 (+0300) Subject: isMaster implementation X-Git-Tag: auth-3.4.0-rc1~82^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fa36d75053fd7811c7e7ef3cd962f4054c5112d;p=thirdparty%2Fpdns.git isMaster implementation --- diff --git a/modules/remotebackend/remotebackend.cc b/modules/remotebackend/remotebackend.cc index 14bde799ac..b494ca4011 100644 --- a/modules/remotebackend/remotebackend.cc +++ b/modules/remotebackend/remotebackend.cc @@ -647,6 +647,23 @@ void RemoteBackend::setNotified(uint32_t id, uint32_t serial) { } } +bool RemoteBackend::isMaster(const string &name, const string &ip) +{ + rapidjson::Document query,answer; + rapidjson::Value parameters; + + query.SetObject(); + JSON_ADD_MEMBER(query, "method", "isMaster", query.GetAllocator()); + parameters.SetObject(); + JSON_ADD_MEMBER(parameters, "name", name.c_str(), query.GetAllocator()); + JSON_ADD_MEMBER(parameters, "ip", ip.c_str(), query.GetAllocator()); + query.AddMember("parameters", parameters, query.GetAllocator()); + if (this->send(query) == false || this->recv(answer) == false) + return false; + + return true; +} + bool RemoteBackend::superMasterBackend(const string &ip, const string &domain, const vector&nsset, string *nameserver, string *account, DNSBackend **ddb) { rapidjson::Document query,answer;