diff --git a/include/transport/config.h b/include/transport/config.h index 4ff5b8fa079f1470b405ebffa8a072a6031d4f66..7d01eaa04e2c9a248d3b88b5aebd7b70dba93a0b 100644 --- a/include/transport/config.h +++ b/include/transport/config.h @@ -50,7 +50,7 @@ typedef boost::program_options::variables_map Variables; class Config { public: /// Constructor. - Config() {} + Config(int argc = 0, char **argv = NULL) : m_argc(argc), m_argv(argv) {} /// Destructor virtual ~Config() {} @@ -99,6 +99,8 @@ class Config { boost::signal onConfigReloaded; private: + int m_argc; + char **m_argv; Variables m_variables; std::map m_unregistered; std::string m_file; diff --git a/spectrum/src/main.cpp b/spectrum/src/main.cpp index 82540d1124573ce29e389f51f262c5b3076e3093..ea3b288e66e73f368119aeffd7dc8ee7cdf51278 100644 --- a/spectrum/src/main.cpp +++ b/spectrum/src/main.cpp @@ -114,7 +114,7 @@ static void daemonize(const char *cwd, const char *lock_file) { int main(int argc, char **argv) { - Config config; + Config config(argc, argv); boost::program_options::variables_map vm; bool no_daemon = false; diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index 5018ae8b3e57e773e9c752441744345769b8bea6..9097e3b42ebe2a37ef9a0542f6166dcbf54b8d51 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -8,13 +8,13 @@ backend_host=localhost pidfile=./test.pid # < this option doesn't work yet #backend_port=10001 -admin_jid=admin@localhost +#admin_jid=admin@localhost admin_password=test #cert=server.pfx #patch to PKCS#12 certificate #cert_password=test #password to that certificate if any users_per_backend=10 -#backend=../..//backends/libpurple/spectrum2_libpurple_backend -backend=../../backends/template/template_backend.py +backend=../..//backends/libpurple/spectrum2_libpurple_backend +#backend=../../backends/template/template_backend.py protocol=prpl-jabber #protocol=prpl-msn #protocol=any diff --git a/src/config.cpp b/src/config.cpp index 9672f00dc231c6280ae0383d8f2a7120c2ac9607..2505614eddc24d839116672b4dcd05a79441ad8b 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -187,6 +187,11 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description } } + // Load configs passed by command line + if (m_argc != 0 && m_argv) { + store(parse_command_line(m_argc, m_argv, opts), m_variables); + } + store(parsed, m_variables); notify(m_variables);