diff options
author | Adam <Adam@anope.org> | 2011-04-22 03:16:11 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-05-16 04:06:17 -0400 |
commit | c8c23158a4ff74822d6c7d201dc53d879e3d91e8 (patch) | |
tree | 4bc9ae029691d5e7c03ebc1481683a010b733844 /modules/core/os_reload.cpp | |
parent | 1782ce260c5bc214ec0b2e39257ab1371b68ae9c (diff) |
Moved the core pseudo clients out into their own modules
Diffstat (limited to 'modules/core/os_reload.cpp')
-rw-r--r-- | modules/core/os_reload.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/modules/core/os_reload.cpp b/modules/core/os_reload.cpp index 9b00ea8d8..08bb78444 100644 --- a/modules/core/os_reload.cpp +++ b/modules/core/os_reload.cpp @@ -12,6 +12,7 @@ /*************************************************************************/ #include "module.h" +#include "operserv.h" class CommandOSReload : public Command { @@ -23,16 +24,18 @@ class CommandOSReload : public Command CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) { + ServerConfig *old_config = Config; + try { - ServerConfig *newconfig = new ServerConfig(); - delete Config; - Config = newconfig; - FOREACH_MOD(I_OnReload, OnReload(false)); + Config = new ServerConfig(); + FOREACH_MOD(I_OnReload, OnReload()); + delete old_config; source.Reply(_("Services' configuration file has been reloaded.")); } catch (const ConfigException &ex) { + Config = old_config; Log() << "Error reloading configuration file: " << ex.GetReason(); source.Reply(_("Error reloading confguration file: ") + ex.GetReason()); } @@ -61,7 +64,10 @@ class OSReload : public Module this->SetAuthor("Anope"); this->SetType(CORE); - this->AddCommand(OperServ, &commandosreload); + if (!operserv) + throw ModuleException("OperServ is not loaded!"); + + this->AddCommand(operserv->Bot(), &commandosreload); } }; |