]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modmanager_static.cpp
Show a better warning when certtool/openssl are missing.
[user/henk/code/inspircd.git] / src / modmanager_static.cpp
index 69420a4f9a3ae3d42705d53fcc83766406f3b198..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)