Files
42_INT_12_webserv/srcs/webserv/accept.cpp
2022-08-06 04:46:40 +02:00

28 lines
599 B
C++

#include "Webserv.hpp"
void Webserv::_accept_connection(listen_socket &lsocket)
{
struct sockaddr_in addr;
socklen_t addr_len;
int accepted_fd;
std::cerr << "accept()\n";
addr_len = sizeof addr;
accepted_fd = ::accept(lsocket.fd, (sockaddr*)&addr, &addr_len);
if (accepted_fd == -1)
{
std::perror("err accept()");
if (g_last_signal)
_handle_last_signal();
return ;
}
::fcntl(accepted_fd, F_SETFL, O_NONBLOCK);
_clients.push_back(Client());
_clients.back().fd = accepted_fd;
_clients.back().lsocket = &lsocket;
_epoll_update(accepted_fd, EPOLLIN, EPOLL_CTL_ADD);
}