aboutsummaryrefslogtreecommitdiff
path: root/src/server/bnetserver
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/bnetserver')
-rw-r--r--src/server/bnetserver/Packets/AuthenticationPackets.h8
-rw-r--r--src/server/bnetserver/Packets/BitStream.h1
-rw-r--r--src/server/bnetserver/Packets/CachePackets.cpp2
-rw-r--r--src/server/bnetserver/Packets/CachePackets.h6
-rw-r--r--src/server/bnetserver/Packets/ConnectionPackets.h6
-rw-r--r--src/server/bnetserver/Packets/FriendsPackets.cpp4
-rw-r--r--src/server/bnetserver/Packets/FriendsPackets.h2
-rw-r--r--src/server/bnetserver/Packets/WoWRealmPackets.h2
-rw-r--r--src/server/bnetserver/Server/Session.cpp3
-rw-r--r--src/server/bnetserver/Server/Session.h2
10 files changed, 20 insertions, 16 deletions
diff --git a/src/server/bnetserver/Packets/AuthenticationPackets.h b/src/server/bnetserver/Packets/AuthenticationPackets.h
index bcaa0e72011..fd5838720ab 100644
--- a/src/server/bnetserver/Packets/AuthenticationPackets.h
+++ b/src/server/bnetserver/Packets/AuthenticationPackets.h
@@ -60,7 +60,7 @@ namespace Battlenet
std::string Locale;
std::vector<Component> Components;
std::string Login;
- uint8 Region;
+ uint8 Region = 0;
std::string GameAccountName;
};
@@ -98,7 +98,7 @@ namespace Battlenet
std::string Locale;
std::vector<Component> Components;
std::string Login;
- uint64 Compatibility;
+ uint64 Compatibility = 0;
};
class ResponseFailure
@@ -138,8 +138,8 @@ namespace Battlenet
{
public:
LogonResponse() : ServerPacket(PacketHeader(SMSG_LOGON_RESPONSE, AUTHENTICATION)),
- PingTimeout(120000), FirstName(""), LastName(""), AccountId(0), Region(2), Flags(0),
- GameAccountRegion(2), GameAccountName(""), FailedLogins(0)
+ PingTimeout(120000), AccountId(0), Region(2), Flags(0),
+ GameAccountRegion(2), GameAccountFlags(0), FailedLogins(0)
{
}
diff --git a/src/server/bnetserver/Packets/BitStream.h b/src/server/bnetserver/Packets/BitStream.h
index 54c61ab3bbf..ef2c85a63c8 100644
--- a/src/server/bnetserver/Packets/BitStream.h
+++ b/src/server/bnetserver/Packets/BitStream.h
@@ -217,6 +217,7 @@ namespace Battlenet
uint8* GetBuffer() { return _buffer.data(); }
uint8 const* GetBuffer() const { return _buffer.data(); }
+ uint32 GetReadPos() const { return _readPos; }
size_t GetSize() const { return ((_writePos + 7) & ~7) / 8; }
// These methods are meant to only be used when their corresponding actions in the client ignore the value completely
diff --git a/src/server/bnetserver/Packets/CachePackets.cpp b/src/server/bnetserver/Packets/CachePackets.cpp
index deacfd34065..8ae489fe47c 100644
--- a/src/server/bnetserver/Packets/CachePackets.cpp
+++ b/src/server/bnetserver/Packets/CachePackets.cpp
@@ -21,7 +21,7 @@
void Battlenet::Cache::GetStreamItemsRequest::Read()
{
- _stream.WriteSkip(31);
+ _stream.ReadSkip(31);
Index = _stream.Read<uint32>(32);
ReferenceTime = _stream.Read<int32>(32) - std::numeric_limits<int32>::min();
_stream.Read<bool>(1); // StreamDirection
diff --git a/src/server/bnetserver/Packets/CachePackets.h b/src/server/bnetserver/Packets/CachePackets.h
index a65ab2651c8..57ccd448081 100644
--- a/src/server/bnetserver/Packets/CachePackets.h
+++ b/src/server/bnetserver/Packets/CachePackets.h
@@ -54,8 +54,8 @@ namespace Battlenet
std::string Channel;
std::string ItemName;
std::string Locale;
- uint32 Index;
- int32 ReferenceTime;
+ uint32 Index = 0;
+ int32 ReferenceTime = 0;
};
class GetStreamItemsResponse final : public ServerPacket
@@ -70,7 +70,7 @@ namespace Battlenet
void Write() override;
std::string ToString() const override;
- uint32 Index;
+ uint32 Index = 0;
std::vector<ModuleInfo*> Modules;
};
}
diff --git a/src/server/bnetserver/Packets/ConnectionPackets.h b/src/server/bnetserver/Packets/ConnectionPackets.h
index 8572cd5d854..238b2bff760 100644
--- a/src/server/bnetserver/Packets/ConnectionPackets.h
+++ b/src/server/bnetserver/Packets/ConnectionPackets.h
@@ -63,6 +63,8 @@ namespace Battlenet
void Read() override { }
std::string ToString() const override;
void CallHandler(Session* session) override;
+ uint8* GetRemainingData() { return _stream.GetBuffer() + (((_stream.GetReadPos() + 7) & ~7) / 8); }
+ size_t GetRemainingSize() { return _stream.GetSize() - (((_stream.GetReadPos() + 7) & ~7) / 8); }
};
class LogoutRequest final : public ClientPacket
@@ -89,8 +91,8 @@ namespace Battlenet
void Read() override;
std::string ToString() const override;
- uint16 Timeout;
- uint32 Tick;
+ uint16 Timeout = 0;
+ uint32 Tick = 0;
};
class ConnectionClosing final : public ClientPacket
diff --git a/src/server/bnetserver/Packets/FriendsPackets.cpp b/src/server/bnetserver/Packets/FriendsPackets.cpp
index 2659ec6204f..8b5d92389af 100644
--- a/src/server/bnetserver/Packets/FriendsPackets.cpp
+++ b/src/server/bnetserver/Packets/FriendsPackets.cpp
@@ -20,8 +20,8 @@
void Battlenet::Friends::GetFriendsOfFriend::Read()
{
- uint8 unk = _stream.Read<uint8>(2);
- uint32 unk1 = _stream.Read<uint32>(32);
+ _stream.Read<uint8>(2);
+ _stream.Read<uint32>(32);
}
std::string Battlenet::Friends::GetFriendsOfFriend::ToString() const
diff --git a/src/server/bnetserver/Packets/FriendsPackets.h b/src/server/bnetserver/Packets/FriendsPackets.h
index ea4d6d2ea92..12935ddc4da 100644
--- a/src/server/bnetserver/Packets/FriendsPackets.h
+++ b/src/server/bnetserver/Packets/FriendsPackets.h
@@ -78,7 +78,7 @@ namespace Battlenet
std::string ToString() const override;
void CallHandler(Session* session) override;
- uint32 SocialNetworkId;
+ uint32 SocialNetworkId = 0;
};
class RealIdFriendInvite final : public ClientPacket
diff --git a/src/server/bnetserver/Packets/WoWRealmPackets.h b/src/server/bnetserver/Packets/WoWRealmPackets.h
index b411c63100a..dc958db501b 100644
--- a/src/server/bnetserver/Packets/WoWRealmPackets.h
+++ b/src/server/bnetserver/Packets/WoWRealmPackets.h
@@ -78,7 +78,7 @@ namespace Battlenet
std::string ToString() const override;
void CallHandler(Session* session) override;
- uint32 ClientSeed;
+ uint32 ClientSeed = 0;
RealmId Realm;
};
diff --git a/src/server/bnetserver/Server/Session.cpp b/src/server/bnetserver/Server/Session.cpp
index 0a5a2de499a..fd6784152e8 100644
--- a/src/server/bnetserver/Server/Session.cpp
+++ b/src/server/bnetserver/Server/Session.cpp
@@ -393,9 +393,10 @@ void Battlenet::Session::HandlePing(Connection::Ping const& /*ping*/)
AsyncWrite(new Connection::Pong());
}
-void Battlenet::Session::HandleEnableEncryption(Connection::EnableEncryption const& /*enableEncryption*/)
+void Battlenet::Session::HandleEnableEncryption(Connection::EnableEncryption& enableEncryption)
{
_crypt.Init(&K);
+ _crypt.DecryptRecv(enableEncryption.GetRemainingData(), enableEncryption.GetRemainingSize());
}
void Battlenet::Session::HandleLogoutRequest(Connection::LogoutRequest const& /*logoutRequest*/)
diff --git a/src/server/bnetserver/Server/Session.h b/src/server/bnetserver/Server/Session.h
index ded5170ae32..4a1feb7c8a8 100644
--- a/src/server/bnetserver/Server/Session.h
+++ b/src/server/bnetserver/Server/Session.h
@@ -69,7 +69,7 @@ namespace Battlenet
// Connection
void HandlePing(Connection::Ping const& ping);
- void HandleEnableEncryption(Connection::EnableEncryption const& enableEncryption);
+ void HandleEnableEncryption(Connection::EnableEncryption& enableEncryption);
void HandleLogoutRequest(Connection::LogoutRequest const& logoutRequest);
void HandleConnectionClosing(Connection::ConnectionClosing const& connectionClosing);