wip debug comparison fields output script
This commit is contained in:
@@ -79,12 +79,10 @@ void Client::parse_request_headers(std::vector<ServerConfig> &servers)
|
||||
{
|
||||
clear_request(); // not mandatory
|
||||
_parse_request_line();
|
||||
// debug
|
||||
print_client("first line");
|
||||
if (status)
|
||||
return;
|
||||
_parse_request_fields();
|
||||
// debug
|
||||
// DEBUG
|
||||
print_client("headers");
|
||||
if (status)
|
||||
return;
|
||||
@@ -93,8 +91,7 @@ print_client("headers");
|
||||
_check_request_errors();
|
||||
if (status)
|
||||
return;
|
||||
// use getter for headers because it works case insensitive
|
||||
_parse_port_hostname(this->get_rq_headers("Host"));
|
||||
_parse_port_hostname(this->get_rq_headers("Host")); // use getter for headers because it works case insensitive
|
||||
|
||||
// dont clear raw_request, we need it for future reparsing of body
|
||||
// see call of parse_request() in _read_request()
|
||||
@@ -169,7 +166,7 @@ void Client::print_client(std::string message)
|
||||
std::map<std::string, std::string>::iterator it;
|
||||
|
||||
std::cout << "\n=== DEBUG PRINT CLIENT ===\n";
|
||||
std::cout << "\n" << message << ":----------\n\n" << "raw_request:\n__\n";
|
||||
std::cout << message << ":\n----------\n\n" << "raw_request:\n__\n";
|
||||
::print_special(raw_request);
|
||||
std::cout << "\n__\n"
|
||||
<< "get_cl_fd() : [" << get_cl_fd() << "]\n"
|
||||
@@ -187,8 +184,8 @@ void Client::print_client(std::string message)
|
||||
<< "get_rq_script_info() : [" << get_rq_script_info() << "]\n"
|
||||
<< "headers :\n";
|
||||
for (it = _request.headers.begin(); it != _request.headers.end(); it++)
|
||||
std::cout << " " << it->first << ": " << it->second << "\n";
|
||||
std::cout << "\n=== END DEBUG ===\n\n";
|
||||
std::cout << " " << it->first << ": [" << it->second << "]\n";
|
||||
std::cout << "\n=== END PRINT CLIENT ===\n\n";
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
@@ -269,16 +266,22 @@ void Client::_parse_request_fields()
|
||||
int ret;
|
||||
|
||||
headers = raw_request;
|
||||
// extract header part
|
||||
::extract_line(headers, 0, CRLF); // delete first line
|
||||
// delete first line
|
||||
pos = headers.find(CRLF);
|
||||
if (pos != std::string::npos)
|
||||
headers.erase(0, pos + std::string(CRLF).size());
|
||||
// delete body part
|
||||
pos = headers.find(CRLF CRLF);
|
||||
// ::extract_line(headers, pos); // delete from empty line to the end
|
||||
headers.erase(pos); //delete from empty line to the end
|
||||
if (pos != std::string::npos)
|
||||
headers.erase(pos);
|
||||
else {
|
||||
std::cerr << "err _parse_request_fields(): request header doesn't end with empty line\n";
|
||||
status = 400; // "bad request"
|
||||
}
|
||||
// copy result of parser into headers
|
||||
ret = ::parse_http_headers(raw_request, _request.headers);
|
||||
if (ret > 0)
|
||||
{
|
||||
std::cerr << "err _parse_request_headers(): " << ret << " field are bad formated\n";
|
||||
ret = ::parse_http_headers(headers, _request.headers);
|
||||
if (ret > 0) {
|
||||
std::cerr << "err _parse_request_fields(): " << ret << " fields are bad formated\n";
|
||||
status = 400; // "bad request"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user