]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Don't submit a reload worker if the module doing the reload is scheduled for unload
authorAttila Molnar <attilamolnar@hush.com>
Sun, 30 Nov 2014 17:24:17 +0000 (18:24 +0100)
committerAttila Molnar <attilamolnar@hush.com>
Sun, 30 Nov 2014 17:24:17 +0000 (18:24 +0100)
src/commands/cmd_reloadmodule.cpp
src/modules/m_globalload.cpp

index 81ecce1cbb85d27f9da166a436c933af32993cfe..eac364f0e6487ae64e520437a2988c211d5efc86 100644 (file)
@@ -66,7 +66,7 @@ CmdResult CommandReloadmodule::Handle (const std::vector<std::string>& parameter
        Module* m = ServerInstance->Modules->Find(parameters[0]);
        if (m)
        {
-               ServerInstance->Modules->Reload(m, new ReloadModuleWorker(user->uuid, parameters[0]));
+               ServerInstance->Modules->Reload(m, (creator->dying ? NULL : new ReloadModuleWorker(user->uuid, parameters[0])));
                return CMD_SUCCESS;
        }
        else
index 9e0ec7705669708473bf6cc8fbc8c5e01a7cc3b7..aed65045f58d78c9d5577e3a66e6a6834844de64 100644 (file)
@@ -151,7 +151,7 @@ class CommandGreloadmodule : public Command
                        if (m)
                        {
                                GReloadModuleWorker* worker = NULL;
-                               if (m != creator)
+                               if ((m != creator) && (!creator->dying))
                                        worker = new GReloadModuleWorker(user->nick, user->uuid, parameters[0]);
                                ServerInstance->Modules->Reload(m, worker);
                        }