aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-11-16 08:51:15 +0100
committerSpp <spp@jorge.gr>2012-11-16 08:51:15 +0100
commita0c8193ee7be188a0951ce6ee0bdafb1dee41e71 (patch)
tree1020225dc168a154a9d788df950780b056e71910 /src/server/game/Server
parentf13e57d9edb8664be746cf17d2ea36e24eca863e (diff)
parentd13ca54ecc991a7312f1584bdfdec32f8e6a0ee3 (diff)
Merge branch 'master' into 4.3.4
Conflicts: src/server/game/Handlers/BattleGroundHandler.cpp
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/WorldSocket.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 38c6ed6276e..5c71c9e503c 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -918,6 +918,17 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
uint32 recruiter = fields[9].GetUInt32();
std::string os = fields[10].GetString();
+ // Must be done before WorldSession is created
+ if (sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED) && os != "Win" && os != "OSX")
+ {
+ packet.Initialize(SMSG_AUTH_RESPONSE, 1);
+ packet << uint8(AUTH_REJECT);
+ SendPacket(packet);
+
+ sLog->outError(LOG_FILTER_NETWORKIO, "WorldSocket::HandleAuthSession: Client %s attempted to log in using invalid client OS (%s).", GetRemoteAddress().c_str(), os.c_str());
+ return -1;
+ }
+
// Checks gmlevel per Realm
stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_GMLEVEL_BY_REALMID);