22#include " netserver.h"
33#include " single_duel.h"
44#include " tag_duel.h"
5- #include " deck_manager.h"
65#include < thread>
76#include < unordered_map>
87
@@ -129,7 +128,7 @@ void NetServer::ServerAcceptError(evconnlistener* listener, void* ctx) {
129128*/
130129void NetServer::ServerEchoRead (bufferevent *bev, void *ctx) {
131130 evbuffer* input = bufferevent_get_input (bev);
132- int len = evbuffer_get_length (input);
131+ size_t len = evbuffer_get_length (input);
133132 if (len < 2 )
134133 return ;
135134 uint16_t packet_len = 0 ;
@@ -187,7 +186,7 @@ void NetServer::DisconnectPlayer(DuelPlayer* dp) {
187186 users.erase (bit);
188187 }
189188}
190- void NetServer::HandleCTOSPacket (DuelPlayer* dp, unsigned char * data, int len) {
189+ void NetServer::HandleCTOSPacket (DuelPlayer* dp, unsigned char * data, size_t len) {
191190 auto pdata = data;
192191 unsigned char pktType = BufferIO::Read<uint8_t >(pdata);
193192 if ((pktType != CTOS_SURRENDER ) && (pktType != CTOS_CHAT ) && (dp->state == 0xff || (dp->state && dp->state != pktType)))
@@ -196,7 +195,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
196195 case CTOS_RESPONSE : {
197196 if (!dp->game || !duel_mode->pduel )
198197 return ;
199- if (len < 1 + ( int ) sizeof (unsigned char ))
198+ if (len < 1 + sizeof (unsigned char ))
200199 return ;
201200 duel_mode->GetResponse (dp, pdata, len - 1 );
202201 break ;
@@ -222,17 +221,15 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
222221 case CTOS_UPDATE_DECK : {
223222 if (!dp->game )
224223 return ;
225- if (len < 1 + (int )sizeof (int32_t ) + (int )sizeof (int32_t ))
226- return ;
227- if (len > 1 + (int )sizeof (CTOS_DeckData))
224+ if (len < 1 + sizeof (uint32_t ) * 2 )
228225 return ;
229226 duel_mode->UpdateDeck (dp, pdata, len - 1 );
230227 break ;
231228 }
232229 case CTOS_HAND_RESULT : {
233230 if (!dp->game )
234231 return ;
235- if (len < 1 + ( int ) sizeof (CTOS_HandResult))
232+ if (len < 1 + sizeof (CTOS_HandResult))
236233 return ;
237234 CTOS_HandResult packet;
238235 std::memcpy (&packet, pdata, sizeof packet);
@@ -243,7 +240,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
243240 case CTOS_TP_RESULT : {
244241 if (!dp->game )
245242 return ;
246- if (len < 1 + ( int ) sizeof (CTOS_TPResult))
243+ if (len < 1 + sizeof (CTOS_TPResult))
247244 return ;
248245 CTOS_TPResult packet;
249246 std::memcpy (&packet, pdata, sizeof packet);
@@ -252,7 +249,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
252249 break ;
253250 }
254251 case CTOS_PLAYER_INFO : {
255- if (len < 1 + ( int ) sizeof (CTOS_PlayerInfo))
252+ if (len < 1 + sizeof (CTOS_PlayerInfo))
256253 return ;
257254 CTOS_PlayerInfo packet;
258255 std::memcpy (&packet, pdata, sizeof packet);
@@ -273,7 +270,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
273270 case CTOS_CREATE_GAME : {
274271 if (dp->game || duel_mode)
275272 return ;
276- if (len < 1 + ( int ) sizeof (CTOS_CreateGame))
273+ if (len < 1 + sizeof (CTOS_CreateGame))
277274 return ;
278275 CTOS_CreateGame packet;
279276 std::memcpy (&packet, pdata, sizeof packet);
@@ -321,7 +318,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
321318 case CTOS_JOIN_GAME : {
322319 if (!duel_mode)
323320 return ;
324- if (len < 1 + ( int ) sizeof (CTOS_JoinGame))
321+ if (len < 1 + sizeof (CTOS_JoinGame))
325322 return ;
326323 duel_mode->JoinGame (dp, pdata, false );
327324 break ;
@@ -360,7 +357,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
360357 case CTOS_HS_KICK : {
361358 if (!duel_mode || duel_mode->pduel )
362359 return ;
363- if (len < 1 + ( int ) sizeof (CTOS_Kick))
360+ if (len < 1 + sizeof (CTOS_Kick))
364361 return ;
365362 CTOS_Kick packet;
366363 std::memcpy (&packet, pdata, sizeof packet);
0 commit comments