diff --git a/includes/server/CgiIn.hpp b/includes/server/CgiIn.hpp index 4dfb8e2..c30cbe9 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/07/01 11:17:52 by adjoly ### ########.fr */ +/* Updated: 2025/07/02 11:35:04 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,7 @@ #include #include #include +#include #include namespace webserv { @@ -51,6 +52,10 @@ class CgiIn : public AClientResource { clientResType type(void) const { return CGI_IN; } short event(void) const { return POLLIN; } bool isReady(void) const { + if (PfdManager::get(_fd)->revents & event()) { + _log->debug("CgiIn not ready"); + return false; + } _log->debug("CgiIn ready"); return true; } diff --git a/src/requests_handling/Cgi.cpp b/src/requests_handling/Cgi.cpp index 9cb3f7a..8f0021c 100644 --- a/src/requests_handling/Cgi.cpp +++ b/src/requests_handling/Cgi.cpp @@ -6,11 +6,12 @@ /* By: gadelbes +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/24 13:46:34 by gadelbes #+# #+# */ -/* Updated: 2025/07/01 11:26:11 by adjoly ### ########.fr */ +/* Updated: 2025/07/02 11:37:44 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "server/PfdManager.hpp" +#include "server/ResourceManager.hpp" #include #include #include @@ -56,7 +57,13 @@ Cgi::Cgi(http::Post *req, config::Route *conf) server::PfdManager::append(pfd, server::RES); } -Cgi::~Cgi(void) { log("➖", "Cgi", "destructor called"); } +Cgi::~Cgi(void) { + log("➖", "Cgi", "destructor called"); + if (_is_post) { + PfdManager::remove(_stdin_pipe[PIPE_WRITE]); + ResourceManager::remove(_stdin_pipe[PIPE_WRITE]); + } +} void Cgi::_prep(void) { if (_is_post)