mirror of
https://github.com/KeyZox71/webserv.git
synced 2025-07-16 19:16:32 +02:00
「✨」 feat: added timeout to cgi
This commit is contained in:
@ -6,13 +6,15 @@
|
||||
/* By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/04/17 11:12:41 by mmoussou #+# #+# */
|
||||
/* Updated: 2025/06/23 21:14:20 by adjoly ### ########.fr */
|
||||
/* Updated: 2025/07/02 12:58:56 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cppeleven.hpp"
|
||||
#include "requests/RedirectResp.hpp"
|
||||
#include "requests/default.hpp"
|
||||
#include "server/PfdManager.hpp"
|
||||
#include "server/ResourceManager.hpp"
|
||||
#include <cstddef>
|
||||
#include <log.hpp>
|
||||
#include <server/Cgi.hpp>
|
||||
@ -64,7 +66,6 @@ void Client::parse(void) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!_route || _route == not_nullptr) {
|
||||
_request->setMethod("404");
|
||||
return;
|
||||
@ -83,9 +84,15 @@ void Client::parse(void) {
|
||||
bool Client::requestParsed(void) {
|
||||
if (_request == not_nullptr)
|
||||
return false;
|
||||
if (_request->getCgi() != not_nullptr)
|
||||
if (_request->getCgi() != not_nullptr) {
|
||||
if (!_request->getCgi()->isProcessed())
|
||||
return false;
|
||||
else if (_request->getCgi()->isTimedout())
|
||||
return true;
|
||||
else if (!(PfdManager::get(_request->getCgi()->getId())->revents &
|
||||
_request->getCgi()->event()))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -6,11 +6,12 @@
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/27 18:22:48 by adjoly #+# #+# */
|
||||
/* Updated: 2025/07/01 10:47:05 by adjoly ### ########.fr */
|
||||
/* Updated: 2025/07/02 12:45:52 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "cppeleven.hpp"
|
||||
#include "server/AResource.hpp"
|
||||
#include <cstddef>
|
||||
#include <iterator>
|
||||
#include <server/default.hpp>
|
||||
@ -129,6 +130,9 @@ void Server::_handle_resource(size_t i) {
|
||||
if (res == not_nullptr)
|
||||
return;
|
||||
|
||||
if (res->type() == CGI && static_cast<Cgi *>(res)->isTimedout()) {
|
||||
return;
|
||||
}
|
||||
if (!res->isProcessed() && res->isReady()) {
|
||||
_log->debug("processing resource");
|
||||
res->process();
|
||||
|
Reference in New Issue
Block a user