]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modmanager_dynamic.cpp
Fix typos in ebdaf368e137fc933e648ee88a08a4f83e796f87
[user/henk/code/inspircd.git] / src / modmanager_dynamic.cpp
index 0e90a9ae5e6976cf12021f040d6f1f56234224f1..dab1143adc8567aaf103c2b1ba1c396d5ad7e100 100644 (file)
@@ -24,6 +24,7 @@
 #include "command_parse.h"
 #include "dns.h"
 #include "exitcodes.h"
+#include <iostream>
 
 #ifndef _WIN32
 #include <dirent.h>
@@ -93,7 +94,10 @@ bool ModuleManager::Load(const std::string& filename, bool defer)
        {
                // failure in module constructor
                if (newmod)
+               {
                        DoSafeUnload(newmod);
+                       ServerInstance->GlobalCulls.AddItem(newhandle);
+               }
                else
                        delete newhandle;
                LastModuleError = "Unable to load " + filename + ": " + modexcept.GetReason();
@@ -183,7 +187,7 @@ void ModuleManager::LoadAll()
 {
        ModCount = 0;
 
-       printf("\nLoading core commands");
+       std::cout << std::endl << "Loading core commands";
        fflush(stdout);
 
        DIR* library = opendir(ServerInstance->Config->ModPath.c_str());
@@ -194,19 +198,19 @@ void ModuleManager::LoadAll()
                {
                        if (InspIRCd::Match(entry->d_name, "cmd_*.so", ascii_case_insensitive_map))
                        {
-                               printf(".");
+                               std::cout << ".";
                                fflush(stdout);
 
                                if (!Load(entry->d_name, true))
                                {
                                        ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
-                                       printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str());
+                                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "] " << this->LastError() << std::endl << std::endl;
                                        ServerInstance->Exit(EXIT_STATUS_MODULE);
                                }
                        }
                }
                closedir(library);
-               printf("\n");
+               std::cout << std::endl;
        }
 
        ConfigTagList tags = ServerInstance->Config->ConfTags("module");
@@ -214,12 +218,12 @@ void ModuleManager::LoadAll()
        {
                ConfigTag* tag = i->second;
                std::string name = tag->getString("name");
-               printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n",name.c_str());
+               std::cout << "[" << con_green << "*" << con_reset << "] Loading module:\t" << con_green << name << con_reset << std::endl;
 
                if (!this->Load(name, true))
                {
                        ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
-                       printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str());
+                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "] " << this->LastError() << std::endl << std::endl;
                        ServerInstance->Exit(EXIT_STATUS_MODULE);
                }
        }
@@ -227,7 +231,7 @@ void ModuleManager::LoadAll()
        for(std::map<std::string, Module*>::iterator i = Modules.begin(); i != Modules.end(); i++)
        {
                Module* mod = i->second;
-               try 
+               try
                {
                        ServerInstance->Logs->Log("MODULE", DEBUG, "Initializing %s", i->first.c_str());
                        mod->init();
@@ -236,7 +240,7 @@ void ModuleManager::LoadAll()
                {
                        LastModuleError = "Unable to initialize " + mod->ModuleSourceFile + ": " + modexcept.GetReason();
                        ServerInstance->Logs->Log("MODULE", DEFAULT, LastModuleError);
-                       printf_c("\n[\033[1;31m*\033[0m] %s\n\n", LastModuleError.c_str());
+                       std::cout << std::endl << "[" << con_red << "*" << con_reset << "] " << LastModuleError << std::endl << std::endl;
                        ServerInstance->Exit(EXIT_STATUS_MODULE);
                }
        }