return d_dnssec;
}
-bool RemoteBackend::getTSIGKey(const std::string& name, std::string* algorithm, std::string* content) {
+bool RemoteBackend::getTSIGKey(const DNSName& name, DNSName* algorithm, std::string* content) {
rapidjson::Document query,answer;
rapidjson::Value parameters;
query.SetObject();
JSON_ADD_MEMBER(query, "method", "getTSIGKey", query.GetAllocator());
parameters.SetObject();
- JSON_ADD_MEMBER(parameters, "name", name.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER_DNSNAME(parameters, "name", name, query.GetAllocator());
query.AddMember("parameters", parameters, query.GetAllocator());
if (this->send(query) == false || this->recv(answer) == false)
!answer["result"].HasMember("content"))
throw PDNSException("Invalid response to getTSIGKey, missing field(s)");
- algorithm->assign(getString(answer["result"]["algorithm"]));
+ (*algorithm) = getString(answer["result"]["algorithm"]);
content->assign(getString(answer["result"]["content"]));
return true;
}
-bool RemoteBackend::setTSIGKey(const std::string& name, const std::string& algorithm, const std::string& content) {
+bool RemoteBackend::setTSIGKey(const DNSName& name, const DNSName& algorithm, const std::string& content) {
rapidjson::Document query,answer;
rapidjson::Value parameters;
query.SetObject();
JSON_ADD_MEMBER(query, "method", "setTSIGKey", query.GetAllocator());
parameters.SetObject();
- JSON_ADD_MEMBER(parameters, "name", name.c_str(), query.GetAllocator());
- JSON_ADD_MEMBER(parameters, "algorithm", algorithm.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER_DNSNAME(parameters, "name", name, query.GetAllocator());
+ JSON_ADD_MEMBER_DNSNAME(parameters, "algorithm", algorithm, query.GetAllocator());
JSON_ADD_MEMBER(parameters, "content", content.c_str(), query.GetAllocator());
query.AddMember("parameters", parameters, query.GetAllocator());
if (connector->send(query) == false || connector->recv(answer) == false)
return true;
}
-bool RemoteBackend::deleteTSIGKey(const std::string& name) {
+bool RemoteBackend::deleteTSIGKey(const DNSName& name) {
rapidjson::Document query,answer;
rapidjson::Value parameters;
query.SetObject();
JSON_ADD_MEMBER(query, "method", "deleteTSIGKey", query.GetAllocator());
parameters.SetObject();
- JSON_ADD_MEMBER(parameters, "name", name.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER_DNSNAME(parameters, "name", name, query.GetAllocator());
query.AddMember("parameters", parameters, query.GetAllocator());
if (connector->send(query) == false || connector->recv(answer) == false)
return false;
virtual bool getAllDomainMetadata(const DNSName& name, std::map<std::string, std::vector<std::string> >& meta);
virtual bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector<std::string>& meta);
virtual bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector<DNSBackend::KeyData>& keys);
- virtual bool getTSIGKey(const std::string& name, std::string* algorithm, std::string* content);
+ virtual bool getTSIGKey(const DNSName& name, DNSName* algorithm, std::string* content);
virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, string& before, string& after);
virtual bool setDomainMetadata(const DNSName& name, const string& kind, const std::vector<std::basic_string<char> >& meta);
virtual bool removeDomainKey(const DNSName& name, unsigned int id);
virtual bool commitTransaction();
virtual bool abortTransaction();
virtual bool calculateSOASerial(const DNSName& domain, const SOAData& sd, time_t& serial);
- virtual bool setTSIGKey(const std::string& name, const string& algorithm, const string& content);
- virtual bool deleteTSIGKey(const std::string& name);
+ virtual bool setTSIGKey(const DNSName& name, const DNSName& algorithm, const string& content);
+ virtual bool deleteTSIGKey(const DNSName& name);
virtual bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
static DNSBackend *maker();