- /* Do we need to fetch postdata? */
- postdata = "";
- InternalState = HTTP_SERVE_RECV_POSTDATA;
- /* TODO: Get content length and store */
- }
- else if (InternalState == HTTP_SERVE_RECV_POSTDATA)
- {
- /* Add postdata, once we have it all, send the event */
- }
- else
- {
- /* Headers are complete */
- InternalState = HTTP_SERVE_SEND_DATA;
-
- if ((http_version != "HTTP/1.1") && (http_version != "HTTP/1.0"))
- {
- SendHeaders(0, 505, "");
- }
- else
- {
- if ((request_type == "GET") && (uri == "/"))
- {
- SendHeaders(index->ContentSize(), 200, "");
- this->Write(index->Contents());
- }
- else
- {
- claimed = false;
- HTTPRequest httpr(request_type,uri,&headers,this,this->GetIP(),postdata);
- Event e((char*)&httpr, (Module*)HttpModule, "httpd_url");
- e.Send(this->Instance);
-
- if (!claimed)
- {
- SendHeaders(0, 404, "");
- Instance->Log(DEBUG,"Page not claimed, 404");
- }
- }
- }