Provide a facility for modules to flag a config file completed

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8576 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
brain 2007-11-11 19:34:06 +00:00
parent 6408757295
commit 60a6385be4
2 changed files with 24 additions and 0 deletions

View File

@ -260,6 +260,8 @@ class CoreExport ServerConfig : public Extensible
bool Downloading();
void StartDownloads();
void Complete(const std::string &filename, bool error);
/** This holds all the information in the config file,
* it's indexed by tag name to a vector of key/values.

View File

@ -1208,6 +1208,10 @@ void ServerConfig::Read(bool bail, User* user, int pass)
{
for (std::vector<std::string>::iterator adding = added_modules.begin(); adding != added_modules.end(); adding++)
{
/* Skip over modules that are aleready loaded for some reason */
if (ServerInstance->Modules->Find(*adding))
continue;
if (bail)
printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n", adding->c_str());
@ -1253,6 +1257,24 @@ bool ServerConfig::Downloading()
return (TotalDownloaded < IncludedFiles.size());
}
void ServerConfig::Complete(const std::string &filename, bool error)
{
std::map<std::string, std::istream*>::iterator x = IncludedFiles.find(filename);
if (x != IncludedFiles.end())
{
TotalDownloaded++;
if (error)
{
delete x->second;
x->second = NULL;
FileErrors++;
}
}
return;
}
void ServerConfig::StartDownloads()
{
if (isatty(0) && isatty(1) && isatty(2))