From 8b14d92f10a641bb5f096a2b3767808b998448e6 2012-04-08 14:17:32 From: HanzZ Date: 2012-04-08 14:17:32 Subject: [PATCH] Don't crash when there are duplicated options and print error message instead --- diff --git a/src/config.cpp b/src/config.cpp index 816e6fba89d80da967efadc1b1a27c63ca7f9026..a1c192733233b325b088847fefdcba6d9c0f6c7d 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -193,8 +193,13 @@ bool Config::load(std::istream &ifs) { } bool Config::load(const std::string &configfile, const std::string &jid) { - options_description opts("Transport options"); - return load(configfile, opts, jid); + try { + options_description opts("Transport options"); + return load(configfile, opts, jid); + } catch ( const boost::program_options::multiple_occurrences& e ) { + std::cerr << configfile << " parsing error: " << e.what() << " from option: " << e.get_option_name() << std::endl; + return false; + } } bool Config::reload() {