Debug in progress, somes fix but not the main problem

This commit is contained in:
lperrey
2022-08-18 06:03:09 +02:00
parent a008c12058
commit 3d17db996a
13 changed files with 136 additions and 117 deletions

View File

@@ -14,6 +14,7 @@ void Webserv::_close_client(int fd)
if (::close(fd) == -1)
std::perror("err close()");
_close_client_cgi_pipes(&(*it));
// it->clear(); // PISTE, debug normalement superflu
_clients.erase(it);
break;
}
@@ -24,23 +25,38 @@ void Webserv::_close_client(int fd)
void Webserv::_close_client_cgi_pipes(Client *client)
{
if (client->cgi_state)
{
{ // No need to reset the fd to -1 normaly
std::cerr << "close cgi-pipes" << "\n";
if (::close(client->cgi_pipe_w_to_child) == -1)
std::perror("err close()");
// client->cgi_pipe_w_to_child = -1;
if (::close(client->cgi_pipe_r_from_child) == -1)
std::perror("err close()");
// client->cgi_pipe_r_from_child = -1;
if (::close(client->cgi_pipe_w_to_parent) == -1)
std::perror("err close()");
// client->cgi_pipe_w_to_parent = -1;
if (::close(client->cgi_pipe_r_from_parent) == -1)
std::perror("err close()");
// client->cgi_pipe_r_from_parent = -1;
}
}
void Webserv::_close_all_clients()
{
_close_all_clients_fd();
_clients.clear();
// REMPLACEMENT ->
/* while (!_clients.empty())
{
std::cerr << "_clients.pop_back() " << &_clients.back() << "\n";
_clients.back().clear();
_clients.pop_back();
} */
}
void Webserv::_close_all_clients_fd()