Shauren
1942647c0d
Dep: Replace basic_deadline_timer with std::chrono based basic_waitable_timer
...
(cherry picked from commit c81183a660 )
2025-02-18 15:39:41 +01:00
Смердокрыл
2fca554555
Core/Config: Implement reading config overrides from subdirectory ( #29068 )
...
Co-authored-by: Shauren <shauren.trinity@gmail.com >
(cherry picked from commit 74a4dc46b4 )
2024-04-07 12:05:20 +02:00
Shauren
eb50b29ab3
Core/Misc: Added windows version checks during startup to avoid confusion about crashes when running on unsupported OS
...
(cherry picked from commit 333630b7de )
2023-12-02 15:57:09 +01:00
Shauren
7be101ac67
Core/Locales: Set active code page and locale used by c string functions to utf8
...
Closes #29455
(cherry picked from commit b299902881 )
2023-12-02 15:57:09 +01:00
Shauren
aaa6e73c8c
Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api)
...
(cherry picked from commit d791afae1d )
2023-08-15 20:10:04 +02:00
Shauren
27259f8524
Core/Crypto: Fixed loading legacy openssl provider for RC4 on windows
2022-06-16 12:37:00 +02:00
Shauren
77091ed599
Core/Crypto: Switch away from most deprecated openssl functions and removed upper version limit
...
(cherry picked from commit bc87f7b337 )
2022-06-16 12:37:00 +02:00
Anton Popovichenko
1ddd9dc19c
Core/Config: Implement config override with env vars ( #26811 )
...
* Core/Config: Implement config override with env vars
Implement overriding of configuration from the .conf file with environment variables.
Environment variables keys are autogenerated based on the keys defined in .conf file.
Usage example:
$ export TC_DATA_DIR=/usr
$ TC_WORLD_SERVER_PORT=8080 ./worldserver
* Core/Config Fix typo in logs
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com >
* Core/Config Fix code style in EnvVarForIniKey
Co-authored-by: Shauren <shauren.trinity@gmail.com >
* Update tests/common/Config.cpp
* Apply suggestions from code review
Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com >
* Apply suggestions from code review
Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com >
Co-authored-by: Anton Popovichenko <anton.popovichenko@mendix.com >
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com >
Co-authored-by: Shauren <shauren.trinity@gmail.com >
Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com >
2021-08-19 22:26:16 +02:00
Treeston
bcdbdd6f23
Core/Authserver: Removal of sha_pass_hash, compatibility fields, and everything that uses them (PR #25156 )
2020-09-06 16:04:10 +02:00
Treeston
3164b58c7d
Core/Authserver: Re-organize the accounts table (PR #25135 )
...
- no longer use sha_pass_hash for anything else core-side (.account, SOAP, RA)
- salt/verifier/session_key are now binary
- old s/v/sha_pass_hash fields kept around for backwards compatibility
- sha_pass_hash is still updated (for now), s/v are not
- sha_pass_hash is only read if s/v have been manually changed
- SRP6 b now uses the full 32 bytes of randomness (instead of randomly only using 19)
2020-08-02 22:52:21 +02:00
Aokromes
ed93932537
New year
...
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Treeston
4211645834
[3.3.5] Core/Authserver: TOTP rewrite: (PR #23633 )
...
- Proper management commands (.account 2fa)
- Secrets can now be encrypted (set TOTPTokenSecret in .conf)
- Secret now stored in binary
- Argon2 and AES primitives
- Base32/64 support
2019-08-10 21:34:51 +02:00
Shauren
d56c671064
Core/Dep: Boost 1.70 compatibility
...
(cherry picked from commit bcda8dd742 )
2019-04-14 01:04:02 +02:00
Treeston
fcfcb0eb6f
Happy New Year, folks. It's 2019!
2019-01-01 15:45:25 +01: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
ariel-
85a7d5ce9a
Core: ported headers cleanup from master branch
2017-06-19 23:20:06 -03:00
Shauren
7874bee7bf
Core/Misc: Cleanup worldserver/authserver main() functions to run destructors in predictable order
...
* world/auth servers will now fail to startup if listen ports are in use
* Restored "Network.OutUBuff" config option lost during boost transition
(cherry picked from commit 6c92a481a3 )
2017-06-19 04:04:21 -03:00
Shauren
9ec2a82cac
Core/Misc: Prefix all preprocessor defines from CompilerDefs with TRINITY_ to avoid conflicts (PLATFORM_WINDOWS is used/defined by CascLib)
...
(cherry picked from commit b8db320bf1 )
2017-05-23 18:46:44 +02:00
tkrokli
6a51a88767
Update Copyright notice for 2017
...
Happy new year!
2017-01-02 19:52:45 +01:00
Naios
86b0fcf67a
Core/Scripting: Use the path of the worldserver executable to search for the scripts dir
...
* Fixes issues when starting the worldserver not in the bin directory
or the CMAKE_INSTALL_PREFIX directory using the -c option.
2016-04-18 21:02:01 +02:00
Shauren
fd819b0919
Core/Debugging: Make abort() less bad on windows by forcing crash log generation
...
(cherry picked from commit dea7d429ab )
# Conflicts:
# src/server/bnetserver/Main.cpp
2016-03-12 23:52:35 +01:00
Naios
3a4ec8bcbe
Core/Database: Move singleton instances into compilation units
...
* Fixes issues when building shared libraries
(prevents gcc and clang from providing several instance)
* Also instantiate the database worker pools in DatabaseEnv.cpp now.
(cherry picked from commit a8fe7f6eb7 )
2016-03-11 19:51:07 +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
655fc0135f
Core/Auth: Cancel ban expiry check timer on shutdown
2016-02-16 00:16:31 +01:00
Shauren
811c8bbd69
Build fix
2016-02-15 19:40:34 +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
Rushor
923a368ac7
Update copyright note for 2016
2016-01-01 12:02:33 +01:00
StormBytePP
0cc3d883e1
Core/Build: Renamed Revision.h to GitRevision.h to avoid compile failure when old revision.h file is present
2015-08-16 23:08:01 +02:00
Shauren
222eaccc51
Build fix for WheatyExceptionReport, c++ exceptions must not be thrown in SEH handlers
2015-08-16 18:08:03 +02:00
StormBytePP
94f69fb1bc
Core/Build: Removed obsolete SystemConfig.h and made genrev be part of shared library, which allows cache hits to happen more likely
2015-08-16 17:15:38 +02:00
Shauren
cdbd563157
Core/Logging: Refactored appender creation to allow using logging without mysql dependency in tools (future task)
...
Conflicts:
src/server/bnetserver/Main.cpp
src/server/worldserver/Main.cpp
2015-08-16 00:09:02 +01:00
DDuarte
be32beee57
Core/Executables: Add --version and -v to worldserver and authserver arguments
...
Closes #14993
(cherry picked from commit 0f082e8f92 )
Conflicts:
src/server/bnetserver/Main.cpp
2015-07-04 02:54:23 +01:00
jackpoz
55681666b3
Core/Misc: Fix build warnings
2015-07-01 20:57:20 +02:00
Shauren
9ecef15057
Core/Auth: Fixed authserver not shutting down correctly when started as windows service
2015-06-10 00:22:34 +02:00
Shauren
ee4ace8c34
Core/Auth: Implemented starting authserver as a windows service
2015-06-06 13:04:31 +02:00
leak
7010671931
Core/Misc: Remove unused headers
2015-03-30 17:16:50 +02:00
Naios
2bd1c8541d
Core/Updates: Add an automatic database update system. Automatically detects new and edited sql updates through file lists and hashing. Detects renames, deletes and is able to create and auto import full databases. * cleanups in main.cpp of world & bnetserver * refactoring in DatabaseWorkerPool.h & MySQLConnection.cpp
...
Make sure you re-run cmake, because boost::iostreams was added as dependency.
Maybe you need to install libboost-iostreams1.55-dev on unix as well.
Import every update manual until (included) those INSERT IGNORE updates for each database.
Thanks DDuarte and Shauren for your amazing ideas, help and advises.
In hope that nobody gets a "Your database structure is not up to date..." anymore ,-)
(cherry picked from commit 352012e531 )
(cherry picked from commit 1f7f9feafc )
For 3.3.5:
* Synchronized ConfigureBoost.cmake with 6.x, libboost-filesystem1.55-dev also added as dependency!
Signed-off-by: Naios <naios-dev@live.de >
Signed-off-by: Nayd <dnpd.dd@gmail.com >
2015-03-21 20:54:54 +00:00
jackpoz
9948e633ab
Revert "Core/Server: Catch exceptions in int main()"
...
This reverts commit 958999ff5c .
Closes #14329
2015-03-11 20:59:21 +01:00
Duarte Duarte
958999ff5c
Core/Server: Catch exceptions in int main()
...
The exceptions is rethrown on debug mode.
Ref Coverity CID 1010213, 1022574, 1227501, 1227502,
1227503, 1227504, 1227505, 1254536 and 1254612
(cherry picked from commit e68ca82d4d )
Conflicts:
src/server/bnetserver/Main.cpp
2015-02-22 06:09:01 +00: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
DDuarte
7e64222029
Auth/Main: Fix crashes on shutdown
...
"mutex destroyed while busy"
2014-08-05 15:23:42 +01:00
joschiwald
04bb78f6c3
Scripts/OutdoorPvP: replaced some chat texts with proper defense messages
2014-07-29 23:45:34 +02:00
DDuarte
0e52b111f3
Core/Config: User-friendlyfy configuration parsing errors
...
It will now print useful error messages that pinpoint the issue
with the config file (missing file, bad syntax, etc)
In memory of MitchesD that lost 18 hours finding a problem with
his config because of a duplicated line.
2014-07-29 01:47:00 +01:00
Shauren
42eeec12bf
Core/Mains: Handle SIGBREAK to achieve clean shutdown when users click X button on windows
2014-07-23 19:04:07 +02:00
Vincent-Michael
946ab3e8b7
Core: Kill again whitespace :(
2014-07-21 18:14:22 +02:00