diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/modules.cpp | 19 | ||||
-rw-r--r-- | src/modules/m_http.cpp | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/modules.cpp b/src/modules.cpp index 1e92e2bda..282e856c4 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -937,6 +937,25 @@ FileReader::FileReader() { } +std::string FileReader::Contents() +{ + std::string x = ""; + for (file_cache::iterator a = this->fc.begin(); a != this->fc.end(); a++) + { + x.append((std::string*)(*a)); + x.append("\r\n"); + } + return x; +} + +unsigned long FileReader::ContentSize() +{ + unsigned long n = 0; + for (file_cache::iterator a = this->fc.begin(); a != this->fc.end(); a++) + n += (((std::string*)(*a))->length() + 2); + return n; +} + void FileReader::LoadFile(const std::string &filename) { file_cache c; diff --git a/src/modules/m_http.cpp b/src/modules/m_http.cpp index d1088f3c0..9699b76a1 100644 --- a/src/modules/m_http.cpp +++ b/src/modules/m_http.cpp @@ -73,7 +73,7 @@ class HttpSocket : public InspSocket struct tm *timeinfo = localtime(&TIME); this->Write("HTTP/1.1 200 OK\r\nDate: "); this->Write(asctime(timeinfo)); - this->Write("Server: InspIRCd/m_http.so/1.1\r\nContent-Length: 27\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n"); + this->Write("Server: InspIRCd/m_http.so/1.1\r\nContent-Length: "+ConvToStr(index->FileSize())+"\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n"); } virtual bool OnDataReady() @@ -90,7 +90,7 @@ class HttpSocket : public InspSocket InternalState = HTTP_SERVE_SEND_DATA; SendHeaders(); - this->Write("<HTML><H1>COWS.</H1></HTML>"); + this->Write(index->Contents()); /* This clever hax makes InspSocket think its * in a connecting state, and time out 2 seconds |