aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-10-12 15:32:25 +0200
committerShauren <shauren.trinity@gmail.com>2014-10-12 15:32:25 +0200
commitc2a39ce36ab41f56cce6f9b31de7835c5f90bd82 (patch)
tree1d3cb9b546bee87b0bf52aaeb060e2e7a01769fb /src
parentd0db99961f78a950d24cd23250a9438be29ed4ab (diff)
Core/PacketIO: Let packets that have a handler in array through to worldsession update
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/WorldSocket.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 15f311b5d10..bff343bdcb1 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -215,13 +215,16 @@ bool WorldSocket::ReadDataHandler()
// prevent invalid memory access/crash with custom opcodes
if (opcode >= NUM_OPCODE_HANDLERS)
+ {
+ CloseSocket();
return false;
+ }
OpcodeHandler const* handler = opcodeTable[opcode];
- if (!handler || handler->Status == STATUS_UNHANDLED)
+ if (!handler)
{
TC_LOG_ERROR("network.opcode", "No defined handler for opcode %s sent by %s", GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), _worldSession->GetPlayerInfo().c_str());
- return false;
+ return true;
}
// Our Idle timer will reset on any non PING opcodes.