lastmodified.append(TimeRFC1123(data.ModificationTime()));
headers.push_back(lastmodified);
} /*}}}*/
+
+void addDataHeaders(std::list<std::string> &headers, std::string &data) {/*{{{*/
+ std::ostringstream contentlength;
+ contentlength << "Content-Length: " << data.size();
+ headers.push_back(contentlength.str());
+} /*}}}*/
+
bool sendHead(int client, int httpcode, std::list<std::string> &headers) { /*{{{*/
string response("HTTP/1.1 ");
response.append(httpcodeToStr(httpcode));
void sendError(int client, int httpcode, string request, bool content) { /*{{{*/
std::list<std::string> headers;
+ string response;
+ if (content == true) {
+ response.append("<html><head><title>");
+ response.append(httpcodeToStr(httpcode)).append("</title></head>");
+ response.append("<body><h1>").append(httpcodeToStr(httpcode)).append("</h1");
+ response.append("This error is a result of the request: <pre>");
+ response.append(request).append("</pre></body></html>");
+ addDataHeaders(headers, response);
+ }
sendHead(client, httpcode, headers);
- if (content == false)
- return;
- string response("<html><head><title>");
- response.append(httpcodeToStr(httpcode)).append("</title></head>");
- response.append("<body><h1>").append(httpcodeToStr(httpcode)).append("</h1");
- response.append("This error is a result of the request: <pre>");
- response.append(request).append("</pre></body></html>");
sendData(client, response);
} /*}}}*/
string filename = m->substr(5, filestart - 5);
if (simulate_broken_server == true) {
+ string data("ni ni ni\n");
+ addDataHeaders(headers, data);
sendHead(client, 200, headers);
- string data("ni ni ni");
sendData(client, data);
}
else if (RealFileExists(filename) == false)
}
_error->DumpErrors(std::cerr);
messages.clear();
-
- std::clog << "CLOSE client " << client
- << " on socket " << sock << std::endl;
- close(client);
}
+
+ std::clog << "CLOSE client " << client
+ << " on socket " << sock << std::endl;
+ close(client);
}
return 0;
}