aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/Server/BattlenetPackets.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-04-30 23:02:01 +0200
committerShauren <shauren.trinity@gmail.com>2014-04-30 23:02:01 +0200
commitfea9d275fa0ed8f5b43dc54979cdd5a58afc993b (patch)
treeadd86173dea4a11d2dddfbed6cc946994203d567 /src/server/authserver/Server/BattlenetPackets.cpp
parenta142eb9f7a9683f98fe1e9153f6958f80d374c9d (diff)
Verify received components
Diffstat (limited to 'src/server/authserver/Server/BattlenetPackets.cpp')
-rw-r--r--src/server/authserver/Server/BattlenetPackets.cpp43
1 files changed, 33 insertions, 10 deletions
diff --git a/src/server/authserver/Server/BattlenetPackets.cpp b/src/server/authserver/Server/BattlenetPackets.cpp
index 37040fa6d6e..80213a0ba33 100644
--- a/src/server/authserver/Server/BattlenetPackets.cpp
+++ b/src/server/authserver/Server/BattlenetPackets.cpp
@@ -15,9 +15,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Common.h"
-#include "BattlenetBitStream.h"
#include "BattlenetPackets.h"
+#include "Common.h"
#include "Util.h"
#include <limits>
#include <sstream>
@@ -58,14 +57,17 @@ void Battlenet::AuthChallenge::Read()
if (_stream.Read<uint32>(1))
Login = _stream.ReadString(9, 3);
+
+ if (GetHeader().Opcode == CMSG_AUTH_CHALLENGE_NEW)
+ _stream.FinishReading();
}
std::string Battlenet::AuthChallenge::ToString() const
{
std::ostringstream stream;
stream << "Battlenet::AuthChallenge Program: " << Program << ", Platform: " << Platform << ", Locale: " << Locale;
- for (uint32 i = 0; i < Components.size(); ++i)
- stream << std::endl << "Battlenet::AuthChallenge::Component Program: " << Components[i].Program << ", Platform: " << Components[i].Platform << ", Build: " << Components[i].Build;
+ for (Component const& component : Components)
+ stream << std::endl << "Battlenet::AuthChallenge::Component Program: " << component.Program << ", Platform: " << component.Platform << ", Build: " << component.Build;
if (!Login.empty())
stream << std::endl << "Battlenet::AuthChallenge Login: " << Login;
@@ -87,6 +89,16 @@ void Battlenet::ProofRequest::Write()
}
}
+std::string Battlenet::ProofRequest::ToString() const
+{
+ std::ostringstream stream;
+ stream << "Battlenet::ProofRequest modules " << Modules.size();
+ for (ModuleInfo const& module : Modules)
+ stream << std::endl << "Locale " << module.Locale << "ModuleId " << ByteArrayToHexStr(module.ModuleId, 32) << "BlobSize " << module.BlobSize;
+
+ return stream.str();
+}
+
Battlenet::ProofResponse::~ProofResponse()
{
for (size_t i = 0; i < Modules.size(); ++i)
@@ -108,10 +120,10 @@ std::string Battlenet::ProofResponse::ToString() const
{
std::ostringstream stream;
stream << "Battlenet::ProofResponse Modules " << Modules.size();
- for (size_t i = 0; i < Modules.size(); ++i)
+ for (ModuleData const& module : Modules)
{
- std::string hexStr = ByteArrayToHexStr(Modules[i].Data, Modules[i].Size);
- stream << std::endl << "Battlenet::ProofResponse::ModuleData Size: " << Modules[i].Size << ", Data: " << hexStr;
+ std::string hexStr = ByteArrayToHexStr(module.Data, module.Size);
+ stream << std::endl << "Battlenet::ProofResponse::ModuleData Size: " << module.Size << ", Data: " << hexStr;
}
return stream.str();
@@ -119,8 +131,8 @@ std::string Battlenet::ProofResponse::ToString() const
void Battlenet::AuthComplete::Write()
{
- _stream.Write(AuthResult != 0, 1);
- if (AuthResult == 0)
+ _stream.Write(Result != 0, 1);
+ if (Result == 0)
{
_stream.Write(Modules.size(), 3);
for (size_t i = 0; i < Modules.size(); ++i)
@@ -163,8 +175,19 @@ void Battlenet::AuthComplete::Write()
_stream.Write(ErrorType, 2);
if (ErrorType == 1)
{
- _stream.Write(AuthResult, 16);
+ _stream.Write<uint16>(Result, 16);
_stream.Write(0, 32);
}
}
}
+
+std::string Battlenet::AuthComplete::ToString() const
+{
+ return "Battlenet::AuthComplete";
+}
+
+void Battlenet::AuthComplete::SetAuthResult(AuthResult result)
+{
+ ErrorType = result != AUTH_OK ? 1 : 0;
+ Result = result;
+}