From: Peter Powell Date: Thu, 26 Dec 2013 11:28:22 +0000 (+0000) Subject: Fix the HELPOP database being destroyed when a rehash fails. X-Git-Tag: v2.0.23~237^2 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;ds=sidebyside;h=43babe5c3eb1883c28c6c4d1a88c1bfa0f957ce8;p=user%2Fhenk%2Fcode%2Finspircd.git Fix the HELPOP database being destroyed when a rehash fails. --- diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index 92abcd76f..4bbe8785e 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -99,7 +99,6 @@ class CommandHelpop : public Command class ModuleHelpop : public Module { private: - std::string h_file; CommandHelpop cmd; Helpop ho; @@ -120,7 +119,7 @@ class ModuleHelpop : public Module void ReadConfig() { - helpop_map.clear(); + std::map help; ConfigTagList tags = ServerInstance->Config->ConfTags("helpop"); for(ConfigIter i = tags.first; i != tags.second; ++i) @@ -135,20 +134,21 @@ class ModuleHelpop : public Module throw ModuleException("m_helpop: The key 'index' is reserved for internal purposes. Please remove it."); } - helpop_map[key] = value; + help[key] = value; } - if (helpop_map.find("start") == helpop_map.end()) + if (help.find("start") == help.end()) { // error! throw ModuleException("m_helpop: Helpop file is missing important entry 'start'. Please check the example conf."); } - else if (helpop_map.find("nohelp") == helpop_map.end()) + else if (help.find("nohelp") == help.end()) { // error! throw ModuleException("m_helpop: Helpop file is missing important entry 'nohelp'. Please check the example conf."); } + helpop_map.swap(help); } void OnRehash(User* user)