Commit 2d1592a9 authored by Jelte Jansen's avatar Jelte Jansen
Browse files

[trac736] add ConfigData to remote config callback

(so that we can check spec and get default values)
parent 0a6fabd5
......@@ -156,7 +156,7 @@ parseCommand(ConstElementPtr& arg, ConstElementPtr command) {
}
void
my_logconfig_handler(const std::string&n, ConstElementPtr new_config) {
my_logconfig_handler(const std::string&n, ConstElementPtr new_config, const ConfigData& config_data) {
// TODO CHECK FORMAT
// TODO: defaults
......@@ -511,7 +511,7 @@ ModuleCCSession::addRemoteConfig(const std::string& spec_name,
remote_module_configs_[module_name] = rmod_config;
if (handler) {
remote_module_handlers_[module_name] = handler;
handler(module_name, local_config);
handler(module_name, local_config, rmod_config);
}
// Make sure we get updates in future
......@@ -559,7 +559,7 @@ ModuleCCSession::updateRemoteConfig(const std::string& module_name,
std::map<std::string, RemoteHandler>::iterator hit =
remote_module_handlers_.find(module_name);
if (hit != remote_module_handlers_.end()) {
hit->second(module_name, new_config);
hit->second(module_name, new_config, it->second);
}
}
}
......
......@@ -288,7 +288,8 @@ public:
std::string addRemoteConfig(const std::string& spec_name,
void (*handler)(const std::string& module_name,
isc::data::ConstElementPtr
update) = NULL,
update,
const ConfigData& config_data) = NULL,
bool spec_is_filename = true);
/**
......@@ -342,7 +343,8 @@ private:
isc::data::ConstElementPtr args);
typedef void (*RemoteHandler)(const std::string&,
isc::data::ConstElementPtr);
isc::data::ConstElementPtr,
const ConfigData&);
std::map<std::string, ConfigData> remote_module_configs_;
std::map<std::string, RemoteHandler> remote_module_handlers_;
......
......@@ -351,7 +351,7 @@ int remote_item1(0);
ConstElementPtr remote_config;
ModuleCCSession *remote_mccs(NULL);
void remoteHandler(const std::string& module_name, ConstElementPtr config) {
void remoteHandler(const std::string& module_name, ConstElementPtr config, const ConfigData&) {
remote_module_name = module_name;
remote_item1 = remote_mccs->getRemoteConfigValue("Spec2", "item1")->
intValue();
......
......@@ -27,7 +27,8 @@ KeyringPtr keyring;
namespace {
void
updateKeyring(const std::string&, ConstElementPtr data) {
updateKeyring(const std::string&, ConstElementPtr data,
const isc::config::ConfigData&) {
ConstElementPtr list(data->get("keys"));
KeyringPtr load(new TSIGKeyRing);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment