
#include "Webserv.hpp"

void	Webserv::_close_client(int fd)
{
	std::vector<Client>::iterator	it = _clients.begin();
	while (it != _clients.end())
	{
		if (*it == fd)
		{
			// _epoll_update(fd, 0, EPOLL_CTL_DEL); // normalement superflu, DEBUG
			if (::close(fd) == -1)
				std::perror("err close()");
			else
				std::cerr << "close fd " << fd << "\n";
			_clients.erase(it);
			break;
		}
		++it;
	}
}

void	Webserv::_close_all_clients()
{
	while (!_clients.empty())
	{
		// _epoll_update(_clients.back().fd, 0, EPOLL_CTL_DEL); // normalement superflu, DEBUG
		if (::close(_clients.back().get_cl_fd()) == -1)
			std::perror("err close()");
		else
			std::cerr << "close fd " << _clients.back().get_cl_fd() << "\n";
		_clients.pop_back();
	}
}

void	Webserv::_close_all_listen_sockets()
{
	while (!_listen_sockets.empty())
	{
		// _epoll_update(_listen_sockets.back().fd, 0, EPOLL_CTL_DEL); // normalement superflu, DEBUG
		if (::close(_listen_sockets.back().fd) == -1)
			std::perror("err close()");
		else
			std::cerr << "close fd " << _listen_sockets.back().fd << "\n";
		_listen_sockets.pop_back();
	}
}
