diff --git a/webserv/handler/CgiProcess.cpp b/webserv/handler/CgiProcess.cpp index f9e6b54..a8ad374 100644 --- a/webserv/handler/CgiProcess.cpp +++ b/webserv/handler/CgiProcess.cpp @@ -29,6 +29,11 @@ CgiProcess::CgiProcess(const HttpRequest &request, CgiHandler &handler) spawn(); } +CgiProcess::~CgiProcess() +{ + this->kill(); +} + void CgiProcess::spawn() { const URI &uri = request_.getUri(); @@ -64,10 +69,10 @@ void CgiProcess::spawn() { int flags = fcntl(pipeStdin[0], F_GETFL, 0); fcntl(pipeStdin[0], F_SETFL, flags & ~O_NONBLOCK); - + flags = fcntl(pipeStdout[1], F_GETFL, 0); fcntl(pipeStdout[1], F_SETFL, flags & ~O_NONBLOCK); - + flags = fcntl(pipeStderr[1], F_GETFL, 0); fcntl(pipeStderr[1], F_SETFL, flags & ~O_NONBLOCK); diff --git a/webserv/handler/CgiProcess.hpp b/webserv/handler/CgiProcess.hpp index 655408b..aa23beb 100644 --- a/webserv/handler/CgiProcess.hpp +++ b/webserv/handler/CgiProcess.hpp @@ -16,7 +16,7 @@ class CgiProcess CgiProcess &operator=(const CgiProcess &other) = delete; CgiProcess &operator=(CgiProcess &&other) noexcept = delete; - ~CgiProcess() = default; + ~CgiProcess(); void kill() const noexcept; void wait() noexcept;