diff --git a/src/config.cpp b/src/config.cpp index c5ca48b5da1b7ccbca798fb90280256535fdff53..7088889c182bab346ff438ce62b984834e05ce74 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -87,8 +87,12 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description ("registration.username_label", value()->default_value("Legacy network username:"), "Label for username field") ("registration.username_mask", value()->default_value(""), "Username mask") ("registration.encoding", value()->default_value("utf8"), "Default encoding in registration form") + ("registration.require_local_account", value()->default_value(false), "True if users have to have a local account to register to this transport from remote servers.") + ("registration.local_username_label", value()->default_value("Local username:"), "Label for local usernme field") + ("registration.local_account_server", value()->default_value("localhost"), "The server on which the local accounts will be checked for validity") + ("registration.local_account_server_timeout", value()->default_value(10000), "Timeout when checking local user on local_account_server (msecs)") ("database.type", value()->default_value("none"), "Database type.") - ("database.database", value()->default_value(""), "Database used to store data") + ("database.database", value()->default_value("/var/lib/spectrum2/$jid/database.sql"), "Database used to store data") ("database.server", value()->default_value("localhost"), "Database server.") ("database.user", value()->default_value(""), "Database user.") ("database.password", value()->default_value(""), "Database Password.") @@ -107,6 +111,7 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description bool found_working = false; bool found_pidfile = false; bool found_backend_port = false; + bool found_database = false; std::string jid = ""; BOOST_FOREACH(option &opt, parsed.options) { if (opt.string_key == "service.jid") { @@ -130,6 +135,9 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description else if (opt.string_key == "service.pidfile") { found_pidfile = true; } + else if (opt.string_key == "database.database") { + found_database = true; + } } if (!found_working) { @@ -148,6 +156,11 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description value.push_back(p); parsed.options.push_back(boost::program_options::basic_option("service.backend_port", value)); } + if (!found_database) { + std::vector value; + value.push_back("/var/lib/spectrum2/$jid/database.sql"); + parsed.options.push_back(boost::program_options::basic_option("database.database", value)); + } BOOST_FOREACH(option &opt, parsed.options) { if (opt.unregistered) {