]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modmanager_static.cpp
Merge pull request #1018 from SaberUK/insp20+hidekills
[user/henk/code/inspircd.git] / src / modmanager_static.cpp
index b105eea924a23ff478a30e9bfcb7520c96469e11..cea40c7a32364e75a807866f7979e6730c88a40c 100644 (file)
@@ -93,6 +93,7 @@ bool ModuleManager::Load(const std::string& name, bool defer)
                mod = (*it->second->init)();
                mod->ModuleSourceFile = name;
                mod->ModuleDLLManager = NULL;
+               mod->dying = false;
                Modules[name] = mod;
                if (defer)
                {
@@ -157,7 +158,8 @@ namespace {
                        ServerInstance->Modules->DoSafeUnload(mod);
                        ServerInstance->GlobalCulls.Apply();
                        bool rv = ServerInstance->Modules->Load(name.c_str());
-                       callback->Call(rv);
+                       if (callback)
+                               callback->Call(rv);
                        ServerInstance->GlobalCulls.AddItem(this);
                }
        };
@@ -175,7 +177,7 @@ void ModuleManager::Reload(Module* mod, HandlerBase1<void, bool>* callback)
 {
        if (CanUnload(mod))
                ServerInstance->AtomicActions.AddAction(new ReloadAction(mod, callback));
-       else
+       else if (callback)
                callback->Call(false);
 }
 
@@ -183,6 +185,7 @@ void ModuleManager::LoadAll()
 {
        Load("cmd_all", true);
        Load("cmd_whowas.so", true);
+       Load("cmd_lusers.so", true);
 
        ConfigTagList tags = ServerInstance->Config->ConfTags("module");
        for(ConfigIter i = tags.first; i != tags.second; ++i)
@@ -194,7 +197,7 @@ void ModuleManager::LoadAll()
                if (!this->Load(name, true))
                {
                        ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
-                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << this->LastError() << std::endl << std::endl;
+                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "] " << this->LastError() << std::endl << std::endl;
                        ServerInstance->Exit(EXIT_STATUS_MODULE);
                }
        }
@@ -210,7 +213,7 @@ void ModuleManager::LoadAll()
                {
                        LastModuleError = "Unable to initialize " + mod->ModuleSourceFile + ": " + modexcept.GetReason();
                        ServerInstance->Logs->Log("MODULE", DEFAULT, LastModuleError);
-                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << LastModuleError << std::endl << std::endl;
+                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "] " << LastModuleError << std::endl << std::endl;
                        ServerInstance->Exit(EXIT_STATUS_MODULE);
                }
        }