aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TicketHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/TicketHandler.cpp')
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp35
1 files changed, 11 insertions, 24 deletions
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index 426795cd7f0..b7c19c31cbe 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -20,7 +20,6 @@
#include "Common.h"
#include "DatabaseEnv.h"
#include "GameTime.h"
-#include "Hyperlinks.h"
#include "Language.h"
#include "Log.h"
#include "ObjectMgr.h"
@@ -33,21 +32,6 @@
#include "WorldPacket.h"
#include <zlib.h>
-#define ValidateLinksAndMaybeKick(str) \
-{ \
- if (!Trinity::Hyperlinks::ValidateLinks(str)) \
- { \
- TC_LOG_ERROR("network", "Player %s (GUID: %u) tried to add an invalid link to a GM ticket - corrected", \
- GetPlayer()->GetName().c_str(), GetPlayer()->GetGUID().GetCounter()); \
- \
- if (sWorld->getIntConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_KICK)) \
- { \
- KickPlayer(); \
- return; \
- } \
- } \
-}
-
void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
{
// Don't accept tickets if the ticket queue is disabled. (Ticket UI is greyed out but not fully dependable)
@@ -83,7 +67,8 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
recvData >> x >> y >> z;
recvData >> message;
- ValidateLinksAndMaybeKick(message);
+ if (!ValidateHyperlinksAndMaybeKick(message))
+ return;
recvData >> needResponse;
recvData >> needMoreHelp;
@@ -120,16 +105,15 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
recvData.rfinish(); // Will still have compressed data in buffer.
}
+ if (!chatLog.empty() && !ValidateHyperlinksAndMaybeKick(chatLog))
+ return;
+
ticket = new GmTicket(GetPlayer());
ticket->SetPosition(mapId, x, y, z);
ticket->SetMessage(message);
ticket->SetGmAction(needResponse, needMoreHelp);
-
if (!chatLog.empty())
- {
- ValidateLinksAndMaybeKick(chatLog);
ticket->SetChatLog(times, chatLog);
- }
sTicketMgr->AddTicket(ticket);
sTicketMgr->UpdateLastChange();
@@ -149,7 +133,8 @@ void WorldSession::HandleGMTicketUpdateOpcode(WorldPacket& recvData)
std::string message;
recvData >> message;
- ValidateLinksAndMaybeKick(message);
+ if (!ValidateHyperlinksAndMaybeKick(message))
+ return;
GMTicketResponse response = GMTICKET_RESPONSE_UPDATE_ERROR;
if (GmTicket* ticket = sTicketMgr->GetTicketByPlayer(GetPlayer()->GetGUID()))
@@ -233,7 +218,8 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recvData)
if (!surveyIds.insert(subSurveyId).second)
continue;
- ValidateLinksAndMaybeKick(comment);
+ if (!ValidateHyperlinksAndMaybeKick(comment))
+ return;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SUBSURVEY);
stmt->setUInt32(0, nextSurveyID);
@@ -246,7 +232,8 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recvData)
std::string comment; // just a guess
recvData >> comment;
- ValidateLinksAndMaybeKick(comment);
+ if (!ValidateHyperlinksAndMaybeKick(comment))
+ return;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SURVEY);
stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());