diff --git a/src/config.cpp b/src/config.cpp index f7147d2991b4cac50e36893d0e4d210880b37022..2f57b168148e26c8a5c90400c5bcfa2e45a5378a 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -284,6 +284,20 @@ std::string Config::getCommandLineArgs() const { return commandLineArgs.str(); } +void Config::updateBackendConfig(const std::string &backendConfig) { + options_description opts("Backend options"); + opts.add_options() + ("registration.needPassword", value()->default_value(true), "") + ("registration.extraField", value >()->multitoken(), "") + ; + + std::stringstream ifs(backendConfig); + parsed_options parsed = parse_config_file(ifs, opts, true); + + store(parsed, m_backendConfig); + notify(m_backendConfig); +} + Config *Config::createFromArgs(int argc, char **argv, std::string &error, std::string &host, int &port) { std::string jid; std::ostringstream os;