mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
Be more specific when a HTTP parser error happens.
This commit is contained in:
parent
fd8faa7e21
commit
092f2b1818
@ -264,14 +264,14 @@ class HttpServerSocket : public BufferedSocket, public Timer, public insp::intru
|
||||
Close();
|
||||
}
|
||||
|
||||
void SendHTTPError(unsigned int response)
|
||||
void SendHTTPError(unsigned int response, const char* errstr = NULL)
|
||||
{
|
||||
static HTTPHeaders empty;
|
||||
std::string data = InspIRCd::Format(
|
||||
"<html><head></head><body style='font-family: sans-serif; text-align: center'>"
|
||||
"<h1 style='font-size: 48pt'>Error %u</h1><h2 style='font-size: 24pt'>%s</h2><hr>"
|
||||
"<small>Powered by <a href='https://www.inspircd.org'>InspIRCd</a></small></body></html>",
|
||||
response, http_status_str((http_status)response));
|
||||
response, errstr ? errstr : http_status_str((http_status)response));
|
||||
|
||||
Page(data, response, &empty);
|
||||
}
|
||||
@ -303,8 +303,10 @@ class HttpServerSocket : public BufferedSocket, public Timer, public insp::intru
|
||||
if (parser.upgrade || HTTP_PARSER_ERRNO(&parser))
|
||||
return;
|
||||
http_parser_execute(&parser, &parser_settings, recvq.data(), recvq.size());
|
||||
if (parser.upgrade || HTTP_PARSER_ERRNO(&parser))
|
||||
if (parser.upgrade)
|
||||
SendHTTPError(status_code ? status_code : 400);
|
||||
else if (HTTP_PARSER_ERRNO(&parser))
|
||||
SendHTTPError(status_code ? status_code : 400, http_errno_description((http_errno)parser.http_errno));
|
||||
}
|
||||
|
||||
void ServeData()
|
||||
|
Loading…
x
Reference in New Issue
Block a user