summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules.cpp17
-rw-r--r--src/modules/m_httpd.cpp2
2 files changed, 13 insertions, 6 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index 211ce9853..2818de639 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -719,9 +719,11 @@ bool ConfigReader::Verify()
FileReader::FileReader(InspIRCd* Instance, const std::string &filename) : ServerInstance(Instance)
{
file_cache c;
- ServerInstance->Config->ReadFile(c,filename.c_str());
- this->fc = c;
- this->CalcSize();
+ if (!ServerInstance->Config->ReadFile(c,filename.c_str()))
+ {
+ this->fc = c;
+ this->CalcSize();
+ }
}
FileReader::FileReader(InspIRCd* Instance) : ServerInstance(Instance)
@@ -755,9 +757,12 @@ void FileReader::CalcSize()
void FileReader::LoadFile(const std::string &filename)
{
file_cache c;
- ServerInstance->Config->ReadFile(c,filename.c_str());
- this->fc = c;
- this->CalcSize();
+ c.clear();
+ if (ServerInstance->Config->ReadFile(c,filename.c_str()))
+ {
+ this->fc = c;
+ this->CalcSize();
+ }
}
diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp
index b2ede6619..3342ba37d 100644
--- a/src/modules/m_httpd.cpp
+++ b/src/modules/m_httpd.cpp
@@ -371,6 +371,8 @@ class ModuleHttpServer : public Module
port = c.ReadInteger("http", "port", i, true);
indexfile = c.ReadValue("http", "index", i);
index = new FileReader(ServerInstance, indexfile);
+ if (!index->Exists())
+ throw ModuleException("Can't read index file: "+indexfile);
http = new HttpServerSocket(ServerInstance, bindip, port, true, 0, index);
httpsocks.push_back(http);
}