ConstElementPtr
ControlledDhcpv4Srv::commandConfigGetHandler(const string&,
ConstElementPtr /*args*/) {
- ConstElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
+ ElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
+ string hash = BaseCommandMgr::getHash(config);
+ config->set("hash", Element::create(hash));
return (createAnswer(CONTROL_RESULT_SUCCESS, config));
}
ConstElementPtr
ControlledDhcpv4Srv::commandConfigHashGetHandler(const string&,
ConstElementPtr /*args*/) {
- ConstElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
- // Assume that config is never null.
- string config_txt = config->str();
- OutputBuffer hash_data(0);
- isc::cryptolink::digest(config_txt.c_str(),
- config_txt.size(),
- isc::cryptolink::HashAlgorithm::SHA256,
- hash_data);
- vector<uint8_t> hash;
- hash.resize(hash_data.getLength());
- if (hash.size() > 0) {
- memmove(&hash[0], hash_data.getData(), hash.size());
- }
+ ElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
+
+ string hash = BaseCommandMgr::getHash(config);
+
ElementPtr params = Element::createMap();
- params->set("hash", Element::create(encode::encodeHex(hash)));
+ params->set("hash", Element::create(hash));
return (createAnswer(CONTROL_RESULT_SUCCESS, params));
}
ConstElementPtr
ControlledDhcpv6Srv::commandConfigGetHandler(const string&,
ConstElementPtr /*args*/) {
- ConstElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
+ ElementPtr config = CfgMgr::instance().getCurrentCfg()->toElement();
+ string hash = BaseCommandMgr::getHash(config);
+ config->set("hash", Element::create(hash));
return (createAnswer(CONTROL_RESULT_SUCCESS, config));
}
#include <process/cfgrpt/config_report.h>
#include <cryptolink/crypto_hash.h>
#include <exceptions/exceptions.h>
+#include <config/command_mgr.h>
#include <hooks/hooks_manager.h>
#include <log/logger.h>
#include <log/logger_support.h>
#include <kea_version.h>
#include <functional>
#include <sstream>
+#include <string>
#include <unistd.h>
#include <signal.h>
ConstElementPtr
DControllerBase::configGetHandler(const std::string&,
ConstElementPtr /*args*/) {
- ConstElementPtr config = process_->getCfgMgr()->getContext()->toElement();
+ ElementPtr config = process_->getCfgMgr()->getContext()->toElement();
+ std::string hash = BaseCommandMgr::getHash(config);
+ config->set("hash", Element::create(hash));
return (createAnswer(CONTROL_RESULT_SUCCESS, config));
}