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