default and custom error pages response

+ refactoring in response.cpp (functions split)
+ added Client::clear()
+ added replace_all_substr() in utils.cpp
This commit is contained in:
LuckyLaszlo
2022-08-04 02:52:31 +02:00
parent 6f5b28dd93
commit 0026106bf6
10 changed files with 176 additions and 68 deletions

View File

@@ -0,0 +1,27 @@
#ifndef HTTP_STATUS_HPP
# define HTTP_STATUS_HPP
// https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
/*
First version of macro HTML_ERROR(STATUS) dont work with call like this :
client->response.append( HTML_ERROR( _http_status[client->status].c_str() ) );
so I made the other version with dynamic replacement of STATUS .
*/
// # define HTML_ERROR(STATUS) "\r\n<!DOCTYPE html><html><head><title>"STATUS"</title></head><body><h1 style=\"text-align:center\">"STATUS"</h1><hr><p style=\"text-align:center\">Le Webserv/0.1</p></body></html>"
# define STATUS_PLACEHOLDER "$STATUS"
# define HTML_ERROR "<!DOCTYPE html><html><head><title>" STATUS_PLACEHOLDER "</title></head><body><h1 style=\"text-align:center\">" STATUS_PLACEHOLDER "</h1><hr><p style=\"text-align:center\">Le Webserv/0.1</p></body></html>"
// When new status added, need to update _init_http_status_map()
# define S200 "200 OK"
# define S400 "400 Bad Request"
# define S404 "404 Not Found"
# define S405 "405 Method Not Allowed"
# define S413 "413 Content Too Large"
# define S500 "500 Internal Server Error"
#endif