Fixing problem with subscription request message.
This commit is contained in:
@@ -590,6 +590,8 @@ AbstractClientStateReceiving::HandleLobbyMsg(boost::shared_ptr<ClientThread> cli
|
||||
} else {
|
||||
client->SetUnknownPlayer(playerId);
|
||||
}
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_SubscriptionReplyMessage) {
|
||||
// Ignore for now.
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_TimeoutWarningMessage) {
|
||||
const TimeoutWarningMessage &tmpTimeout = lobbyMsg.timeoutwarningmessage();
|
||||
client->GetCallback().SignalNetClientShowTimeoutDialog((NetTimeoutReason)tmpTimeout.timeoutreason(), tmpTimeout.remainingseconds());
|
||||
|
||||
@@ -1012,6 +1012,7 @@ ClientThread::UnsubscribeLobbyMsg()
|
||||
LobbyMessage *netLobby = packet->GetMsg()->mutable_lobbymessage();
|
||||
netLobby->set_messagetype(LobbyMessage::Type_SubscriptionRequestMessage);
|
||||
SubscriptionRequestMessage *netRequest = netLobby->mutable_subscriptionrequestmessage();
|
||||
netRequest->set_requestid(1);
|
||||
netRequest->set_subscriptionaction(SubscriptionRequestMessage::unsubscribeGameList);
|
||||
GetSender().Send(GetContext().GetSessionData(), packet);
|
||||
GetContext().SetSubscribeLobbyMsg(false);
|
||||
@@ -1030,6 +1031,7 @@ ClientThread::ResubscribeLobbyMsg()
|
||||
LobbyMessage *netLobby = packet->GetMsg()->mutable_lobbymessage();
|
||||
netLobby->set_messagetype(LobbyMessage::Type_SubscriptionRequestMessage);
|
||||
SubscriptionRequestMessage *netRequest = netLobby->mutable_subscriptionrequestmessage();
|
||||
netRequest->set_requestid(1);
|
||||
netRequest->set_subscriptionaction(SubscriptionRequestMessage::resubscribeGameList);
|
||||
GetSender().Send(GetContext().GetSessionData(), packet);
|
||||
GetContext().SetSubscribeLobbyMsg(true);
|
||||
|
||||
@@ -449,12 +449,6 @@ ServerLobbyThread::CloseSession(boost::shared_ptr<SessionData> session)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ServerLobbyThread::ResubscribeLobbyMsg(boost::shared_ptr<SessionData> session)
|
||||
{
|
||||
InternalResubscribeMsg(session);
|
||||
}
|
||||
|
||||
void
|
||||
ServerLobbyThread::NotifyPlayerJoinedLobby(unsigned playerId)
|
||||
{
|
||||
@@ -999,17 +993,13 @@ ServerLobbyThread::HandlePacket(boost::shared_ptr<SessionData> session, boost::s
|
||||
SessionError(session, ERR_SOCK_INVALID_STATE);
|
||||
}
|
||||
} else {
|
||||
if (lobbyMsg.messagetype() == LobbyMessage::Type_PlayerInfoRequestMessage)
|
||||
if (lobbyMsg.messagetype() == LobbyMessage::Type_PlayerInfoRequestMessage) {
|
||||
HandleNetPacketRetrievePlayerInfo(session, lobbyMsg.playerinforequestmessage());
|
||||
else if (lobbyMsg.messagetype() == LobbyMessage::Type_AvatarRequestMessage)
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_AvatarRequestMessage) {
|
||||
HandleNetPacketRetrieveAvatar(session, lobbyMsg.avatarrequestmessage());
|
||||
else if (lobbyMsg.messagetype() == LobbyMessage::Type_ResetTimeoutMessage) {
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_ResetTimeoutMessage) {
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_SubscriptionRequestMessage) {
|
||||
const SubscriptionRequestMessage &subscriptionRequest = lobbyMsg.subscriptionrequestmessage();
|
||||
if (subscriptionRequest.subscriptionaction() == SubscriptionRequestMessage::resubscribeGameList)
|
||||
InternalResubscribeMsg(session);
|
||||
else
|
||||
session->ResetWantsLobbyMsg();
|
||||
HandleNetPacketSubscriptionRequest(session, lobbyMsg.subscriptionrequestmessage());
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_CreateGameMessage) {
|
||||
HandleNetPacketCreateGame(session, lobbyMsg.creategamemessage());
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_JoinGameMessage) {
|
||||
@@ -1026,13 +1016,6 @@ ServerLobbyThread::HandlePacket(boost::shared_ptr<SessionData> session, boost::s
|
||||
HandleNetPacketAdminRemoveGame(session, lobbyMsg.adminremovegamemessage());
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_AdminBanPlayerMessage) {
|
||||
HandleNetPacketAdminBanPlayer(session, lobbyMsg.adminbanplayermessage());
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_SubscriptionRequestMessage) {
|
||||
const SubscriptionRequestMessage &netSubscription = lobbyMsg.subscriptionrequestmessage();
|
||||
if (netSubscription.subscriptionaction() == SubscriptionRequestMessage::resubscribeGameList) {
|
||||
if (!session->WantsLobbyMsg())
|
||||
ResubscribeLobbyMsg(session);
|
||||
} else
|
||||
session->ResetWantsLobbyMsg();
|
||||
} else if (lobbyMsg.messagetype() == LobbyMessage::Type_ReportAvatarMessage) {
|
||||
HandleNetPacketReportAvatar(session, lobbyMsg.reportavatarmessage());
|
||||
} else {
|
||||
@@ -1353,6 +1336,26 @@ ServerLobbyThread::HandleNetPacketRetrieveAvatar(boost::shared_ptr<SessionData>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ServerLobbyThread::HandleNetPacketSubscriptionRequest(boost::shared_ptr<SessionData> session, const SubscriptionRequestMessage &subscriptionRequest)
|
||||
{
|
||||
if (subscriptionRequest.subscriptionaction() == SubscriptionRequestMessage::resubscribeGameList) {
|
||||
InternalResubscribeMsg(session);
|
||||
} else {
|
||||
session->ResetWantsLobbyMsg();
|
||||
}
|
||||
boost::shared_ptr<NetPacket> packet(new NetPacket);
|
||||
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_LobbyMessage);
|
||||
LobbyMessage *netLobby = packet->GetMsg()->mutable_lobbymessage();
|
||||
netLobby->set_messagetype(LobbyMessage::Type_SubscriptionReplyMessage);
|
||||
SubscriptionReplyMessage *netReply = netLobby->mutable_subscriptionreplymessage();
|
||||
netReply->set_requestid(subscriptionRequest.requestid());
|
||||
netReply->set_ack(true);
|
||||
|
||||
GetSender().Send(session, packet);
|
||||
}
|
||||
|
||||
void
|
||||
ServerLobbyThread::HandleNetPacketCreateGame(boost::shared_ptr<SessionData> session, const CreateGameMessage &newGame)
|
||||
{
|
||||
|
||||
@@ -51,6 +51,7 @@ LobbyMessageValidator::LobbyMessageValidator()
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_PlayerInfoRequestMessage, ValidatePlayerInfoRequestMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_PlayerInfoReplyMessage, ValidatePlayerInfoReplyMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_SubscriptionRequestMessage, ValidateSubscriptionRequestMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_SubscriptionReplyMessage, ValidateSubscriptionReplyMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_CreateGameMessage, ValidateCreateGameMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_JoinGameMessage, ValidateJoinGameMessage));
|
||||
m_validationMap.insert(make_pair(LobbyMessage_LobbyMessageType_Type_RejoinGameMessage, ValidateRejoinGameMessage));
|
||||
@@ -300,6 +301,17 @@ LobbyMessageValidator::ValidateSubscriptionRequestMessage(const LobbyMessage &ms
|
||||
return retVal;
|
||||
}
|
||||
|
||||
bool
|
||||
LobbyMessageValidator::ValidateSubscriptionReplyMessage(const LobbyMessage &msg)
|
||||
{
|
||||
bool retVal = false;
|
||||
if (msg.has_subscriptionreplymessage()) {
|
||||
//const SubscriptionReplyMessage &subscribe = msg.subscriptionreplymessage();
|
||||
retVal = true;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
bool
|
||||
LobbyMessageValidator::ValidateCreateGameMessage(const LobbyMessage &msg)
|
||||
{
|
||||
|
||||
@@ -75,7 +75,6 @@ public:
|
||||
void ReAddSession(boost::shared_ptr<SessionData> session, int reason, unsigned gameId);
|
||||
void MoveSessionToGame(boost::shared_ptr<ServerGame> game, boost::shared_ptr<SessionData> session, bool autoLeave, bool spectateOnly);
|
||||
void SessionError(boost::shared_ptr<SessionData> session, int errorCode);
|
||||
void ResubscribeLobbyMsg(boost::shared_ptr<SessionData> session);
|
||||
void NotifyPlayerJoinedLobby(unsigned playerId);
|
||||
void NotifyPlayerLeftLobby(unsigned playerId);
|
||||
void NotifyPlayerJoinedGame(unsigned gameId, unsigned playerId);
|
||||
@@ -152,6 +151,7 @@ protected:
|
||||
void HandleNetPacketAvatarEnd(boost::shared_ptr<SessionData> session, const AvatarEndMessage &avatarEnd);
|
||||
void HandleNetPacketRetrievePlayerInfo(boost::shared_ptr<SessionData> session, const PlayerInfoRequestMessage &playerInfoRequest);
|
||||
void HandleNetPacketRetrieveAvatar(boost::shared_ptr<SessionData> session, const AvatarRequestMessage &retrieveAvatar);
|
||||
void HandleNetPacketSubscriptionRequest(boost::shared_ptr<SessionData> session, const SubscriptionRequestMessage &subscriptionRequest);
|
||||
void HandleNetPacketCreateGame(boost::shared_ptr<SessionData> session, const CreateGameMessage &createGame);
|
||||
void HandleNetPacketJoinGame(boost::shared_ptr<SessionData> session, const JoinGameMessage &joinGame);
|
||||
void HandleNetPacketRejoinGame(boost::shared_ptr<SessionData> session, const RejoinGameMessage &rejoinGame);
|
||||
|
||||
Reference in New Issue
Block a user