add: content-length, server

This commit is contained in:
Talyx
2022-02-01 16:41:41 +03:00
parent d3425e88a3
commit 4e673e46fb
2 changed files with 39 additions and 19 deletions

View File

@@ -5,6 +5,7 @@
Response::Response()
{
initErrorCode();
_code = 200;
}
//-------------------------------------------------GET/SET---------------------------------------
@@ -21,6 +22,7 @@ std::string Response::getBody(void)
void Response::setData(Request request, ServerConfig *config)
{
_request = request;
_code = request.getCode();
_config = config;
}
@@ -65,32 +67,48 @@ void Response::invalidClient(void)
{
std::stringstream ss;
std::string tmp;
//Header
ss << _request.getVersion() << " " << _request.getCode() << " " << getReasonPhrase(_request.getCode()) << "\r\nContent-Type: text/html\r\n\r\n";
_header = ss.str();
//body
_body = getErrorPage(_request.getCode());
std::cout << RED << "Invalid Client method called\nCODE: " << _request.getCode() << " " << getReasonPhrase(_request.getCode()) << ZERO_C << std::endl;
std::cout << _header << std::endl << _body << std::endl;
// _body = getErrorPage(_code);
// std::cout << RED << "Invalid Client method called\nCODE: " << _code << " " << getReasonPhrase(_code) << ZERO_C << std::endl;
generateBody();
//Header
generateHeader();
}
void Response::generateBody(void)
{
if (!_request.badCode(_code) && _request.isDir(_request.getFullUri()) == 0)
_body = Autoindex::getPage(_request.getURI(), _request.getFullUri(), _request.getHost());
else if (!_request.badCode(_code) && _request.isFile(_request.getFullUri()) == 0)
OpenResponseFile(_request.getFullUri().c_str());
else
_body = getErrorPage(_code);
}
void Response::generateHeader(void)
{
std::stringstream ss;
std::string tmp;
ss << "HTTP/1.1" << " " << _request.getCode() << " " << getReasonPhrase(_request.getCode())
<< "\r\nContent-Type: text/html"
<< "\r\nContent-Length: " << _body.size()
<< "\r\nServer: poheck"
<< "\r\n\r\n";
_header = ss.str();
}
void Response::methodGet(void)
{
std::stringstream ss;
std::string tmp;
//Client
ss << _request.getVersion() << " " << _request.getCode() << " " << getReasonPhrase(_request.getCode()) << "\r\nContent-Type: text/html\r\n\r\n";
_header = ss.str();
//body
if (!_request.badCode(_request.getCode()) && _request.isDir(_request.getFullUri()) == 0)
_body = Autoindex::getPage(_request.getURI(), _request.getFullUri(), _request.getHost());
else if (!_request.badCode(_request.getCode()))
OpenResponseFile(_request.getFullUri().c_str());
else
_body = getErrorPage(_request.getCode());
generateBody();
generateHeader();
std::cout << GREEN << "GET method called\n" << ZERO_C;
}
//-------------------------------------------------GET/SET---------------------------------------

View File

@@ -12,6 +12,7 @@ private:
std::string _header;
Request _request;
ServerConfig *_config;
int _code;
private:
static std::map<std::string, std::string> _errorCode;
@@ -21,7 +22,8 @@ private:
// void methodPost(void);
// void methodDelete(void);
void invalidClient(void);
void generateHeader(void);
void generateBody(void);
public:
std::string getHeader(void);
std::string getBody(void);