Commit Graph

150 Commits

Author SHA1 Message Date
Shauren
250fcc8970 Core/Auth: Implement additional version check for modified clients during login 2019-01-15 22:49:27 +01:00
Treeston
fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
Shauren
0ead73516a Core/Misc: Improved ip2location code and set it to disabled by default 2018-06-23 21:31:09 +02:00
Gooyeth
2fe4ab94c5 Common: Replace ip2nation by ip2location. (#21957)
Replace ip2nation by ip2location.

Download: https://lite.ip2location.com/database/ip-country
2018-06-23 01:32:39 +02:00
Shauren
b2b4f9d1e4 Core/Misc: Added compatibility layer for boost 1.66 and future std:: networking stuff
* Based on work done by @dimiandre in PR #21173

Closes #21171
Closes #21173

(cherry picked from commit dfd2660a85)
2018-01-06 12:30:28 +01:00
tkrokli
f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
jackpoz
97f33dc779 Core/Misc: Fix static analysis issues 2017-11-11 20:27:30 +01:00
Shauren
1f63554312 Core/Auth: Fixed client getting stuck on login or realm change 2017-07-21 20:34:00 +02:00
Shauren
fba87d3f33 Core/Auth: Prevent queueing more than one realmlist query at the same time 2017-07-12 19:22:53 +02:00
ariel-
85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
Shauren
14abd1f587 Core/Auth: Per SRP6a protocol, terminate connection of A % N == 0. This resolves another authentication bypass issue
(cherry picked from commit cmangos/mangos-wotlk@ea3e08a812)
2017-03-15 21:41:58 +01:00
Gildor
b209353266 Build Fix (#19004) 2017-01-29 18:15:21 +01:00
Tonghost
684a5fd3f1 Core/Auth: Use QueryCallbackProcessor insted boost::optional. Fixes build for boost 1.55.0 2017-01-26 13:21:58 -03:00
Shauren
4c27203c8f Core/DBLayer: Convert async queries to new query callbacks and remove old callback handling
(cherry picked from commit 8e2634b2b4)

Conflicts:
	src/server/bnetserver/Server/Session.cpp
	src/server/bnetserver/Server/Session.h
	src/server/database/Database/QueryCallback.cpp
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/Handlers/SocialHandler.cpp
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSession.h
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Server/WorldSocket.h
	src/server/game/World/World.cpp
	src/server/game/World/World.h
2017-01-25 23:38:13 -03:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
Chaosvex
ed2cd6b34f Core/Auth: Resolved authentication bypass 2016-11-10 23:00:58 +01:00
joschiwald
ec221c5500 Core/Auth: removed unneeded sub query 2016-09-25 18:06:01 +02:00
joschiwald
96316530d8 Core/Auth: fixed logic in FailedLogins check 2016-09-24 20:03:31 +02:00
Aokromes
1ad24352ac Core/Logs: Fine tune more logs
And move others to more logical appenders
2016-08-11 09:10:20 +02:00
jackpoz
e4b2e0450f Common/Crypto: Reduce differences between 3.3.5 and 6.x branches
Code functionality shouldn't have been modified.
2016-08-03 23:33:36 +02:00
Naios
d4d199d765 Core/Common: Move the query callback header to the database project
* Also renames the header to it's correct name QueryCallback
2016-05-10 18:16:13 +02:00
joschiwald
9ee67b42f3 Core/Authserver: removed obsolete code 2016-04-23 12:25:34 +02:00
Shauren
778f1725f8 Core/Misc: Moved RealmList to shared
(cherry picked from commit cfe8a6a58b)
2016-04-09 12:30:00 +02:00
DDuarte
980f28d2ce Core/Network: Change SocketMgr.StartNetwork to take the thread count by arg instead of config
AuthSocketMgr doesn't need "Network.Threads" config

Fixes "Missing name Network.Threads in config file authserver.conf"

Ref #16859
2016-03-28 02:02:29 +01:00
Shauren
2a37266269 Core/Auth: Fixed login for accounts with accented characters
Closes #16770
2016-03-12 21:22:16 +01:00
DDuarte
6cd63ca3d4 Core/Authserver: Partial port of 56cf7ff2a8
Change the "UpdateIfNeed" logic to a deadline_timer
2016-03-06 19:46:59 +00:00
DDuarte
2ea31027e5 Core: Backport 6.x realm changes
Make acessible all the info about current realm (e.g name) anywhere, not only realm id
Reduce the number of differences between the two branches

Original changes by Shauren

Partial port of bacc90b6ba and 63def8aa32
2016-03-06 19:46:59 +00:00
Shauren
b2e03a7448 Core/Networking: Rewrite networking threading model
Each network thread has its own io_service - this means that all operations on a given socket except queueing packets run from a single thread, removing the need for locking
Sending packets now writes to a lockfree intermediate queue directly, encryption is applied in network thread if it was required at the time of sending the packet

(cherry picked from commit 97a79af470)
2016-02-20 13:08:03 +01:00
Shauren
dfbb3bec56 Core/Auth: Moved expiring bans to background task - no longer blocking queries during login by default running every minute (configurable) 2016-02-15 19:38:53 +01:00
Shauren
ce6221b10b Warning fix 2016-02-14 18:47:12 +01:00
Shauren
5bf90b3338 Core/Auth: Performance/security improvements
* Changed all db queries to async
* Added buffer length checks
* Only allow one challenge/proof packet per socket lifetime

Closes #13217
Closes #16602
2016-02-14 18:41:25 +01:00
Shauren
a3dbfa5eb6 Core/Authserver: Do not close the socket immediately when user types in invalid authenticator token to allow receiving failure packet 2016-01-05 18:46:21 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
Gacko
1f839b2434 Auth/Login: Rename config key usage
Related: 193dd505
2015-12-19 14:34:05 +01:00
Vincent-Michael
f3e86d3e68 Update copyright note for 2015
Happy new year

Conflicts:
	src/server/bnetserver/Authentication/AuthCodes.h
	src/server/bnetserver/Authentication/BattlenetPacketCrypt.cpp
	src/server/bnetserver/Authentication/BattlenetPacketCrypt.h
	src/server/bnetserver/Packets/AchievementPackets.h
	src/server/bnetserver/Packets/AuthenticationPackets.cpp
	src/server/bnetserver/Packets/AuthenticationPackets.h
	src/server/bnetserver/Packets/BitStream.cpp
	src/server/bnetserver/Packets/BitStream.h
	src/server/bnetserver/Packets/CachePackets.cpp
	src/server/bnetserver/Packets/CachePackets.h
	src/server/bnetserver/Packets/ChatPackets.h
	src/server/bnetserver/Packets/ConnectionPackets.cpp
	src/server/bnetserver/Packets/ConnectionPackets.h
	src/server/bnetserver/Packets/FriendsPackets.cpp
	src/server/bnetserver/Packets/FriendsPackets.h
	src/server/bnetserver/Packets/PacketManager.cpp
	src/server/bnetserver/Packets/PacketManager.h
	src/server/bnetserver/Packets/Packets.h
	src/server/bnetserver/Packets/PacketsBase.cpp
	src/server/bnetserver/Packets/PacketsBase.h
	src/server/bnetserver/Packets/PresencePackets.cpp
	src/server/bnetserver/Packets/PresencePackets.h
	src/server/bnetserver/Packets/ProfilePackets.h
	src/server/bnetserver/Packets/SupportPackets.h
	src/server/bnetserver/Packets/WoWRealmPackets.cpp
	src/server/bnetserver/Packets/WoWRealmPackets.h
	src/server/bnetserver/Realms/RealmList.cpp
	src/server/bnetserver/Realms/WorldListener.cpp
	src/server/bnetserver/Realms/WorldListener.h
	src/server/bnetserver/Server/ComponentManager.cpp
	src/server/bnetserver/Server/ComponentManager.h
	src/server/bnetserver/Server/ModuleManager.cpp
	src/server/bnetserver/Server/ModuleManager.h
	src/server/bnetserver/Server/Session.cpp
	src/server/bnetserver/Server/Session.h
	src/server/bnetserver/Server/SessionManager.cpp
	src/server/bnetserver/Server/SessionManager.h
	src/server/game/Accounts/BattlenetAccountMgr.cpp
	src/server/game/Accounts/BattlenetAccountMgr.h
	src/server/game/Battlegrounds/Zones/BattlegroundBFG.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
	src/server/game/Battlegrounds/Zones/BattlegroundTP.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundTP.h
	src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
	src/server/game/Entities/AreaTrigger/AreaTrigger.h
	src/server/game/Entities/Item/ItemTemplate.cpp
	src/server/game/Guilds/GuildFinderMgr.cpp
	src/server/game/Guilds/GuildFinderMgr.h
	src/server/game/Handlers/GuildFinderHandler.cpp
	src/server/game/Handlers/VoidStorageHandler.cpp
	src/server/game/Movement/MovementStructures.cpp
	src/server/game/Movement/MovementStructures.h
	src/server/game/Movement/PathGenerator.cpp
	src/server/game/Server/BattlenetServerManager.cpp
	src/server/game/Server/BattlenetServerManager.h
	src/server/game/Server/Packet.cpp
	src/server/game/Server/Packet.h
	src/server/game/Server/Packets/AchievementPackets.cpp
	src/server/game/Server/Packets/AchievementPackets.h
	src/server/game/Server/Packets/AuctionHousePackets.cpp
	src/server/game/Server/Packets/AuctionHousePackets.h
	src/server/game/Server/Packets/AuthenticationPackets.cpp
	src/server/game/Server/Packets/AuthenticationPackets.h
	src/server/game/Server/Packets/BattlegroundPackets.cpp
	src/server/game/Server/Packets/BattlegroundPackets.h
	src/server/game/Server/Packets/ChannelPackets.cpp
	src/server/game/Server/Packets/ChannelPackets.h
	src/server/game/Server/Packets/CharacterPackets.cpp
	src/server/game/Server/Packets/CharacterPackets.h
	src/server/game/Server/Packets/ChatPackets.cpp
	src/server/game/Server/Packets/ChatPackets.h
	src/server/game/Server/Packets/ClientConfigPackets.cpp
	src/server/game/Server/Packets/ClientConfigPackets.h
	src/server/game/Server/Packets/CombatLogPackets.cpp
	src/server/game/Server/Packets/CombatLogPackets.h
	src/server/game/Server/Packets/CombatPackets.cpp
	src/server/game/Server/Packets/CombatPackets.h
	src/server/game/Server/Packets/EquipmentSetPackets.cpp
	src/server/game/Server/Packets/EquipmentSetPackets.h
	src/server/game/Server/Packets/GameObjectPackets.cpp
	src/server/game/Server/Packets/GameObjectPackets.h
	src/server/game/Server/Packets/GuildPackets.cpp
	src/server/game/Server/Packets/GuildPackets.h
	src/server/game/Server/Packets/ItemPackets.cpp
	src/server/game/Server/Packets/ItemPackets.h
	src/server/game/Server/Packets/LootPackets.h
	src/server/game/Server/Packets/MiscPackets.cpp
	src/server/game/Server/Packets/MiscPackets.h
	src/server/game/Server/Packets/MovementPackets.cpp
	src/server/game/Server/Packets/MovementPackets.h
	src/server/game/Server/Packets/NPCPackets.cpp
	src/server/game/Server/Packets/NPCPackets.h
	src/server/game/Server/Packets/QueryPackets.cpp
	src/server/game/Server/Packets/QueryPackets.h
	src/server/game/Server/Packets/QuestPackets.cpp
	src/server/game/Server/Packets/QuestPackets.h
	src/server/game/Server/Packets/ReputationPackets.cpp
	src/server/game/Server/Packets/ReputationPackets.h
	src/server/game/Server/Packets/SpellPackets.cpp
	src/server/game/Server/Packets/SpellPackets.h
	src/server/game/Server/Packets/SystemPackets.cpp
	src/server/game/Server/Packets/SystemPackets.h
	src/server/game/Server/Packets/TalentPackets.cpp
	src/server/game/Server/Packets/TalentPackets.h
	src/server/game/Server/Packets/TradePackets.h
	src/server/game/Server/Packets/WorldStatePackets.cpp
	src/server/game/Server/Packets/WorldStatePackets.h
	src/server/game/Server/WorldSocket.cpp
	src/server/ipc/CMakeLists.txt
	src/server/ipc/Commands.cpp
	src/server/ipc/Commands.h
	src/server/ipc/ZMQTask.cpp
	src/server/ipc/ZMQTask.h
	src/server/ipc/ZmqContext.cpp
	src/server/ipc/ZmqContext.h
	src/server/ipc/ZmqListener.cpp
	src/server/ipc/ZmqListener.h
	src/server/ipc/ZmqMux.cpp
	src/server/ipc/ZmqMux.h
	src/server/ipc/ZmqWorker.cpp
	src/server/ipc/ZmqWorker.h
	src/server/scripts/Commands/cs_battlenet_account.cpp
	src/server/scripts/Commands/cs_mmaps.cpp
	src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
	src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp
	src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
	src/server/scripts/EasternKingdoms/BaradinHold/instance_baradin_hold.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.h
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp
	src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
	src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
	src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
	src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
	src/server/scripts/EasternKingdoms/ZulAman/zulaman.h
	src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
	src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp
	src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp
	src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
	src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp
	src/server/scripts/EasternKingdoms/zone_ironforge.cpp
	src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp
	src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
	src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
	src/server/scripts/Kalimdor/Firelands/firelands.h
	src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp
	src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
	src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
	src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
	src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h
	src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
	src/server/scripts/Kalimdor/zone_azshara.cpp
	src/server/scripts/Kalimdor/zone_darkshore.cpp
	src/server/scripts/Kalimdor/zone_felwood.cpp
	src/server/scripts/Kalimdor/zone_moonglade.cpp
	src/server/scripts/Kalimdor/zone_orgrimmar.cpp
	src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
	src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
	src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
	src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp
	src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp
	src/server/scripts/Maelstrom/Stonecore/instance_stonecore.cpp
	src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
	src/server/scripts/Maelstrom/Stonecore/stonecore.h
	src/server/shared/Cryptography/Authentication/AuthCrypt.h
	src/server/shared/Cryptography/Authentication/PacketCrypt.cpp
	src/server/shared/Cryptography/Authentication/WorldPacketCrypt.cpp
	src/server/shared/Cryptography/HmacHash.cpp
	src/server/shared/Cryptography/SHA256.cpp
	src/server/shared/Cryptography/SHA256.h
	src/server/shared/Database/Implementation/HotfixDatabase.cpp
	src/server/shared/Database/Implementation/HotfixDatabase.h
	src/server/shared/Realm/Realm.cpp
	src/server/shared/Realm/Realm.h
	src/tools/connection_patcher/CMakeLists.txt
	src/tools/connection_patcher/Constants/BinaryTypes.hpp
	src/tools/connection_patcher/Helper.cpp
	src/tools/connection_patcher/Helper.hpp
	src/tools/connection_patcher/Patcher.cpp
	src/tools/connection_patcher/Patcher.hpp
	src/tools/connection_patcher/Patches/Common.hpp
	src/tools/connection_patcher/Patches/Mac.hpp
	src/tools/connection_patcher/Patches/Windows.hpp
	src/tools/connection_patcher/Patterns/Common.hpp
	src/tools/connection_patcher/Patterns/Mac.hpp
	src/tools/connection_patcher/Patterns/Windows.hpp
	src/tools/connection_patcher/Program.cpp
	src/tools/map_extractor/loadlib/DBFilesClientList.h
2015-01-01 00:32:50 +01:00
Shauren
946e2d0ca6 Core/Authserver: Added missing auth socket manager
Closes #13085
2014-09-10 21:17:55 +02:00
Shauren
e0ce4528c5 Core/NetworkIO: Use reactor style sending on linux to reduce locking overhead 2014-09-09 19:19:25 +02:00
Shauren
abfd29ab61 Core/WorldSession: Added research notes about CMSG_AUTH_SESSION values and reordered checks during login to always initialize encryption first to make sure the client can read failure packet 2014-08-21 18:18:13 +02:00
Shauren
c741d2682a Core/NetworkIO: Prevent queueing more async operations when socket is already closed 2014-08-11 20:43:07 +02:00
Shauren
39d3480172 Core/Authserver: Fixed writing to invalid memory address 2014-08-10 11:48:43 +02:00
Shauren
df11916ad5 Core/NetworkIO: Allow receiving packets bigger than buffer size and properly handle situations where not entire packet was read in one go
Core/Authserver: Restored authenticator functionality
2014-08-10 11:00:27 +02:00
jackpoz
78af80230d Core/Misc: Fix static analysis issues 2014-08-08 21:14:12 +02:00
Shauren
d46c3bf877 Core/Authserver: Fixed invalid memory access when AsByteArray returns less bytes than expected 2014-07-29 18:26:10 +02:00
Shauren
6f272ea5b7 Core/Network: Optimized packet sending by removing unneccessary memory copying 2014-07-27 17:46:46 +02:00
Shauren
e77c0b6ed4 Core/Network: Allow storing any packet types in Socket write queue to reduce the amount of copying going on 2014-07-27 14:59:46 +02:00
Shauren
26715795b4 Fixed gcc build 2014-07-27 01:26:03 +02:00
Shauren
c1b1ba44ba Core/Network: Refactored socket code, moved common operations to base Socket class 2014-07-26 23:26:01 +02:00
DDuarte
dcfa3bfa90 Core/Network: Fix build 2014-07-25 19:49:43 +01:00
DDuarte
4f1d247dfb Core/Network: Fix some possible exceptions on socket.close()
Ref #12634
2014-07-25 18:06:43 +01:00
Shauren
0b236d480a Core/Authserver: Fixed changing realms 2014-07-22 20:15:11 +02:00