diff --git a/Server/src/ServerManager/ServerManager.cpp b/Server/src/ServerManager/ServerManager.cpp index 83a24e3..0235568 100644 --- a/Server/src/ServerManager/ServerManager.cpp +++ b/Server/src/ServerManager/ServerManager.cpp @@ -6,8 +6,14 @@ namespace Chattr { void ServerManager::_IOCPClient(Chattr::ThreadPool* thread, Chattr::IOCPPASSINDATA* data) { if (data->event == IOCPEVENT::QUIT) { - if (userSocket2UID_.find(data->socket) != userSocket2UID_.end()) + if (userSocket2UID_.find(data->socket) != userSocket2UID_.end()) { + for (auto room : rooms_) { + if (room.second.find(userSocket2UID_[data->socket]) != room.second.end()) { + exitRoom(userSocket2UID_[data->socket], room.first); + } + } deleteUser(userSocket2UID_[data->socket]); + } delete data; return; }