From 6f1e07b77b806c25ed818b07628ff33a93b6d094 Mon Sep 17 00:00:00 2001 From: 3lswear Date: Sun, 27 Feb 2022 16:18:24 +0300 Subject: [PATCH] feat: add delete_client_force --- src/Server/Server.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index 20a2983..e43bf36 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -102,6 +102,24 @@ void Server::readSocket(Client &client, int fd) (void)status; } +inline int Server::delete_client_force(std::map &client_map, int fd) +{ + DBOUT << WARNING << getDebugTime() << OKCYAN + << " force deleting client " + << fd + << ENDL; + + int ret; + ret = epoll_ctl(_epoll_fd, EPOLL_CTL_DEL, fd, NULL); + assert(ret == 0); + close(fd); + client_map[fd]->clear(); + delete (client_map[fd]); + client_map.erase(fd); + return (ret); +} + + inline int Server::delete_client(std::map &client_map, int fd) { if (client_map[fd]->getRequest().getConnection() == "close")