]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_loadmodule.cpp
Move the wallops mode from the core into core_wallops
[user/henk/code/inspircd.git] / src / coremods / core_loadmodule.cpp
index 4ee5da1ecba6845d963e2aef846aef3a6de2cecc..1d49d89d0eb391386c9f640454de15765b34b910 100644 (file)
@@ -78,19 +78,19 @@ class CommandUnloadmodule : public Command
 CmdResult CommandUnloadmodule::Handle(const std::vector<std::string>& parameters, User* user)
 {
        if (!ServerInstance->Config->ConfValue("security")->getBool("allowcoreunload") &&
-               InspIRCd::Match(parameters[0], "cmd_*.so", ascii_case_insensitive_map))
+               InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map))
        {
                user->WriteNumeric(ERR_CANTUNLOADMODULE, "%s :You cannot unload core commands!", parameters[0].c_str());
                return CMD_FAILURE;
        }
 
-       if (parameters[0] == "cmd_unloadmodule.so" || parameters[0] == "cmd_loadmodule.so")
+       Module* m = ServerInstance->Modules->Find(parameters[0]);
+       if (m == creator)
        {
                user->WriteNumeric(ERR_CANTUNLOADMODULE, "%s :You cannot unload module loading commands!", parameters[0].c_str());
                return CMD_FAILURE;
        }
 
-       Module* m = ServerInstance->Modules->Find(parameters[0]);
        if (m && ServerInstance->Modules->Unload(m))
        {
                ServerInstance->SNO->WriteGlobalSno('a', "MODULE UNLOADED: %s unloaded %s", user->nick.c_str(), parameters[0].c_str());