Created
August 3, 2012 17:55
-
-
Save DDuarte/3249992 to your computer and use it in GitHub Desktop.
Core/WorldSession: Bypass assigned handler restriction if .debug send opcode command is used
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From c4432a8592c7b9b5589a742985d061e7b2e4082c Mon Sep 17 00:00:00 2001 | |
From: Nay <[email protected]> | |
Date: Fri, 3 Aug 2012 18:54:37 +0100 | |
Subject: [PATCH] Core/WorldSession: Bypass assigned handler restriction if | |
.debug send opcode command is used | |
--- | |
src/server/game/Server/WorldSession.cpp | 11 +++++++---- | |
src/server/game/Server/WorldSession.h | 2 +- | |
src/server/scripts/Commands/cs_debug.cpp | 2 +- | |
3 files changed, 9 insertions(+), 6 deletions(-) | |
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp | |
index 518a374..7e7d75b 100755 | |
--- a/src/server/game/Server/WorldSession.cpp | |
+++ b/src/server/game/Server/WorldSession.cpp | |
@@ -181,7 +181,7 @@ uint32 WorldSession::GetGuidLow() const | |
} | |
/// Send a packet to the client | |
-void WorldSession::SendPacket(WorldPacket const* packet) | |
+void WorldSession::SendPacket(WorldPacket const* packet, bool forced /*= false*/) | |
{ | |
if (!m_Socket) | |
return; | |
@@ -192,10 +192,13 @@ void WorldSession::SendPacket(WorldPacket const* packet) | |
return; | |
} | |
- if (!opcodeTable[packet->GetOpcode()]) | |
+ if (!forced) | |
{ | |
- sLog->outError("Prevented sending disabled opcode %d (hex 0x%04X)", packet->GetOpcode(), packet->GetOpcode()); | |
- return; | |
+ if (!opcodeTable[packet->GetOpcode()]) | |
+ { | |
+ sLog->outError("Prevented sending disabled opcode %d (hex 0x%04X)", packet->GetOpcode(), packet->GetOpcode()); | |
+ return; | |
+ } | |
} | |
#ifdef TRINITY_DEBUG | |
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h | |
index 5a8a8da..c0b2fb7 100755 | |
--- a/src/server/game/Server/WorldSession.h | |
+++ b/src/server/game/Server/WorldSession.h | |
@@ -236,7 +236,7 @@ class WorldSession | |
void ReadMovementInfo(WorldPacket& data, MovementInfo* mi); | |
void WriteMovementInfo(WorldPacket &data, MovementInfo* mi); | |
- void SendPacket(WorldPacket const* packet); | |
+ void SendPacket(WorldPacket const* packet, bool forced = false); | |
void SendNotification(const char *format, ...) ATTR_PRINTF(2, 3); | |
void SendNotification(uint32 string_id, ...); | |
void SendPetNameInvalid(uint32 error, const std::string& name, DeclinedName *declinedName); | |
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp | |
index 6accc96..874c7ab 100644 | |
--- a/src/server/scripts/Commands/cs_debug.cpp | |
+++ b/src/server/scripts/Commands/cs_debug.cpp | |
@@ -416,7 +416,7 @@ public: | |
} | |
sLog->outDebug(LOG_FILTER_NETWORKIO, "Sending opcode %u", data.GetOpcode()); | |
data.hexlike(); | |
- player->GetSession()->SendPacket(&data); | |
+ player->GetSession()->SendPacket(&data, true); | |
handler->PSendSysMessage(LANG_COMMAND_OPCODESENT, data.GetOpcode(), unit->GetName()); | |
return true; | |
} | |
-- | |
1.7.9.msysgit.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment