aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/Server/BattlenetSession.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-08-12 00:44:26 +0200
committerShauren <shauren.trinity@gmail.com>2014-08-12 00:45:24 +0200
commit4a741258f145af59a224760651e735297ad92101 (patch)
treeaa432e679516d5760c7ad7e6c7efe41b3adbc0d9 /src/server/authserver/Server/BattlenetSession.cpp
parenteb8e140f7f76e1fc8927017775c86aede1af47d7 (diff)
parentc741d2682a1835b0e9a775d1aba9f795db348450 (diff)
Merge branch 'master' of https://github.com/TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Achievements/AchievementMgr.cpp src/server/game/Battlegrounds/ArenaScore.h src/server/game/Battlegrounds/Zones/BattlegroundAB.h src/server/game/Battlegrounds/Zones/BattlegroundAV.h src/server/game/Battlegrounds/Zones/BattlegroundEY.h src/server/game/Battlegrounds/Zones/BattlegroundIC.h src/server/game/Battlegrounds/Zones/BattlegroundSA.h src/server/game/Battlegrounds/Zones/BattlegroundWS.h src/server/game/Entities/Creature/Creature.h src/server/game/Entities/DynamicObject/DynamicObject.h src/server/game/Entities/Item/Item.h src/server/game/Entities/Object/Updates/UpdateData.cpp src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Entities/Unit/Unit.h src/server/game/Guilds/Guild.h src/server/game/Handlers/CharacterHandler.cpp src/server/game/Handlers/TradeHandler.cpp src/server/game/Miscellaneous/SharedDefines.h src/server/game/Server/WorldPacket.h src/server/game/Server/WorldSession.cpp src/server/game/Server/WorldSession.h src/server/game/Server/WorldSocket.cpp src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/World/World.cpp src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp src/server/scripts/Kalimdor/zone_orgrimmar.cpp src/server/scripts/Kalimdor/zone_ungoro_crater.cpp src/server/scripts/Spells/spell_dk.cpp src/server/scripts/Spells/spell_shaman.cpp src/server/shared/Packets/ByteBuffer.h
Diffstat (limited to 'src/server/authserver/Server/BattlenetSession.cpp')
-rw-r--r--src/server/authserver/Server/BattlenetSession.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/server/authserver/Server/BattlenetSession.cpp b/src/server/authserver/Server/BattlenetSession.cpp
index 0fd08c267f1..e345cd35200 100644
--- a/src/server/authserver/Server/BattlenetSession.cpp
+++ b/src/server/authserver/Server/BattlenetSession.cpp
@@ -538,17 +538,10 @@ bool Battlenet::Session::HandleRealmJoinRequest(PacketHeader& header, BitStream&
return true;
}
-void Battlenet::Session::ReadHeaderHandler(boost::system::error_code error, size_t transferedBytes)
+void Battlenet::Session::ReadDataHandler()
{
- if (error)
- {
- CloseSocket();
- return;
- }
-
- BitStream packet(transferedBytes);
- std::memcpy(packet.GetBuffer(), GetReadBuffer(), transferedBytes);
- _crypt.DecryptRecv(packet.GetBuffer(), transferedBytes);
+ BitStream packet(MoveData());
+ _crypt.DecryptRecv(packet.GetBuffer(), packet.GetSize());
while (!packet.IsRead())
{
@@ -589,17 +582,23 @@ void Battlenet::Session::ReadHeaderHandler(boost::system::error_code error, size
}
}
- AsyncReadHeader();
+ AsyncReadData(size_t(BufferSizes::Read));
}
void Battlenet::Session::Start()
{
TC_LOG_TRACE("server.battlenet", "Battlenet::Session::Start");
- AsyncReadHeader();
+ AsyncReadData(size_t(BufferSizes::Read));
}
void Battlenet::Session::AsyncWrite(ServerPacket* packet)
{
+ if (!IsOpen())
+ {
+ delete packet;
+ return;
+ }
+
TC_LOG_TRACE("server.battlenet", "Battlenet::Session::AsyncWrite %s", packet->ToString().c_str());
packet->Write();