diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-04-25 21:24:39 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2015-04-25 21:24:39 +0200 |
commit | 34935f0b096807cac55c2290b3502128842e0e69 (patch) | |
tree | 23d0071c057c28212a1335bd10e2e5b47b02ddf2 /src/server/game/Handlers | |
parent | f6d3da7dce2464a89d9a9b20a95325808ac6efe4 (diff) |
Core/PacketIO: Limit the amount of support packets allowed to be processed and updated CMSG_BUG_REPORT
Diffstat (limited to 'src/server/game/Handlers')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 22 | ||||
-rw-r--r-- | src/server/game/Handlers/TicketHandler.cpp | 20 |
2 files changed, 20 insertions, 22 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index d9c81b72702..b01f0c6c147 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -410,28 +410,6 @@ void WorldSession::HandleStandStateChangeOpcode(WorldPackets::Misc::StandStateCh _player->SetStandState(packet.StandState); } -void WorldSession::HandleBugReportOpcode(WorldPacket& recvData) -{ - uint32 suggestion, contentlen, typelen; - std::string content, type; - - recvData >> suggestion >> contentlen; - content = recvData.ReadString(contentlen); - - recvData >> typelen; - type = recvData.ReadString(typelen); - - TC_LOG_DEBUG("network", "%s", type.c_str()); - TC_LOG_DEBUG("network", "%s", content.c_str()); - - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_BUG_REPORT); - - stmt->setString(0, type); - stmt->setString(1, content); - - CharacterDatabase.Execute(stmt); -} - void WorldSession::HandleReclaimCorpse(WorldPackets::Misc::ReclaimCorpse& /*packet*/) { if (_player->IsAlive()) diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp index 55bbe96f15c..1ff239035a4 100644 --- a/src/server/game/Handlers/TicketHandler.cpp +++ b/src/server/game/Handlers/TicketHandler.cpp @@ -203,6 +203,9 @@ void WorldSession::HandleGMResponseResolve(WorldPackets::Ticket::GMTicketRespons void WorldSession::HandleSupportTicketSubmitBug(WorldPackets::Ticket::SupportTicketSubmitBug& packet) { + if (!sSupportMgr->GetBugSystemStatus()) + return; + BugTicket* ticket = new BugTicket(GetPlayer()); ticket->SetPosition(packet.Header.MapID, packet.Header.Position); ticket->SetFacing(packet.Header.Facing); @@ -213,6 +216,9 @@ void WorldSession::HandleSupportTicketSubmitBug(WorldPackets::Ticket::SupportTic void WorldSession::HandleSupportTicketSubmitSuggestion(WorldPackets::Ticket::SupportTicketSubmitSuggestion& packet) { + if (!sSupportMgr->GetSuggestionSystemStatus()) + return; + SuggestionTicket* ticket = new SuggestionTicket(GetPlayer()); ticket->SetPosition(packet.Header.MapID, packet.Header.Position); ticket->SetFacing(packet.Header.Facing); @@ -223,6 +229,9 @@ void WorldSession::HandleSupportTicketSubmitSuggestion(WorldPackets::Ticket::Sup void WorldSession::HandleSupportTicketSubmitComplaint(WorldPackets::Ticket::SupportTicketSubmitComplaint& packet) { + if (!sSupportMgr->GetComplaintSystemStatus()) + return; + ComplaintTicket* comp = new ComplaintTicket(GetPlayer()); comp->SetPosition(packet.Header.MapID, packet.Header.Position); comp->SetFacing(packet.Header.Facing); @@ -232,5 +241,16 @@ void WorldSession::HandleSupportTicketSubmitComplaint(WorldPackets::Ticket::Supp comp->SetNote(packet.Note); sSupportMgr->AddTicket(comp); +} + +void WorldSession::HandleBugReportOpcode(WorldPackets::Ticket::BugReport& bugReport) +{ + // Note: There is no way to trigger this with standard UI except /script ReportBug("text") + if (!sSupportMgr->GetBugSystemStatus()) + return; + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_BUG_REPORT); + stmt->setString(0, bugReport.Text); + stmt->setString(1, bugReport.DiagInfo); + CharacterDatabase.Execute(stmt); } |