Bladeren bron

Garbage packet reconsideration to just drop the packets instead of trying to continue processing if it doesnt match our criteria

Image 2 jaren geleden
bovenliggende
commit
17685389b4
1 gewijzigde bestanden met toevoegingen van 2 en 11 verwijderingen
  1. 2 11
      EQ2/source/common/EQStream.cpp

+ 2 - 11
EQ2/source/common/EQStream.cpp

@@ -255,7 +255,6 @@ void EQStream::ProcessPacket(EQProtocolPacket *p, EQProtocolPacket* lastp)
 				printf( "OP_Combined:\n");
 				DumpPacket(p);
 #endif
-				EQProtocolPacket* prevPacket = 0;
 				while(processed<p->size) {
 					if ((subpacket_length=(unsigned char)*(p->pBuffer+processed))==0xff) {
 						subpacket_length = ntohs(*(uint16*)(p->pBuffer + processed + 1));
@@ -271,9 +270,6 @@ void EQStream::ProcessPacket(EQProtocolPacket *p, EQProtocolPacket* lastp)
 					if (isSubPacket) {
 						EQProtocolPacket* subp = new EQProtocolPacket(p->pBuffer + processed + offset, subpacket_length);
 						subp->copyInfo(p);
-						//I've seen some garbage packets get sent with wrong protocol opcodes but the rest of the combine is still correct
-						//So don't break if GetProtocolPacket fails
-						prevPacket = subp;
 #ifdef LE_DEBUG
 						printf( "Opcode %i:\n", subp->opcode);
 						DumpPacket(subp);
@@ -302,14 +298,9 @@ void EQStream::ProcessPacket(EQProtocolPacket *p, EQProtocolPacket* lastp)
 						}
 						else
 						{
-							printf("!!!!!!!!!Garbage Packet Unknown!!!!!!!!!!!!!\n");
+							printf("!!!!!!!!!Garbage Packet Unknown DISCARD!!!!!!!!!!!!!\n");
 							DumpPacket(p->pBuffer + processed + offset, subpacket_length);
-						}
-						
-						if(prevPacket)
-						{
-							printf("prevPacketSize: %u\n", prevPacket->size);
-							DumpPacket(prevPacket);
+							break;
 						}
 					}
 					processed+=subpacket_length+offset;