diff --git a/includes/server/CgiIn.hpp b/includes/server/CgiIn.hpp index 81e08ce..b391225 100644 --- a/includes/server/CgiIn.hpp +++ b/includes/server/CgiIn.hpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/13 18:14:45 by adjoly #+# #+# */ -/* Updated: 2025/05/29 11:34:40 by adjoly ### ########.fr */ +/* Updated: 2025/05/29 12:07:56 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,6 @@ class CgiIn : public AClientResource { } ~CgiIn(void) { log("➖", "CgiIn", "destructor called"); - close(_fd); } void process(void) { diff --git a/includes/server/ResourceManager.hpp b/includes/server/ResourceManager.hpp index d3fbf2f..5c1785f 100644 --- a/includes/server/ResourceManager.hpp +++ b/includes/server/ResourceManager.hpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/12 17:13:39 by adjoly #+# #+# */ -/* Updated: 2025/05/27 18:40:54 by adjoly ### ########.fr */ +/* Updated: 2025/05/29 12:08:41 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -81,6 +81,12 @@ class ResourceManager { } } + static void clear(void) { + for (auto it = range (_res)) { + delete *it; + } + } + protected: private: static std::vector _res; diff --git a/src/requests_handling/requestImplementation/Post.cpp b/src/requests_handling/requestImplementation/Post.cpp index a2822cc..bd33186 100644 --- a/src/requests_handling/requestImplementation/Post.cpp +++ b/src/requests_handling/requestImplementation/Post.cpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/30 09:50:20 by adjoly #+# #+# */ -/* Updated: 2025/05/29 11:44:46 by adjoly ### ########.fr */ +/* Updated: 2025/05/29 12:06:54 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,8 @@ using namespace webserv::http; +Response parseCgiOut(std::string cgi_str); + Post::Post(std::string &data, config::Server *srv) { _url = not_nullptr; _srv = srv; @@ -52,6 +54,8 @@ void Post::parse(std::string const &data) { } } + _route = _srv->whatRoute(URL(_target)); + std::ostringstream body_stream; while (std::getline(stream, line)) body_stream << line << "\n"; @@ -118,34 +122,6 @@ void Post::handleMultipartData(const std::string &body, } } -Response parseCgiOut(std::string cgi_str) { - Response response; - std::istringstream stream(cgi_str); - std::string line; - - response.setStatusCode(200); - while (std::getline(stream, line) && line != "") { - size_t delimiter_index = line.find(':'); - if (delimiter_index != std::string::npos) { - std::string key = line.substr(0, delimiter_index); - std::string value = line.substr(delimiter_index + 2); - response.addHeader(key, value); - } - } - std::ostringstream body_stream; - while (std::getline(stream, line)) - body_stream << line << "\n"; - response.setBody(body_stream.str()); - - if (response.getHeader("Content-Length") == "") { - std::stringstream length; - length << response.getBody().length(); - response.addHeader("Content-Length", length.str()); - } - return response; -} - - Response Post::execute(void) { http::Response response; diff --git a/src/server/Server.cpp b/src/server/Server.cpp index 08dc16a..6b6e496 100644 --- a/src/server/Server.cpp +++ b/src/server/Server.cpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/11 16:11:40 by adjoly #+# #+# */ -/* Updated: 2025/05/28 10:59:27 by adjoly ### ########.fr */ +/* Updated: 2025/05/29 12:07:43 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -159,4 +159,5 @@ Server::~Server(void) { delete *it; } PfdManager::clear(); + ResourceManager::clear(); } diff --git a/vgcore.111739 b/vgcore.111739 new file mode 100644 index 0000000..f8bf4fc Binary files /dev/null and b/vgcore.111739 differ diff --git a/vgcore.111861 b/vgcore.111861 new file mode 100644 index 0000000..fd2da53 Binary files /dev/null and b/vgcore.111861 differ