pulling more

This commit is contained in:
Eric LAZO
2022-08-17 16:18:37 +02:00
parent 1a99c6cc84
commit b45ed52a2a
8 changed files with 59 additions and 17 deletions

View File

@@ -137,16 +137,18 @@ void Client::parse_request_body()
}
else if (raw_request.size() - pos >= std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10))
{
std::cerr << "Content-Length = " << std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10) << "\n";
if (get_rq_headers("Content-Type").find("multipart/form-data") != NPOS)
_parse_multipart_body(pos);
else
_request.body = raw_request.substr(pos + CRLF_SIZE*2);
body_complete = true;
}
// std::cerr << "Content-Length = " << std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10) << "\n";
// std::cerr << "raw_request.size() - pos = " << raw_request.size() - pos << "\n";
// _request.body = raw_request.substr(pos);
// std::cerr << "_request.body.size() = " << _request.body.size() << "\n";
std::cerr << "Content-Length = " << std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10) << "\n";
std::cerr << "raw_request.size() - pos = " << raw_request.size() - pos << "\n";
_request.body = raw_request.substr(pos);
std::cerr << "_request.body.size() = " << _request.body.size() << "\n";
///////////////
// Body checks
@@ -344,6 +346,7 @@ void Client::_parse_request_line()
{
std::cerr << "err _parse_first_line(): wrong number of elements (" << line.size() << " instead of 3)\n";
status = 400; // "bad request"
// if the header is fucked up, then this will be triggered, but for some reason in test_body.sh case another response 200 OK is sent first?
}
else
{
@@ -512,6 +515,7 @@ If we get a url that ends in / ignore the last /
*/
// TODO: technically i think this is useless...
std::string uri = path;
if (uri[uri.size() - 1] == '/' && uri.size() != 1)
uri.erase(uri.size() - 1);

2
srcs/cgi-bin/upload_file.php Normal file → Executable file
View File

@@ -10,7 +10,7 @@
# echo("File was uploaded successfully!");
// this part needs to be grabed from POST uri
$target_dir = "./www/uploaded/";
$target_dir = "./www/user_files/";
//$target_dir = $_POST["upload_dir"];
//$target_dir = $_GET["upload_dir"];
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

View File

@@ -55,8 +55,11 @@ int Webserv::_read_request(Client *client)
// print_special(client->raw_request);
std::cerr << "client header complete: " << client->header_complete << "\n"; // DEBUG
if (!client->header_complete)
{
std::cout << "Header not complete\n"; // debug
client->parse_request_headers(_servers);
if (client->status)
return READ_COMPLETE;
@@ -75,6 +78,7 @@ int Webserv::_read_request(Client *client)
}
if (client->header_complete)
{
std::cerr << "Client header Complete\n";
// client->read_body_size += ret; // Not accurate, part of body could have been read with headers, unused for now
client->parse_request_body();
if (client->status || client->body_complete)