Merge branch 'master' of github.com:hanzz/libtransport

This commit is contained in:
HanzZ 2012-06-04 19:51:58 +02:00
commit 680cc369de
5 changed files with 19 additions and 14 deletions

View file

@ -78,7 +78,7 @@ int main (int argc, char* argv[]) {
Swift::QtEventLoop eventLoop;
if (config.getUnregistered().find("service.irc_server") == config.getUnregistered().end()) {
if (!CONFIG_HAS_KEY(&config, "service.irc_server")) {
np = new IRCNetworkPlugin(&config, &eventLoop, host, port);
}
else {

View file

@ -10,13 +10,19 @@ DEFINE_LOGGER(logger, "SingleIRCNetworkPlugin");
SingleIRCNetworkPlugin::SingleIRCNetworkPlugin(Config *config, Swift::QtEventLoop *loop, const std::string &host, int port) {
this->config = config;
m_server = config->getUnregistered().find("service.irc_server")->second;
if (CONFIG_HAS_KEY(config, "service.irc_server")) {
m_server = CONFIG_STRING(config, "service.irc_server");
}
else {
LOG4CXX_ERROR(logger, "No [service] irc_server defined, exiting...");
exit(-1);
}
m_socket = new QTcpSocket();
m_socket->connectToHost(FROM_UTF8(host), port);
connect(m_socket, SIGNAL(readyRead()), this, SLOT(readData()));
if (config->getUnregistered().find("service.irc_identify") != config->getUnregistered().end()) {
m_identify = config->getUnregistered().find("service.irc_identify")->second;
if (CONFIG_HAS_KEY(config, "service.irc_identify")) {
m_identify = CONFIG_STRING(config, "service.irc_identify");
}
else {
m_identify = "NickServ identify $name $password";

View file

@ -124,8 +124,8 @@ class SMSNetworkPlugin : public NetworkPlugin {
void handleSMSDir() {
std::string dir = "/var/spool/sms/incoming/";
if (config->getUnregistered().find("backend.incoming_dir") != config->getUnregistered().end()) {
dir = config->getUnregistered().find("backend.incoming_dir")->second;
if (CONFIG_HAS_KEY(config, "backend.incoming_dir")) {
dir = CONFIG_STRING(config, "backend.incoming_dir");
}
LOG4CXX_INFO(logger, "Checking directory " << dir << " for incoming SMS.");

View file

@ -77,7 +77,7 @@ class Config {
bool reload();
bool hasKey(const std::string &key) {
return m_variables.find(key) != m_variables.end();
return m_variables.find(key) != m_variables.end() || m_unregistered.find(key) != m_unregistered.end();
}
/// Returns value of variable defined by key.
@ -85,16 +85,15 @@ class Config {
/// For variables in sections you can use "section.variable" key format.
/// \param key config variable name
const boost::program_options::variable_value &operator[] (const std::string &key) {
return m_variables[key];
if (m_variables.find(key) != m_variables.end()) {
return m_variables[key];
}
return m_unregistered[key];
}
/// Returns path to config file from which data were loaded.
const std::string &getConfigFile() { return m_file; }
const std::map<std::string, std::string> &getUnregistered() {
return m_unregistered;
}
/// This signal is emitted when config is loaded/reloaded.
boost::signal<void ()> onConfigReloaded;
@ -102,7 +101,7 @@ class Config {
int m_argc;
char **m_argv;
Variables m_variables;
std::map<std::string, std::string> m_unregistered;
std::map<std::string, boost::program_options::variable_value> m_unregistered;
std::string m_file;
};

View file

@ -187,7 +187,7 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description
BOOST_FOREACH(option &opt, parsed.options) {
if (opt.unregistered) {
m_unregistered[opt.string_key] = opt.value[0];
m_unregistered[opt.string_key] = variable_value(opt.value[0], false);
}
else if (opt.value[0].find("$jid") != std::string::npos) {
boost::replace_all(opt.value[0], "$jid", jid);