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
leak
dce92611f3
Refactored singletons to enable proper deconstruction during shutdown
2014-07-20 00:40:08 +02:00
Chaplain
68398a559e
[Auth\Worldserver] Use boost to load console arguments. (Added a few style changes and cmake fix)
...
Conflicts:
src/server/worldserver/Main.cpp
2014-07-15 18:15:55 +02:00
Subv
110396447f
Fixed the authserver not accepting clients.
...
Fixed using hostnames in the realmlist table.
2014-07-07 14:25:17 -05:00
leak
59c8ffe4b3
Change the freeze detector thread to be a periodic callback running on the thread pool
2014-07-06 23:04:38 +02:00
leak
021e18d152
Refactored both world and auth main
...
- Master/Worldrunable removed
- World Update loop now running on main (which was doing nothing before)
- Processpriority moved to shared
- Added a preliminary thread pool for boost::asio::io_service
2014-07-04 15:22:06 +02:00
Subv
151785b9ce
Merge branch 'master' of github.com:TrinityCore/TrinityCore into boost
...
Conflicts:
src/server/game/World/World.cpp
2014-07-03 15:57:47 -05:00
Subv
2874014443
Cleaned up the authserver includes a bit.
...
Fixed authserver pch build
2014-07-02 11:50:03 -05:00
leak
c31c6f3ba3
Backported AsyncAcceptor generalization to authserver
2014-07-02 18:05:30 +02:00
leak
029bad6698
Replaced all remaining ACE based Singletons
...
Replaced ACE base AutoPtr class with shared_ptr
Note: worldserver currently broken due to MapUpdater threading failure (ACE ofc, what else could it be)
2014-07-01 00:54:09 +02:00
leak
eb36acd152
Replaced ACE_Task_Base based LogWorker with ProducerConsumerQueue
2014-06-30 14:44:52 +02:00
jackpoz
82df3f090b
Auth/Misc: Move OpenSSL version log from Warning to Information
2014-06-28 17:55:40 +02:00
Vincent-Michael
1d39db16b9
Core/Misc: Kill Whitespace ...
2014-06-07 23:58:08 +02:00
leak
bf6e58b8d4
Ditched ACE_Singleton in favor of C++11 like Singleton
2014-05-31 15:58:59 +02:00
leak
b520f7da01
Damn you VS default settings..
2014-05-30 15:46:17 +02:00
leak
5a363ee0e1
Replace authserver ACE related code with Boost/C++11
2014-05-30 14:54:56 +02:00
leak
35c2e97207
Replace ACE signal handling with Boost
2014-05-13 22:41:59 +02:00
Gacko
1b2e4d8110
Remove whitespaces from previous commit
2014-02-05 17:49:04 +01:00
Gacko
d0c9970be0
Authserver / Worldserver: Fix warnings about unused variables
2014-02-05 17:33:28 +01:00
Vincent_Michael
20004050bc
Update copyright note for 2014.
...
Happy new year.
2014-01-01 00:07:53 +01:00
jackpoz
2a7f03039d
Core/Misc: Fix warnings
...
Fix warnings appearing with -Wstrict-aliasing flag.
2013-12-28 17:24:43 +01:00
Spp
94e2b9332a
Core/Logging: Remove LOG_FILTER_XXX defines with it's value (remember logger names are case-sensitive)
2013-11-08 10:50:51 +01:00
Chaplain
aa8bfeec4f
Auth/Misc: Code cleanup.
...
*Random performance optimizations
2013-09-02 19:40:31 +03:00
Nay
1bb3c4a2b4
Misc: Fix warnings and build
...
Closes #10396
2013-07-29 14:24:53 +01:00
Nay
3330239a02
Servers: Fix typo
2013-07-28 20:12:06 +01:00
Nay
e3f7be12ef
Servers: Enable UseProcessors and ProcessPriority settings to be used on Linux
2013-07-28 18:58:12 +01:00
Nay
f71d894a21
Servers: Fix some code style issues in world and authserver
2013-07-28 16:59:07 +01:00
Shauren
779a59e7e2
Core/Config: Refactored ConfigMgr
...
* Loading initial configuration files is now separate from loading any additional custom configs
2013-07-15 17:31:44 +02:00
Spp
d1677b2db0
Core/Logging: Performance-related tweaks to logging system
...
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros.
Memleak fix
2013-05-13 15:07:36 +02:00
Spp
be3826825e
Core/Logging: Use correct realmId when logging to DB
2013-01-16 08:59:56 +01:00
Vincent_Michael
cc65aba789
Update copyright note for 2013.
...
Happy new year.
2013-01-01 00:41:01 +01:00
Spp
2251d1bfae
Core/Misc: Set mode 0644 for files
2012-11-27 13:03:12 +01:00
Spp
1e50a08604
Core/Logging: Fix PlayerDump logging
2012-10-22 10:37:39 +02:00
ZxBiohazardZx
3aa586986f
Core/Codestyle: some small improvements for Doxygen Purposes
2012-10-02 23:20:03 +02:00
Nay
b89b8ff277
Core/Loading: Change info/error messages to printf when config is not loaded
2012-08-29 20:02:55 +01:00
Shauren
7dc26c7ff7
Core/Misc: Warning fixes
2012-08-21 18:20:42 +02:00
Nay
d1b10082a2
Whitespace is the root of all evil (version 2)
2012-08-03 22:55:18 +01:00
Spp
55ce180f28
Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
...
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'
Explanation of use with Sample config:
Appender.Console.Type=1 (1 = Console)
Appender.Console.Level=2 (2 = Debug)
Appender.Server.Type=2 (2 = File)
Appender.Server.Level=3 (3 = Info)
Appender.Server.File=Server.log
Appender.SQL.Type=2 (2 = File)
Appender.SQL.Level=1 (1 = Trace)
Appender.SQL.File=sql.log
Appenders=Console Server (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)
Logger.root.Type=0 (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5 (5 = Error)
Logger.root.Appenders=Console
Logger.SQL.Type=26 (26 = SQL)
Logger.SQL.Level=3 (2 = Debug)
Logger.SQL.Appenders=Console Server SQL
Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName
* At loading Appender SQL will be ignored, as it's not present on "Appenders"
* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
- Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged
* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
- Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged
* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
- Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
- Appender Console has lower Log Level: Msg is logged to Console
- Appender Server has higher Log Level: Msg is not logged to file
- Appender SQL has lower Log Level: Msg is logged to file sql.log
* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
- Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender
* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
- Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
- Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00
Machiavelli
e960016dc4
Partial revert of "Core/DB Layer: Fix a memory leak.", mysql library related stuff. Original memory leak fix is still in place.
2012-03-26 13:33:47 +02:00