- struct tm *timeinfo = localtime(&TIME);
- this->Write("HTTP/1.1 "+ConvToStr(response)+" "+Response(response)+"\r\nDate: ");
- this->Write(asctime(timeinfo));
- if (extraheaders.empty())
+
+ WriteData(http_version + " "+ConvToStr(response)+" "+Response(response)+"\r\n");
+
+ time_t local = ServerInstance->Time();
+ struct tm *timeinfo = gmtime(&local);
+ char *date = asctime(timeinfo);
+ date[strlen(date) - 1] = '\0';
+ rheaders.CreateHeader("Date", date);
+
+ rheaders.CreateHeader("Server", "InspIRCd/m_httpd.so/1.2");
+ rheaders.SetHeader("Content-Length", ConvToStr(size));
+
+ if (size)
+ rheaders.CreateHeader("Content-Type", "text/html");
+ else
+ rheaders.RemoveHeader("Content-Type");
+
+ /* Supporting Connection: keep-alive causes a whole world of hurt syncronizing timeouts,
+ * so remove it, its not essential for what we need.
+ */
+ rheaders.SetHeader("Connection", "Close");
+
+ WriteData(rheaders.GetFormattedHeaders());
+ WriteData("\r\n");
+ }
+
+ void OnDataReady()
+ {
+ if (InternalState == HTTP_SERVE_RECV_POSTDATA)