From 1dd466029961608a5008d8596d50ecc9adf898a4 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 24 Feb 2008 14:32:06 +0000 Subject: [PATCH] This segfaults atm. i'm working on it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9016 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/configreader.cpp | 8 ++++++++ src/modules.cpp | 17 ++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/configreader.cpp b/src/configreader.cpp index d2a7ccfd4..be2b52ae1 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -1336,6 +1336,8 @@ int ServerConfig::DoDownloads() CompletedFiles[x->first] = true; } + ServerInstance->Logs->Log("CONFIG",DEBUG,"Returning %d from DoDownloads()", new_downloads); + return new_downloads; } @@ -1398,7 +1400,10 @@ bool ServerConfig::LoadConf(ConfigDataHash &target, const char* filename, std::o if (!scan_for_includes_only) { if (x->second) + { + ServerInstance->Logs->Log("CONFIG",DEBUG,"Retrieve conf"); conf = IncludedFiles.find(filename)->second; + } else { errorstream << "File " << filename << " could not be opened." << std::endl; @@ -1408,6 +1413,9 @@ bool ServerConfig::LoadConf(ConfigDataHash &target, const char* filename, std::o } } + if (!conf) + return false; + ServerInstance->Logs->Log("CONFIG",DEBUG,"Start to read conf %s %08lx", filename, conf); /* Start reading characters... */ diff --git a/src/modules.cpp b/src/modules.cpp index 3e7ae9cdf..c3315490e 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -551,14 +551,17 @@ void ModuleManager::LoadAll() for(int count = 0; count < Instance->Config->ConfValueEnum(Instance->Config->config_data, "module"); count++) { - Instance->Config->ConfValue(Instance->Config->config_data, "module", "name", count, configToken, MAXBUF); - printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n",configToken); - - if (!this->Load(configToken)) + if (!this->Find(configToken)) { - Instance->Logs->Log("MODULE", DEFAULT, this->LastError()); - printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str()); - Instance->Exit(EXIT_STATUS_MODULE); + Instance->Config->ConfValue(Instance->Config->config_data, "module", "name", count, configToken, MAXBUF); + printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n",configToken); + + if (!this->Load(configToken)) + { + Instance->Logs->Log("MODULE", DEFAULT, this->LastError()); + printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str()); + Instance->Exit(EXIT_STATUS_MODULE); + } } } } -- 2.39.5