From 1ef31ba752ed2ab7bcc30c11265d217b383dec4b Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 13 Oct 2014 17:22:24 +0200 Subject: Battle.net: Implemented cache stream items --- src/server/bnetserver/Packets/CachePackets.cpp | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/server/bnetserver/Packets/CachePackets.cpp (limited to 'src/server/bnetserver/Packets/CachePackets.cpp') diff --git a/src/server/bnetserver/Packets/CachePackets.cpp b/src/server/bnetserver/Packets/CachePackets.cpp new file mode 100644 index 00000000000..cd5aa05fed6 --- /dev/null +++ b/src/server/bnetserver/Packets/CachePackets.cpp @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2008-2014 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "CachePackets.h" + +void Battlenet::Cache::GetStreamItemsRequest::Read() +{ + if (_stream.Read(1)) + { + _stream.Read(11); // padding + ItemName = _stream.ReadFourCC(); + Channel = _stream.ReadFourCC(); + } + else + _stream.Read(16); + + _stream.Read(1); // StreamDirection + ReferenceTime = _stream.Read(32) - std::numeric_limits::min(); + Locale = _stream.ReadFourCC(); + Index = _stream.Read(32); + _stream.Read(6); // Module count, always 0 +} + +std::string Battlenet::Cache::GetStreamItemsRequest::ToString() const +{ + std::ostringstream stream; + stream << "Battlenet::Cache::GetStreamItemsRequest Channel: " << Channel << ", ItemName: " << ItemName + << ", Locale: " << Locale << ", Index: " << Index; + return stream.str(); +} + +void Battlenet::Cache::GetStreamItemsRequest::CallHandler(Session* session) +{ + session->HandleGetStreamItemsRequest(*this); +} + +Battlenet::Cache::GetStreamItemsResponse::~GetStreamItemsResponse() +{ + for (size_t i = 0; i < Modules.size(); ++i) + delete Modules[i]; +} + +void Battlenet::Cache::GetStreamItemsResponse::Write() +{ + _stream.Write(0, 16); + _stream.Write(Modules.size(), 6); + for (ModuleInfo const* info : Modules) + { + _stream.WriteBytes(info->Type.c_str(), 4); + _stream.WriteFourCC(info->Region); + _stream.WriteBytes(info->ModuleId, 32); + _stream.WriteBytes(info->Data, 4); + } + + _stream.Write(Index, 32); + _stream.Write(0, 17); // padding + _stream.Write(1, 16); + _stream.Write(0, 2); +} + +std::string Battlenet::Cache::GetStreamItemsResponse::ToString() const +{ + std::ostringstream stream; + stream << "Battlenet::Cache::GetStreamItemsResponse modules " << Modules.size(); + for (ModuleInfo const* module : Modules) + stream << std::endl << "Battlenet::ModuleInfo Locale " << module->Region.c_str() << ", ModuleId " << ByteArrayToHexStr(module->ModuleId, 32) << ", Data " << ByteArrayToHexStr(module->Data, module->DataSize); + + return stream.str(); +} -- cgit v1.2.3 From 863eac9c1a94f202aa5d5008d0b595626ba18951 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 18 Oct 2014 00:01:00 +0200 Subject: Fixed nopch build --- src/server/bnetserver/Packets/CachePackets.cpp | 1 + src/server/bnetserver/Packets/CachePackets.h | 1 + 2 files changed, 2 insertions(+) (limited to 'src/server/bnetserver/Packets/CachePackets.cpp') diff --git a/src/server/bnetserver/Packets/CachePackets.cpp b/src/server/bnetserver/Packets/CachePackets.cpp index cd5aa05fed6..4679448cbc8 100644 --- a/src/server/bnetserver/Packets/CachePackets.cpp +++ b/src/server/bnetserver/Packets/CachePackets.cpp @@ -15,6 +15,7 @@ * with this program. If not, see . */ +#include "Session.h" #include "CachePackets.h" void Battlenet::Cache::GetStreamItemsRequest::Read() diff --git a/src/server/bnetserver/Packets/CachePackets.h b/src/server/bnetserver/Packets/CachePackets.h index 4d9987a0f0e..a65ab2651c8 100644 --- a/src/server/bnetserver/Packets/CachePackets.h +++ b/src/server/bnetserver/Packets/CachePackets.h @@ -18,6 +18,7 @@ #ifndef CachePackets_h__ #define CachePackets_h__ +#include "ModuleManager.h" #include "PacketsBase.h" namespace Battlenet -- cgit v1.2.3 From 69a17346d477be337c288145ec9da8a019ed040e Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 18 Oct 2014 00:26:41 +0200 Subject: More build fixes, everyone loves pch --- src/server/bnetserver/Packets/CachePackets.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/server/bnetserver/Packets/CachePackets.cpp') diff --git a/src/server/bnetserver/Packets/CachePackets.cpp b/src/server/bnetserver/Packets/CachePackets.cpp index 4679448cbc8..b4fa6c6499d 100644 --- a/src/server/bnetserver/Packets/CachePackets.cpp +++ b/src/server/bnetserver/Packets/CachePackets.cpp @@ -16,6 +16,7 @@ */ #include "Session.h" +#include "Util.h" #include "CachePackets.h" void Battlenet::Cache::GetStreamItemsRequest::Read() -- cgit v1.2.3