From: Aki Tuomi Date: Wed, 17 Jun 2015 07:25:30 +0000 (+0300) Subject: Use correct TSIG method signatures X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~58^2~21^2~5^2~29 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ba703e92a6282e09601ae735250c21380106bf2;p=pdns Use correct TSIG method signatures --- diff --git a/modules/remotebackend/remotebackend.cc b/modules/remotebackend/remotebackend.cc index daecda4a2..1405d71e8 100644 --- a/modules/remotebackend/remotebackend.cc +++ b/modules/remotebackend/remotebackend.cc @@ -501,7 +501,7 @@ bool RemoteBackend::doesDNSSEC() { 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; @@ -510,7 +510,7 @@ bool RemoteBackend::getTSIGKey(const std::string& name, std::string* algorithm, 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) @@ -521,13 +521,13 @@ bool RemoteBackend::getTSIGKey(const std::string& name, std::string* algorithm, !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; @@ -536,8 +536,8 @@ bool RemoteBackend::setTSIGKey(const std::string& name, const std::string& algor 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) @@ -546,7 +546,7 @@ bool RemoteBackend::setTSIGKey(const std::string& name, const std::string& algor return true; } -bool RemoteBackend::deleteTSIGKey(const std::string& name) { +bool RemoteBackend::deleteTSIGKey(const DNSName& name) { rapidjson::Document query,answer; rapidjson::Value parameters; @@ -555,7 +555,7 @@ bool RemoteBackend::deleteTSIGKey(const std::string& name) { 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; diff --git a/modules/remotebackend/remotebackend.hh b/modules/remotebackend/remotebackend.hh index 6334cd09f..38f066759 100644 --- a/modules/remotebackend/remotebackend.hh +++ b/modules/remotebackend/remotebackend.hh @@ -140,7 +140,7 @@ class RemoteBackend : public DNSBackend virtual bool getAllDomainMetadata(const DNSName& name, std::map >& meta); virtual bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector& meta); virtual bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector& 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 >& meta); virtual bool removeDomainKey(const DNSName& name, unsigned int id); @@ -161,8 +161,8 @@ class RemoteBackend : public DNSBackend 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();