diff --git a/include/transport/config.h b/include/transport/config.h index cecdf772bac1647e94ffb73c88d2f8990bad048f..de7888ac71e40f5b52a4e7fdd09e930f8d6f5add 100644 --- a/include/transport/config.h +++ b/include/transport/config.h @@ -83,7 +83,8 @@ class Config { bool reload(); bool hasKey(const std::string &key) { - return m_variables.find(key) != m_variables.end() || m_unregistered.find(key) != m_unregistered.end(); + return (m_variables.find(key) != m_variables.end() || m_unregistered.find(key) != m_unregistered.end() + || m_backendConfig.find(key) != m_backendConfig.end()); } /// Returns value of variable defined by key. @@ -94,6 +95,9 @@ class Config { if (m_variables.find(key) != m_variables.end()) { return m_variables[key]; } + if (m_backendConfig.find(key) != m_backendConfig.end()) { + return m_backendConfig[key]; + } return m_unregistered[key]; } @@ -107,12 +111,15 @@ class Config { /// This signal is emitted when config is loaded/reloaded. boost::signal onConfigReloaded; + void updateBackendConfig(const std::string &backendConfig); + static Config *createFromArgs(int argc, char **argv, std::string &error, std::string &host, int &port); private: int m_argc; char **m_argv; Variables m_variables; + Variables m_backendConfig; std::map m_unregistered; std::string m_file; std::string m_jid;