Merge remote-tracking branch 'origin/master'

This commit is contained in:
doitux
2013-01-01 13:46:43 +01:00
5 changed files with 279 additions and 87 deletions
+2 -5
View File
@@ -2,7 +2,7 @@
- Online log file analysis tool - Online log file analysis tool
- Support for higher Android screen resolutions - Support for higher Android screen resolutions
- Sound support for Android - Sound support for Android
- Support for Windows 8 - Support for Windows 8 (desktop mode)
- License change: OpenSSL exception (for Windows 8 support, because gcrypt currently crashes on Windows 8) - License change: OpenSSL exception (for Windows 8 support, because gcrypt currently crashes on Windows 8)
- Server refactoring using google protocol buffers which basically enables use of html5 clients - Server refactoring using google protocol buffers which basically enables use of html5 clients
- Emoticons for the chat - Emoticons for the chat
@@ -14,10 +14,7 @@
- Chatbot whitelist for poker expressions - Chatbot whitelist for poker expressions
- new startwindow gfx for 1.0 final (thx to danuxi) - new startwindow gfx for 1.0 final (thx to danuxi)
- translation updates - translation updates
- BUGFIX: Logfilename is cut off when try to save (#165) - several bugfixes
- BUGFIX: Regression: Chatbot doesnt react on bad words (#164)
- BUGFIX: Emoticons breaks URLs in the chat (#163)
- several other bugfixes
2012-12-25 version 1.0-beta2 2012-12-25 version 1.0-beta2
- Support for Windows 8 - Support for Windows 8
+203 -11
View File
@@ -34,9 +34,24 @@
using namespace std; using namespace std;
#define VALIDATE_IS_UINT16(__val) ((__val) >= 0 && (__val) <= 65535) #define VALIDATE_IS_UINT16(__val) ((__val) <= 65535)
#define VALIDATE_STRING_SIZE(__str, __minsize, __maxsize) ((__str).size() >= (__minsize) && (__str).size() <= (__maxsize)) #define VALIDATE_STRING_SIZE(__str, __minsize, __maxsize) ((__str).size() >= (__minsize) && (__str).size() <= (__maxsize))
#define VALIDATE_INT_RANGE(__val, __minval, __maxval) ((__val) >= (__minval) && (__val) <= (__maxval)) #define VALIDATE_UINT_RANGE(__val, __minval, __maxval) ((__val) >= (__minval) && (__val) <= (__maxval))
#define VALIDATE_UINT_UPPER(__val, __maxval) ((__val) <= (__maxval))
#define VALIDATE_LIST_SIZE(__l, __minsize, __maxsize) ((__l).size() >= (__minsize) && (__l).size() <= (__maxsize))
static bool
ValidateListIntRange(const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > &l, ::google::protobuf::uint32 minval, ::google::protobuf::uint32 maxval)
{
bool retVal = true;
for (int i = 0; i < l.size(); i++) {
if (!VALIDATE_UINT_RANGE(l.Get(i), minval, maxval)) {
retVal = false;
break;
}
}
return retVal;
}
NetPacketValidator::NetPacketValidator() NetPacketValidator::NetPacketValidator()
{ {
@@ -156,7 +171,10 @@ NetPacketValidator::ValidateInitMessage(const NetPacket &packet)
if (VALIDATE_IS_UINT16(msg.requestedversion().majorversion()) if (VALIDATE_IS_UINT16(msg.requestedversion().majorversion())
&& VALIDATE_IS_UINT16(msg.requestedversion().minorversion()) && VALIDATE_IS_UINT16(msg.requestedversion().minorversion())
&& (!msg.has_mylastsessionid() || msg.mylastsessionid().size() == 16) && (!msg.has_mylastsessionid() || msg.mylastsessionid().size() == 16)
&& (!msg.has_authserverpassword() || VALIDATE_STRING_SIZE(msg.authserverpassword(), 1, 64))) { && (!msg.has_authserverpassword() || VALIDATE_STRING_SIZE(msg.authserverpassword(), 1, 64))
&& (!msg.has_nickname() || VALIDATE_STRING_SIZE(msg.nickname(), 1, 64))
&& (!msg.has_clientuserdata() || VALIDATE_STRING_SIZE(msg.clientuserdata(), 1, 256))
&& (!msg.has_avatarhash() || msg.avatarhash().size() == 16)) {
retVal = true; retVal = true;
} }
@@ -242,7 +260,7 @@ NetPacketValidator::ValidateAvatarHeaderMessage(const NetPacket &packet)
if (packet.GetMsg()->has_avatarheadermessage()) { if (packet.GetMsg()->has_avatarheadermessage()) {
const AvatarHeaderMessage &msg = packet.GetMsg()->avatarheadermessage(); const AvatarHeaderMessage &msg = packet.GetMsg()->avatarheadermessage();
if (msg.requestid() != 0 if (msg.requestid() != 0
&& (VALIDATE_INT_RANGE(msg.avatarsize(), 32, 30720))) { && VALIDATE_UINT_RANGE(msg.avatarsize(), 32, 30720)) {
retVal = true; retVal = true;
} }
@@ -297,8 +315,10 @@ NetPacketValidator::ValidatePlayerListMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playerlistmessage()) { if (packet.GetMsg()->has_playerlistmessage()) {
const PlayerListMessage &msg = packet.GetMsg()->playerlistmessage(); const PlayerListMessage &msg = packet.GetMsg()->playerlistmessage();
if (msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -308,8 +328,14 @@ NetPacketValidator::ValidateGameListNewMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamelistnewmessage()) { if (packet.GetMsg()->has_gamelistnewmessage()) {
const GameListNewMessage &msg = packet.GetMsg()->gamelistnewmessage(); const GameListNewMessage &msg = packet.GetMsg()->gamelistnewmessage();
if (msg.gameid() != 0
&& VALIDATE_LIST_SIZE(msg.playerids(), 0, 10)
&& msg.adminplayerid() != 0
&& ValidateGameInfo(msg.gameinfo())) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -319,8 +345,10 @@ NetPacketValidator::ValidateGameListUpdateMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamelistupdatemessage()) { if (packet.GetMsg()->has_gamelistupdatemessage()) {
const GameListUpdateMessage &msg = packet.GetMsg()->gamelistupdatemessage(); const GameListUpdateMessage &msg = packet.GetMsg()->gamelistupdatemessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -330,8 +358,10 @@ NetPacketValidator::ValidateGameListPlayerJoinedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamelistplayerjoinedmessage()) { if (packet.GetMsg()->has_gamelistplayerjoinedmessage()) {
const GameListPlayerJoinedMessage &msg = packet.GetMsg()->gamelistplayerjoinedmessage(); const GameListPlayerJoinedMessage &msg = packet.GetMsg()->gamelistplayerjoinedmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -341,8 +371,10 @@ NetPacketValidator::ValidateGameListPlayerLeftMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamelistplayerleftmessage()) { if (packet.GetMsg()->has_gamelistplayerleftmessage()) {
const GameListPlayerLeftMessage &msg = packet.GetMsg()->gamelistplayerleftmessage(); const GameListPlayerLeftMessage &msg = packet.GetMsg()->gamelistplayerleftmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -352,8 +384,10 @@ NetPacketValidator::ValidateGameListAdminChangedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamelistadminchangedmessage()) { if (packet.GetMsg()->has_gamelistadminchangedmessage()) {
const GameListAdminChangedMessage &msg = packet.GetMsg()->gamelistadminchangedmessage(); const GameListAdminChangedMessage &msg = packet.GetMsg()->gamelistadminchangedmessage();
if (msg.gameid() != 0 && msg.newadminplayerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -363,8 +397,10 @@ NetPacketValidator::ValidatePlayerInfoRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playerinforequestmessage()) { if (packet.GetMsg()->has_playerinforequestmessage()) {
const PlayerInfoRequestMessage &msg = packet.GetMsg()->playerinforequestmessage(); const PlayerInfoRequestMessage &msg = packet.GetMsg()->playerinforequestmessage();
if (VALIDATE_LIST_SIZE(msg.playerid(), 1, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -374,8 +410,11 @@ NetPacketValidator::ValidatePlayerInfoReplyMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playerinforeplymessage()) { if (packet.GetMsg()->has_playerinforeplymessage()) {
const PlayerInfoReplyMessage &msg = packet.GetMsg()->playerinforeplymessage(); const PlayerInfoReplyMessage &msg = packet.GetMsg()->playerinforeplymessage();
if (msg.playerid() != 0) {
// TODO maybe additional checks.
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -384,7 +423,7 @@ NetPacketValidator::ValidateSubscriptionRequestMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_subscriptionrequestmessage()) { if (packet.GetMsg()->has_subscriptionrequestmessage()) {
const SubscriptionRequestMessage &msg = packet.GetMsg()->subscriptionrequestmessage(); //const SubscriptionRequestMessage &msg = packet.GetMsg()->subscriptionrequestmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -396,8 +435,12 @@ NetPacketValidator::ValidateJoinExistingGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_joinexistinggamemessage()) { if (packet.GetMsg()->has_joinexistinggamemessage()) {
const JoinExistingGameMessage &msg = packet.GetMsg()->joinexistinggamemessage(); const JoinExistingGameMessage &msg = packet.GetMsg()->joinexistinggamemessage();
if (msg.gameid() != 0
&& (!msg.has_password() || VALIDATE_STRING_SIZE(msg.password(), 1, 64))) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -407,8 +450,12 @@ NetPacketValidator::ValidateJoinNewGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_joinnewgamemessage()) { if (packet.GetMsg()->has_joinnewgamemessage()) {
const JoinNewGameMessage &msg = packet.GetMsg()->joinnewgamemessage(); const JoinNewGameMessage &msg = packet.GetMsg()->joinnewgamemessage();
if (ValidateGameInfo(msg.gameinfo())
&& (!msg.has_password() || VALIDATE_STRING_SIZE(msg.password(), 1, 64))) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -418,8 +465,10 @@ NetPacketValidator::ValidateRejoinExistingGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_rejoinexistinggamemessage()) { if (packet.GetMsg()->has_rejoinexistinggamemessage()) {
const RejoinExistingGameMessage &msg = packet.GetMsg()->rejoinexistinggamemessage(); const RejoinExistingGameMessage &msg = packet.GetMsg()->rejoinexistinggamemessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -429,8 +478,10 @@ NetPacketValidator::ValidateJoinGameAckMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_joingameackmessage()) { if (packet.GetMsg()->has_joingameackmessage()) {
const JoinGameAckMessage &msg = packet.GetMsg()->joingameackmessage(); const JoinGameAckMessage &msg = packet.GetMsg()->joingameackmessage();
if (msg.gameid() != 0 && ValidateGameInfo(msg.gameinfo())) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -440,8 +491,10 @@ NetPacketValidator::ValidateJoinGameFailedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_joingamefailedmessage()) { if (packet.GetMsg()->has_joingamefailedmessage()) {
const JoinGameFailedMessage &msg = packet.GetMsg()->joingamefailedmessage(); const JoinGameFailedMessage &msg = packet.GetMsg()->joingamefailedmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -451,8 +504,10 @@ NetPacketValidator::ValidateGamePlayerJoinedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gameplayerjoinedmessage()) { if (packet.GetMsg()->has_gameplayerjoinedmessage()) {
const GamePlayerJoinedMessage &msg = packet.GetMsg()->gameplayerjoinedmessage(); const GamePlayerJoinedMessage &msg = packet.GetMsg()->gameplayerjoinedmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -462,8 +517,10 @@ NetPacketValidator::ValidateGamePlayerLeftMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gameplayerleftmessage()) { if (packet.GetMsg()->has_gameplayerleftmessage()) {
const GamePlayerLeftMessage &msg = packet.GetMsg()->gameplayerleftmessage(); const GamePlayerLeftMessage &msg = packet.GetMsg()->gameplayerleftmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -473,8 +530,10 @@ NetPacketValidator::ValidateGameAdminChangedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gameadminchangedmessage()) { if (packet.GetMsg()->has_gameadminchangedmessage()) {
const GameAdminChangedMessage &msg = packet.GetMsg()->gameadminchangedmessage(); const GameAdminChangedMessage &msg = packet.GetMsg()->gameadminchangedmessage();
if (msg.gameid() != 0 && msg.newadminplayerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -484,8 +543,10 @@ NetPacketValidator::ValidateRemovedFromGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_removedfromgamemessage()) { if (packet.GetMsg()->has_removedfromgamemessage()) {
const RemovedFromGameMessage &msg = packet.GetMsg()->removedfromgamemessage(); const RemovedFromGameMessage &msg = packet.GetMsg()->removedfromgamemessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -495,8 +556,10 @@ NetPacketValidator::ValidateKickPlayerRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_kickplayerrequestmessage()) { if (packet.GetMsg()->has_kickplayerrequestmessage()) {
const KickPlayerRequestMessage &msg = packet.GetMsg()->kickplayerrequestmessage(); const KickPlayerRequestMessage &msg = packet.GetMsg()->kickplayerrequestmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -506,8 +569,10 @@ NetPacketValidator::ValidateLeaveGameRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_leavegamerequestmessage()) { if (packet.GetMsg()->has_leavegamerequestmessage()) {
const LeaveGameRequestMessage &msg = packet.GetMsg()->leavegamerequestmessage(); const LeaveGameRequestMessage &msg = packet.GetMsg()->leavegamerequestmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -517,8 +582,10 @@ NetPacketValidator::ValidateInvitePlayerToGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_inviteplayertogamemessage()) { if (packet.GetMsg()->has_inviteplayertogamemessage()) {
const InvitePlayerToGameMessage &msg = packet.GetMsg()->inviteplayertogamemessage(); const InvitePlayerToGameMessage &msg = packet.GetMsg()->inviteplayertogamemessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -528,8 +595,10 @@ NetPacketValidator::ValidateInviteNotifyMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_invitenotifymessage()) { if (packet.GetMsg()->has_invitenotifymessage()) {
const InviteNotifyMessage &msg = packet.GetMsg()->invitenotifymessage(); const InviteNotifyMessage &msg = packet.GetMsg()->invitenotifymessage();
if (msg.gameid() != 0 && msg.playeridwho() != 0 && msg.playeridbywhom() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -539,8 +608,10 @@ NetPacketValidator::ValidateRejectGameInvitationMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_rejectgameinvitationmessage()) { if (packet.GetMsg()->has_rejectgameinvitationmessage()) {
const RejectGameInvitationMessage &msg = packet.GetMsg()->rejectgameinvitationmessage(); const RejectGameInvitationMessage &msg = packet.GetMsg()->rejectgameinvitationmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -550,8 +621,10 @@ NetPacketValidator::ValidateRejectInvNotifyMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_rejectinvnotifymessage()) { if (packet.GetMsg()->has_rejectinvnotifymessage()) {
const RejectInvNotifyMessage &msg = packet.GetMsg()->rejectinvnotifymessage(); const RejectInvNotifyMessage &msg = packet.GetMsg()->rejectinvnotifymessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -561,8 +634,10 @@ NetPacketValidator::ValidateStartEventMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_starteventmessage()) { if (packet.GetMsg()->has_starteventmessage()) {
const StartEventMessage &msg = packet.GetMsg()->starteventmessage(); const StartEventMessage &msg = packet.GetMsg()->starteventmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -572,8 +647,10 @@ NetPacketValidator::ValidateStartEventAckMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_starteventackmessage()) { if (packet.GetMsg()->has_starteventackmessage()) {
const StartEventAckMessage &msg = packet.GetMsg()->starteventackmessage(); const StartEventAckMessage &msg = packet.GetMsg()->starteventackmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -583,8 +660,13 @@ NetPacketValidator::ValidateGameStartInitialMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamestartinitialmessage()) { if (packet.GetMsg()->has_gamestartinitialmessage()) {
const GameStartInitialMessage &msg = packet.GetMsg()->gamestartinitialmessage(); const GameStartInitialMessage &msg = packet.GetMsg()->gamestartinitialmessage();
if (msg.gameid() != 0
&& msg.startdealerplayerid() != 0
&& VALIDATE_LIST_SIZE(msg.playerseats(), 2, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -594,8 +676,14 @@ NetPacketValidator::ValidateGameStartRejoinMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_gamestartrejoinmessage()) { if (packet.GetMsg()->has_gamestartrejoinmessage()) {
const GameStartRejoinMessage &msg = packet.GetMsg()->gamestartrejoinmessage(); const GameStartRejoinMessage &msg = packet.GetMsg()->gamestartrejoinmessage();
if (msg.gameid() != 0
&& msg.startdealerplayerid() != 0
&& msg.handnum() != 0
&& VALIDATE_LIST_SIZE(msg.rejoinplayerdata(), 2, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -605,8 +693,13 @@ NetPacketValidator::ValidateHandStartMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_handstartmessage()) { if (packet.GetMsg()->has_handstartmessage()) {
const HandStartMessage &msg = packet.GetMsg()->handstartmessage(); const HandStartMessage &msg = packet.GetMsg()->handstartmessage();
if (msg.gameid() != 0
&& VALIDATE_UINT_RANGE(msg.smallblind(), 1, 100000000)
&& VALIDATE_LIST_SIZE(msg.seatstates(), 2, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -616,8 +709,10 @@ NetPacketValidator::ValidatePlayersTurnMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playersturnmessage()) { if (packet.GetMsg()->has_playersturnmessage()) {
const PlayersTurnMessage &msg = packet.GetMsg()->playersturnmessage(); const PlayersTurnMessage &msg = packet.GetMsg()->playersturnmessage();
if (msg.gameid() != 0 && msg.playerid() != 0 ) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -627,8 +722,13 @@ NetPacketValidator::ValidateMyActionRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_myactionrequestmessage()) { if (packet.GetMsg()->has_myactionrequestmessage()) {
const MyActionRequestMessage &msg = packet.GetMsg()->myactionrequestmessage(); const MyActionRequestMessage &msg = packet.GetMsg()->myactionrequestmessage();
if (msg.gameid() != 0
&& msg.handnum() != 0
&& VALIDATE_UINT_UPPER(msg.myrelativebet(), 10000000)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -638,8 +738,10 @@ NetPacketValidator::ValidateYourActionRejectedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_youractionrejectedmessage()) { if (packet.GetMsg()->has_youractionrejectedmessage()) {
const YourActionRejectedMessage &msg = packet.GetMsg()->youractionrejectedmessage(); const YourActionRejectedMessage &msg = packet.GetMsg()->youractionrejectedmessage();
if (msg.gameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -649,8 +751,10 @@ NetPacketValidator::ValidatePlayersActionDoneMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playersactiondonemessage()) { if (packet.GetMsg()->has_playersactiondonemessage()) {
const PlayersActionDoneMessage &msg = packet.GetMsg()->playersactiondonemessage(); const PlayersActionDoneMessage &msg = packet.GetMsg()->playersactiondonemessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -660,8 +764,14 @@ NetPacketValidator::ValidateDealFlopCardsMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_dealflopcardsmessage()) { if (packet.GetMsg()->has_dealflopcardsmessage()) {
const DealFlopCardsMessage &msg = packet.GetMsg()->dealflopcardsmessage(); const DealFlopCardsMessage &msg = packet.GetMsg()->dealflopcardsmessage();
if (msg.gameid() != 0
&& VALIDATE_UINT_UPPER(msg.flopcard1(), 51)
&& VALIDATE_UINT_UPPER(msg.flopcard2(), 51)
&& VALIDATE_UINT_UPPER(msg.flopcard3(), 51)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -671,8 +781,12 @@ NetPacketValidator::ValidateDealTurnCardMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_dealturncardmessage()) { if (packet.GetMsg()->has_dealturncardmessage()) {
const DealTurnCardMessage &msg = packet.GetMsg()->dealturncardmessage(); const DealTurnCardMessage &msg = packet.GetMsg()->dealturncardmessage();
if (msg.gameid() != 0
&& VALIDATE_UINT_UPPER(msg.turncard(), 51)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -682,8 +796,12 @@ NetPacketValidator::ValidateDealRiverCardMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_dealrivercardmessage()) { if (packet.GetMsg()->has_dealrivercardmessage()) {
const DealRiverCardMessage &msg = packet.GetMsg()->dealrivercardmessage(); const DealRiverCardMessage &msg = packet.GetMsg()->dealrivercardmessage();
if (msg.gameid() != 0
&& VALIDATE_UINT_UPPER(msg.rivercard(), 51)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -693,8 +811,12 @@ NetPacketValidator::ValidateAllInShowCardsMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_allinshowcardsmessage()) { if (packet.GetMsg()->has_allinshowcardsmessage()) {
const AllInShowCardsMessage &msg = packet.GetMsg()->allinshowcardsmessage(); const AllInShowCardsMessage &msg = packet.GetMsg()->allinshowcardsmessage();
if (msg.gameid() != 0
&& VALIDATE_LIST_SIZE(msg.playersallin(), 1, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -704,8 +826,12 @@ NetPacketValidator::ValidateEndOfHandShowCardsMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_endofhandshowcardsmessage()) { if (packet.GetMsg()->has_endofhandshowcardsmessage()) {
const EndOfHandShowCardsMessage &msg = packet.GetMsg()->endofhandshowcardsmessage(); const EndOfHandShowCardsMessage &msg = packet.GetMsg()->endofhandshowcardsmessage();
if (msg.gameid() != 0
&& VALIDATE_LIST_SIZE(msg.playerresults(), 1, 10)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -715,8 +841,10 @@ NetPacketValidator::ValidateEndOfHandHideCardsMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_endofhandhidecardsmessage()) { if (packet.GetMsg()->has_endofhandhidecardsmessage()) {
const EndOfHandHideCardsMessage &msg = packet.GetMsg()->endofhandhidecardsmessage(); const EndOfHandHideCardsMessage &msg = packet.GetMsg()->endofhandhidecardsmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -725,7 +853,7 @@ NetPacketValidator::ValidateShowMyCardsRequestMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_showmycardsrequestmessage()) { if (packet.GetMsg()->has_showmycardsrequestmessage()) {
const ShowMyCardsRequestMessage &msg = packet.GetMsg()->showmycardsrequestmessage(); //const ShowMyCardsRequestMessage &msg = packet.GetMsg()->showmycardsrequestmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -736,7 +864,7 @@ NetPacketValidator::ValidateAfterHandShowCardsMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_afterhandshowcardsmessage()) { if (packet.GetMsg()->has_afterhandshowcardsmessage()) {
const AfterHandShowCardsMessage &msg = packet.GetMsg()->afterhandshowcardsmessage(); //const AfterHandShowCardsMessage &msg = packet.GetMsg()->afterhandshowcardsmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -748,8 +876,10 @@ NetPacketValidator::ValidateEndOfGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_endofgamemessage()) { if (packet.GetMsg()->has_endofgamemessage()) {
const EndOfGameMessage &msg = packet.GetMsg()->endofgamemessage(); const EndOfGameMessage &msg = packet.GetMsg()->endofgamemessage();
if (msg.gameid() != 0 && msg.winnerplayerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -759,8 +889,10 @@ NetPacketValidator::ValidatePlayerIdChangedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_playeridchangedmessage()) { if (packet.GetMsg()->has_playeridchangedmessage()) {
const PlayerIdChangedMessage &msg = packet.GetMsg()->playeridchangedmessage(); const PlayerIdChangedMessage &msg = packet.GetMsg()->playeridchangedmessage();
if (msg.oldplayerid() != 0 && msg.newplayerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -770,8 +902,10 @@ NetPacketValidator::ValidateAskKickPlayerMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_askkickplayermessage()) { if (packet.GetMsg()->has_askkickplayermessage()) {
const AskKickPlayerMessage &msg = packet.GetMsg()->askkickplayermessage(); const AskKickPlayerMessage &msg = packet.GetMsg()->askkickplayermessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -781,8 +915,10 @@ NetPacketValidator::ValidateAskKickDeniedMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_askkickdeniedmessage()) { if (packet.GetMsg()->has_askkickdeniedmessage()) {
const AskKickDeniedMessage &msg = packet.GetMsg()->askkickdeniedmessage(); const AskKickDeniedMessage &msg = packet.GetMsg()->askkickdeniedmessage();
if (msg.gameid() != 0 && msg.playerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -792,8 +928,16 @@ NetPacketValidator::ValidateStartKickPetitionMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_startkickpetitionmessage()) { if (packet.GetMsg()->has_startkickpetitionmessage()) {
const StartKickPetitionMessage &msg = packet.GetMsg()->startkickpetitionmessage(); const StartKickPetitionMessage &msg = packet.GetMsg()->startkickpetitionmessage();
if (msg.gameid() != 0
&& msg.petitionid() != 0
&& msg.proposingplayerid() != 0
&& msg.kickplayerid() != 0
&& msg.kicktimeoutsec() > 0
&& msg.numvotesneededtokick() > 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -803,8 +947,10 @@ NetPacketValidator::ValidateVoteKickRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_votekickrequestmessage()) { if (packet.GetMsg()->has_votekickrequestmessage()) {
const VoteKickRequestMessage &msg = packet.GetMsg()->votekickrequestmessage(); const VoteKickRequestMessage &msg = packet.GetMsg()->votekickrequestmessage();
if (msg.gameid() != 0 && msg.petitionid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -814,8 +960,10 @@ NetPacketValidator::ValidateVoteKickReplyMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_votekickreplymessage()) { if (packet.GetMsg()->has_votekickreplymessage()) {
const VoteKickReplyMessage &msg = packet.GetMsg()->votekickreplymessage(); const VoteKickReplyMessage &msg = packet.GetMsg()->votekickreplymessage();
if (msg.gameid() != 0 && msg.petitionid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -825,8 +973,10 @@ NetPacketValidator::ValidateKickPetitionUpdateMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_kickpetitionupdatemessage()) { if (packet.GetMsg()->has_kickpetitionupdatemessage()) {
const KickPetitionUpdateMessage &msg = packet.GetMsg()->kickpetitionupdatemessage(); const KickPetitionUpdateMessage &msg = packet.GetMsg()->kickpetitionupdatemessage();
if (msg.gameid() != 0 && msg.petitionid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -836,8 +986,10 @@ NetPacketValidator::ValidateEndKickPetitionMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_endkickpetitionmessage()) { if (packet.GetMsg()->has_endkickpetitionmessage()) {
const EndKickPetitionMessage &msg = packet.GetMsg()->endkickpetitionmessage(); const EndKickPetitionMessage &msg = packet.GetMsg()->endkickpetitionmessage();
if (msg.gameid() != 0 && msg.petitionid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -846,7 +998,7 @@ NetPacketValidator::ValidateStatisticsMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_statisticsmessage()) { if (packet.GetMsg()->has_statisticsmessage()) {
const StatisticsMessage &msg = packet.GetMsg()->statisticsmessage(); //const StatisticsMessage &msg = packet.GetMsg()->statisticsmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -858,8 +1010,10 @@ NetPacketValidator::ValidateChatRequestMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_chatrequestmessage()) { if (packet.GetMsg()->has_chatrequestmessage()) {
const ChatRequestMessage &msg = packet.GetMsg()->chatrequestmessage(); const ChatRequestMessage &msg = packet.GetMsg()->chatrequestmessage();
if (VALIDATE_STRING_SIZE(msg.chattext(), 1, 128)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -869,8 +1023,10 @@ NetPacketValidator::ValidateChatMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_chatmessage()) { if (packet.GetMsg()->has_chatmessage()) {
const ChatMessage &msg = packet.GetMsg()->chatmessage(); const ChatMessage &msg = packet.GetMsg()->chatmessage();
if (VALIDATE_STRING_SIZE(msg.chattext(), 1, 128)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -880,8 +1036,10 @@ NetPacketValidator::ValidateChatRejectMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_chatrejectmessage()) { if (packet.GetMsg()->has_chatrejectmessage()) {
const ChatRejectMessage &msg = packet.GetMsg()->chatrejectmessage(); const ChatRejectMessage &msg = packet.GetMsg()->chatrejectmessage();
if (VALIDATE_STRING_SIZE(msg.chattext(), 1, 128)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -891,8 +1049,10 @@ NetPacketValidator::ValidateDialogMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_dialogmessage()) { if (packet.GetMsg()->has_dialogmessage()) {
const DialogMessage &msg = packet.GetMsg()->dialogmessage(); const DialogMessage &msg = packet.GetMsg()->dialogmessage();
if (VALIDATE_STRING_SIZE(msg.notificationtext(), 1, 128)) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -901,7 +1061,7 @@ NetPacketValidator::ValidateTimeoutWarningMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_timeoutwarningmessage()) { if (packet.GetMsg()->has_timeoutwarningmessage()) {
const TimeoutWarningMessage &msg = packet.GetMsg()->timeoutwarningmessage(); //const TimeoutWarningMessage &msg = packet.GetMsg()->timeoutwarningmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -912,7 +1072,7 @@ NetPacketValidator::ValidateResetTimeoutMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_resettimeoutmessage()) { if (packet.GetMsg()->has_resettimeoutmessage()) {
const ResetTimeoutMessage &msg = packet.GetMsg()->resettimeoutmessage(); //const ResetTimeoutMessage &msg = packet.GetMsg()->resettimeoutmessage();
retVal = true; retVal = true;
} }
return retVal; return retVal;
@@ -924,8 +1084,12 @@ NetPacketValidator::ValidateReportAvatarMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_reportavatarmessage()) { if (packet.GetMsg()->has_reportavatarmessage()) {
const ReportAvatarMessage &msg = packet.GetMsg()->reportavatarmessage(); const ReportAvatarMessage &msg = packet.GetMsg()->reportavatarmessage();
if (msg.reportedplayerid() != 0
&& msg.reportedavatarhash().size() == 16) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -935,8 +1099,10 @@ NetPacketValidator::ValidateReportAvatarAckMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_reportavatarackmessage()) { if (packet.GetMsg()->has_reportavatarackmessage()) {
const ReportAvatarAckMessage &msg = packet.GetMsg()->reportavatarackmessage(); const ReportAvatarAckMessage &msg = packet.GetMsg()->reportavatarackmessage();
if (msg.reportedplayerid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -946,8 +1112,10 @@ NetPacketValidator::ValidateReportGameMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_reportgamemessage()) { if (packet.GetMsg()->has_reportgamemessage()) {
const ReportGameMessage &msg = packet.GetMsg()->reportgamemessage(); const ReportGameMessage &msg = packet.GetMsg()->reportgamemessage();
if (msg.reportedgameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -957,8 +1125,10 @@ NetPacketValidator::ValidateReportGameAckMessage(const NetPacket &packet)
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_reportgameackmessage()) { if (packet.GetMsg()->has_reportgameackmessage()) {
const ReportGameAckMessage &msg = packet.GetMsg()->reportgameackmessage(); const ReportGameAckMessage &msg = packet.GetMsg()->reportgameackmessage();
if (msg.reportedgameid() != 0) {
retVal = true; retVal = true;
} }
}
return retVal; return retVal;
} }
@@ -967,7 +1137,29 @@ NetPacketValidator::ValidateErrorMessage(const NetPacket &packet)
{ {
bool retVal = false; bool retVal = false;
if (packet.GetMsg()->has_errormessage()) { if (packet.GetMsg()->has_errormessage()) {
const ErrorMessage &msg = packet.GetMsg()->errormessage(); //const ErrorMessage &msg = packet.GetMsg()->errormessage();
retVal = true;
}
return retVal;
}
bool
NetPacketValidator::ValidateGameInfo(const NetGameInfo &gameInfo)
{
bool retVal = false;
if (VALIDATE_STRING_SIZE(gameInfo.gamename(), 1, 64)
&& VALIDATE_UINT_RANGE(gameInfo.maxnumplayers(), 2, 10)
&& (!gameInfo.has_raiseeveryhands() || VALIDATE_UINT_RANGE(gameInfo.raiseeveryhands(), 1, 1000))
&& (!gameInfo.has_raiseeveryminutes() || VALIDATE_UINT_RANGE(gameInfo.raiseeveryminutes(), 1, 1000))
&& (!gameInfo.has_endraisesmallblindvalue() || VALIDATE_UINT_UPPER(gameInfo.endraisesmallblindvalue(), 1000000))
&& VALIDATE_UINT_RANGE(gameInfo.proposedguispeed(), 1, 11)
&& VALIDATE_UINT_RANGE(gameInfo.delaybetweenhands(), 5, 20)
&& VALIDATE_UINT_UPPER(gameInfo.playeractiontimeout(), 60)
&& VALIDATE_UINT_RANGE(gameInfo.firstsmallblind(), 1, 20000)
&& VALIDATE_UINT_RANGE(gameInfo.startmoney(), 1, 1000000)
&& VALIDATE_LIST_SIZE(gameInfo.manualblinds(), 0, 30)
&& ValidateListIntRange(gameInfo.manualblinds(), 1, 1000000)) {
retVal = true; retVal = true;
} }
return retVal; return retVal;
+1 -1
View File
@@ -122,7 +122,7 @@ ReceiveBuffer::ScanPackets(boost::shared_ptr<SessionData> session)
if (validator.IsValidPacket(*tmpPacket)) { if (validator.IsValidPacket(*tmpPacket)) {
receivedPackets.push_back(tmpPacket); receivedPackets.push_back(tmpPacket);
} else { } else {
LOG_ERROR("Session " << session->GetId() << " - Invalid packet!"); LOG_ERROR("Session " << session->GetId() << " - Invalid packet: " << tmpPacket->GetMsg()->messagetype());
} }
} else { } else {
dataAvailable = false; dataAvailable = false;
+3
View File
@@ -36,6 +36,7 @@
#include <map> #include <map>
class NetPacket; class NetPacket;
class NetGameInfo;
class NetPacketValidator class NetPacketValidator
{ {
@@ -119,6 +120,8 @@ protected:
static bool ValidateReportGameAckMessage(const NetPacket &packet); static bool ValidateReportGameAckMessage(const NetPacket &packet);
static bool ValidateErrorMessage(const NetPacket &packet); static bool ValidateErrorMessage(const NetPacket &packet);
static bool ValidateGameInfo(const NetGameInfo &gameInfo);
typedef bool (*ValidateFunctor)(const NetPacket &); typedef bool (*ValidateFunctor)(const NetPacket &);
typedef std::map<int, ValidateFunctor> ValidateFunctorMap; typedef std::map<int, ValidateFunctor> ValidateFunctorMap;
private: private:
+15 -15
View File
@@ -320,15 +320,8 @@ public abstract class TestBase {
public NetGameInfo createGameInfo(NetGameInfo.NetGameType gameType, int playerActionTimeout, int proposedGuiSpeed, int delayBetweenHands, NetGameInfo.EndRaiseMode endMode, int endRaiseValue, int sb, public NetGameInfo createGameInfo(NetGameInfo.NetGameType gameType, int playerActionTimeout, int proposedGuiSpeed, int delayBetweenHands, NetGameInfo.EndRaiseMode endMode, int endRaiseValue, int sb,
String gameName, Collection<Integer> manualBlinds, int maxNumPlayers, int raiseEveryMinutes, int raiseEveryHands, int startMoney) { String gameName, Collection<Integer> manualBlinds, int maxNumPlayers, int raiseEveryMinutes, int raiseEveryHands, int startMoney) {
NetGameInfo.RaiseIntervalMode raiseInterval; NetGameInfo.Builder infoBuilder = NetGameInfo.newBuilder();
if (raiseEveryMinutes > 0) { infoBuilder
raiseInterval = NetGameInfo.RaiseIntervalMode.raiseOnMinutes;
}
else {
raiseInterval = NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
}
NetGameInfo gameInfo = NetGameInfo.newBuilder()
.setNetGameType(gameType) .setNetGameType(gameType)
.setPlayerActionTimeout(playerActionTimeout) .setPlayerActionTimeout(playerActionTimeout)
.setProposedGuiSpeed(proposedGuiSpeed) .setProposedGuiSpeed(proposedGuiSpeed)
@@ -339,13 +332,20 @@ public abstract class TestBase {
.setGameName(gameName) .setGameName(gameName)
.setMaxNumPlayers(maxNumPlayers) .setMaxNumPlayers(maxNumPlayers)
.addAllManualBlinds(manualBlinds) .addAllManualBlinds(manualBlinds)
.setRaiseIntervalMode(raiseInterval) .setStartMoney(startMoney);
.setRaiseEveryMinutes(raiseEveryMinutes)
.setRaiseEveryHands(raiseEveryHands)
.setStartMoney(startMoney)
.build();
return gameInfo; if (raiseEveryMinutes > 0) {
infoBuilder
.setRaiseIntervalMode(NetGameInfo.RaiseIntervalMode.raiseOnMinutes)
.setRaiseEveryMinutes(raiseEveryMinutes);
}
else {
infoBuilder
.setRaiseIntervalMode(NetGameInfo.RaiseIntervalMode.raiseOnHandNum)
.setRaiseEveryHands(raiseEveryHands);
}
return infoBuilder.build();
} }
void failOnErrorMessage(PokerTHMessage msg) { void failOnErrorMessage(PokerTHMessage msg) {