From 7157e67040d4d5b64362d23df4665c1270f06ba5 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Sat, 10 May 2025 00:12:35 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=84=EC=9D=B4=EB=94=94=20=EC=A4=91?= =?UTF-8?q?=EB=B3=B5=EB=B0=A9=EC=A7=80=20=EC=9D=BC=EB=8B=A8=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=EC=B8=A1=20=EA=B5=AC=ED=98=84=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/src/ServerManager/ServerManager.cpp | 43 +++++++++++++++------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/Server/src/ServerManager/ServerManager.cpp b/Server/src/ServerManager/ServerManager.cpp index ae139cb..f9e5fc4 100644 --- a/Server/src/ServerManager/ServerManager.cpp +++ b/Server/src/ServerManager/ServerManager.cpp @@ -177,22 +177,36 @@ void ServerManager::processLoginRequestPacket(LoginRequestPacket loginRequestPac std::string userName( (char*)loginRequestPacket.__data.data, loginRequestPacket.__data.packetLength); - registerUser(userName, data->socket); + if (registerUser(userName, data->socket)) { + LoginResponsePacket loginResponsePacket; + loginResponsePacket.__data.packetType = Chattr::PacketCategory::PACKET_RESPONSE; + loginResponsePacket.__data.requestType = Chattr::RequestType::LOGIN; + loginResponsePacket.__data.dataType = Chattr::DataType::BINARY; + loginResponsePacket.__data.packetLength = sizeof(Chattr::ResponseStatusCode) + sizeof(Snowflake); + loginResponsePacket.__data.responseStatusCode = Chattr::ResponseStatusCode::RES_OK; + Snowflake yourId = userSocket2UID_[data->socket]; + ::memcpy(loginResponsePacket.__data.yourId, &yourId, sizeof(Snowflake)); - LoginResponsePacket loginResponsePacket; - loginResponsePacket.__data.packetType = Chattr::PacketCategory::PACKET_RESPONSE; - loginResponsePacket.__data.requestType = Chattr::RequestType::LOGIN; - loginResponsePacket.__data.dataType = Chattr::DataType::BINARY; - loginResponsePacket.__data.packetLength = sizeof(Chattr::ResponseStatusCode) + sizeof(Snowflake); - loginResponsePacket.__data.responseStatusCode = Chattr::ResponseStatusCode::RES_OK; - Snowflake yourId = userSocket2UID_[data->socket]; - ::memcpy(loginResponsePacket.__data.yourId, &yourId, sizeof(Snowflake)); + loginResponsePacket.convToN(); + memcpy(data->wsabuf.buf, loginResponsePacket.serialized, 18); + data->sendbytes = 18; + data->wsabuf.len = 18; + data->IOCPInstance->send(data, 1, 0); + } + else { + LoginResponsePacket loginResponsePacket; + loginResponsePacket.__data.packetType = Chattr::PacketCategory::PACKET_RESPONSE; + loginResponsePacket.__data.requestType = Chattr::RequestType::LOGIN; + loginResponsePacket.__data.dataType = Chattr::DataType::BINARY; + loginResponsePacket.__data.packetLength = sizeof(Chattr::ResponseStatusCode); + loginResponsePacket.__data.responseStatusCode = Chattr::ResponseStatusCode::BAD_REQUEST; - loginResponsePacket.convToN(); - memcpy(data->wsabuf.buf, loginResponsePacket.serialized, 18); - data->sendbytes = 18; - data->wsabuf.len = 18; - data->IOCPInstance->send(data, 1, 0); + loginResponsePacket.convToN(); + memcpy(data->wsabuf.buf, loginResponsePacket.serialized, 10); + data->sendbytes = 10; + data->wsabuf.len = 10; + data->IOCPInstance->send(data, 1, 0); + } } void ServerManager::processRoomCreateRequestPacket(RoomCreateRequestPacket roomCreateRequestPacket, Chattr::IOCPPASSINDATA* data) { @@ -428,6 +442,7 @@ bool ServerManager::registerUser(std::string userName, std::shared_ptr