diff options
-rw-r--r-- | src/modules.cpp | 17 | ||||
-rw-r--r-- | src/modules/m_httpd.cpp | 2 |
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); } |