From 26a152c1571825b7ea7c38e7c11aa03c03feedc0 Mon Sep 17 00:00:00 2001 From: lotodore Date: Fri, 1 Jun 2012 21:26:15 +0200 Subject: [PATCH] Ignore additional "leave game" messages if the player is in the lobby (part of issue #134). --- src/net/common/serverlobbythread.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index 1f0b29bf..6b09d6c6 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -938,13 +938,15 @@ ServerLobbyThread::HandlePacket(boost::shared_ptr session, boost::s HandleNetPacketJoinGame(session, joinRequest->autoLeave, joinRequest->joinGameAction.choice.joinExistingGame); else if (joinRequest->joinGameAction.present == joinGameAction_PR_rejoinExistingGame) HandleNetPacketRejoinGame(session, joinRequest->autoLeave, joinRequest->joinGameAction.choice.rejoinExistingGame); - } else if (packet->GetMsg()->present == PokerTHMessage_PR_chatRequestMessage) + } else if (packet->GetMsg()->present == PokerTHMessage_PR_chatRequestMessage) { HandleNetPacketChatRequest(session, packet->GetMsg()->choice.chatRequestMessage); - else if (packet->GetMsg()->present == PokerTHMessage_PR_rejectGameInvitationMessage) + } else if (packet->GetMsg()->present == PokerTHMessage_PR_rejectGameInvitationMessage) { HandleNetPacketRejectGameInvitation(session, packet->GetMsg()->choice.rejectGameInvitationMessage); - else if (packet->GetMsg()->present == PokerTHMessage_PR_reportGameMessage) + } else if (packet->GetMsg()->present == PokerTHMessage_PR_reportGameMessage) { HandleNetPacketReportGame(session, packet->GetMsg()->choice.reportGameMessage); - else + } else if (packet->GetMsg()->present == PokerTHMessage_PR_leaveGameRequestMessage) { + // Ignore "leave game" in this state. + } else SessionError(session, ERR_SOCK_INVALID_STATE); } }