Commit Graph

984 Commits

Author SHA1 Message Date
Shauren
2345e84855 Final build fix for gcc 4.7 (no longer supported in 8 days) 2016-02-21 14:13:00 +01: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
55ef8d80a3 Core/Utils: Moved rng functions to separate header and added utility functions to select a random element from a container where each element can have different chance of being selected
(cherry picked from commit ae20b2ab56)
(cherry picked from commit 921d893c2a)
(cherry picked from commit 9ab10d6e68)
(cherry picked from commit 00c878e73a)
(cherry picked from commit ff9c999334)
(cherry picked from commit bc94bacce4)
(cherry picked from commit d5b0ffbe9b)
2016-02-09 19:26:29 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
Vincent-Michael
7d5e7102cd Core: Whitespace cleanup 2015-11-07 20:01:53 +01:00
Shauren
60da7c6552 Core/Networking: Fixed possible crashes happening if async query retrieving account data takes too long
Closes #14944

(cherry picked from commit 590c6e399d)
2015-10-31 16:04:14 +01:00
Shauren
97fe228334 Core/Threading: Fixed possible data races after making auth queries async by moving their processing to boost::asio::io_service::run threads
(cherry picked from commit f6bc87fe5d)
2015-10-31 15:56:02 +01:00
pete318
dcb7082277 Map local guids 6.x -> 3.3.35:
Implemented:
  ca83e14f8b
  ee1c1b97be
  18e4ab6911
  bf37446b3c
  cb854a2b7b

* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396e
* Added type container visitor for TypeUnorderedMapContainer
* Implemented helper function to erase unique pairs from multimap containers
* Moved object storage of all objects except players and transports to map level
* Added containers linking database spawn id with creature/gameobject in world
* Renamed DBTableGuid to spawnId
* Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables
* Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update
* Added new function to return but not increment guid
* Adjusted .debug loadcells to show low guid in map before/after load
* Added debug messages for creature spawn/destroy, for map guid debugging
* Store all Gameobjects and Creatures added to OutdoorPvP, so the callback script can be removed when OutdoorPvP instance is destroyed.
2015-09-22 21:33:57 +02:00
StormBytePP
405f823f68 Core/BuildSystem: Merged crypto and gitrevision into common, cleaned include directory lists (to mimic 6.x buildsystem) 2015-08-24 03:38:54 +02: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
StormBytePP
1f66d719f2 Core/BuildSystem: Merge collision, debugging, threading, utilities and configuration into "common" which does not depend on shared anymore and moved database out of shared library
These changes enables to build tools only without even having MySQL installed
2015-08-16 21:23:15 +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
DDuarte
90c9290761 Add a missing include of d5cf594bfe 2015-08-16 01:09:29 +01:00
DDuarte
233615c785 Fix build warnings addded in d5cf594bfe 2015-08-16 00:45:50 +01: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
Vincent-Michael
9f04cbad21 Fix non pch build for Visual Studio 2015 compiler
(cherry picked from commit df1f4969d8)
2015-07-24 12:05:26 +01:00
DDuarte
d12fec67f2 Core/Misc: Add a few consts to methods
(cherry picked from commit 7d9843c380)

Conflicts:
	src/server/bnetserver/Packets/ConnectionPackets.h
	src/server/game/AI/SmartScripts/SmartAI.h
	src/server/game/Battlefield/Battlefield.h
	src/server/game/Battlegrounds/Battleground.h
	src/server/game/Entities/Object/Object.h
	src/server/game/Entities/Player/Player.h
	src/server/game/Guilds/Guild.h
	src/server/game/Instances/InstanceSaveMgr.h
	src/server/game/Support/SupportMgr.h
2015-07-24 12:02:57 +01:00
Gacko
73fd4fb49c Fix non pch build.
(cherry picked from commit 49a6f7b7bd)
2015-07-24 11:52:28 +01:00
Shauren
b4adf3f5dd Core/Misc: Fixing warnings detected by Visual Studio 2015 compiler
(cherry picked from commit a22e4e121a)

Conflicts:
	cmake/compiler/msvc/settings.cmake
	src/server/game/DataStores/DBCStores.cpp
	src/server/game/Entities/GameObject/GameObject.cpp
	src/server/game/Entities/Object/Object.cpp
	src/server/game/Entities/Object/Object.h
	src/server/game/Entities/Pet/Pet.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Unit/Unit.cpp
	src/server/game/Garrison/Garrison.cpp
	src/server/game/Garrison/GarrisonMgr.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Globals/ObjectMgr.h
	src/server/game/Guilds/GuildMgr.cpp
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/Handlers/QueryHandler.cpp
	src/server/game/Handlers/QuestHandler.cpp
	src/server/game/Handlers/SpellHandler.cpp
	src/server/game/Server/Packets/ChannelPackets.h
	src/server/game/Server/Packets/PartyPackets.cpp
	src/server/game/Server/WorldSession.h
	src/server/game/Spells/Spell.cpp
	src/server/game/Spells/SpellInfo.cpp
	src/server/game/Spells/SpellScript.cpp
	src/server/scripts/Commands/cs_list.cpp
2015-07-24 11:51:48 +01:00
Naios
73212c2b09 Core/Utilities: Add std::chrono::duration overloads to EventMap.
* makes it possible to write:
```c++
events.ScheduleEvent(1, Seconds(10));
// ... or ...
events.ScheduleEvent(2, Minutes(1) + Seconds(20));
// ... or with C++14 support:
events.ScheduleEvent(2, 45s);
```

(cherry picked from commit e4e55a3dcb)
2015-07-22 02:18:41 +02:00
Naios
7f377a4f1b Core/Database: Enable perfect forwarding for database format calls.
(cherry picked from commit ca16dc8c1b)
2015-07-22 02:18:38 +02:00
Naios
e011ae63d5 Core/Logging: Enable perfect forwarding for logging format and args.
* Handle timestamp parsing though cppformat.
* Change a wrong forward -> move

(cherry picked from commit 026ceb85b9)
2015-07-22 02:18:36 +02:00
et65
b0255927f0 Core/Logging: Partial cherry-pick from commit c6ab951025
* solves differences 3.3.5 <-> 6.x because of make_unique workarround.

(cherry picked from commit c6ab951025)

Signed-off-by: Naios <naios-dev@live.de>
2015-07-22 02:18:18 +02:00
Naios
09d34e0a9b Core/Utilities: Move EventMap into its own source file.
* Move implementation details to .cpp.

(cherry picked from commit 11bfead40b)

Conflicts:
	src/server/game/Battlegrounds/Battleground.h
	src/server/shared/Utilities/Util.cpp
2015-07-22 02:02:51 +02:00
Naios
1741bfc64e Core/Utilities: Forward parameters of StringFormat correctly to fmt::sprintf.
(cherry picked from commit 11dfd9e7d4)
2015-07-22 02:00:05 +02:00
Naios
45058990e2 Core/Utilities: Remove global using of std::chrono namespace.
* never use "using namespace" in header files!

(cherry picked from commit 6bf10c2b83)
2015-07-22 01:59:57 +02:00
Naios
4c0c634814 Core/Utilities: Seperate std::chrono::duration typedefs into its own file.
* add std::chrono_literals using decl. comment for future usage.

(cherry picked from commit 6e4a1b3e1e)
2015-07-22 01:59:50 +02:00
Shauren
f880f2e778 Core/Threading: Clarified comment on ProducerConsumerQueue::WaitAndPop
(cherry picked from commit 08316552b5)
2015-07-19 00:48:17 +01:00
Shauren
23e4472d14 Core/PacketIO: Removed timezone adjustments from ReadPackedTime - player's session timezone offset should be used there, not server offset
(cherry picked from commit aa3b05c312)
2015-07-06 22:25:34 +01:00
Naios
4335611010 Core/Updater: Fix mysql cli password prompt when password is empty.
* ref: http://community.trinitycore.org/topic/11510-world-server-bug-enter-password-to-update/
2015-06-30 23:33:07 +02:00
Naios
836ec5a6e6 Core/Utilities: Fix callback invokation when there are no tasks present.
* thx @joschiwald for noticing.
2015-06-30 23:29:19 +02:00
Carbenium
adb5d3ea5f Merge pull request #14941 from ShinDarth/db_backports3
DB/World schema backport: move questItem* fields to *_questitem tables
2015-06-29 20:03:11 +02:00
ShinDarth
1c0b0f825c DB/World schema backport: move questItem* fields to *_questitem tables 2015-06-29 19:21:00 +02:00
Warpten
aade16a2f4 Scripts/RubySanctum: Updates to Halion.
* Fixed Living Embers not spawning.
* Meteor Strike is now randomized.

(cherry picked from 1447875cac)

Scripts/RubySanctum: Fix a mathematical mistake.
SQL: Do not use MAX(Id), hardcode it.

(cherry picked from 7a5bc9e1fe)

Scripts/RubySanctum: Correctly spawn Living Embers.

(cherry picked from 7c4b8b0e82)

Scripts/RubySanctum: Remove duplicate code.

(cherry picked from 1d29328769)

Core/Misc: Warning fixes

(cherry picked from dc53dad8a4)
2015-06-26 01:52:17 +01:00
ShinDarth
f8230a59a9 DB/Characters: Backport schema changes from 6.x branch (renames)
Closes #14951
2015-06-26 00:28:32 +01:00
Naios
3d95aba2b3 Core/Utilities: TaskScheduler: add a task validator and on update success callback.
* makes it possible to block tasks if there is an active spellcast.
* requested by @joschiwald
2015-06-21 18:19:17 +02:00
Naios
bd661b58fd Core/Updater: Fix a wrong formatter introduced in 0d095109ee
* thanks @Aokromes for noticing
2015-06-21 18:13:01 +02:00
Naios
a5b3862bc1 Core/Updater: Add some info about the count of applied updates.
* some minor improvements
* add a log message when database updates are disabled.
2015-06-20 14:33:31 +02:00
Naios
151a0f5c5e Core/Shared: Hide the internal shared_ptr of the TaskContext
* use . operator instead of -> to access the TaskContext now.
* Add TaskContext::IsExpired to check whether the owner has expired.
2015-06-03 18:24:21 +02:00
jackpoz
1a5051a9c3 Core/CrashHandler: Make crashhandler tread-safe
Handle only 1 exception in the whole process lifetime and create only 1 crash report.
2015-06-01 21:43:57 +02:00
MitchesD
db8fdd94ed Merge pull request #14782 from doctaweeks/fixes-for-6.x
Minor fixes for 6.x
(cherry picked from commit 0cf0209741)

Conflicts:
	src/server/bnetserver/Main.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
	src/server/game/Battlegrounds/Zones/BattlegroundTP.h
	src/server/game/Chat/Channels/Channel.h
	src/server/game/Entities/Player/Player.h
	src/server/game/Quests/QuestDef.h
	src/server/scripts/OutdoorPvP/OutdoorPvPNA.h
	src/server/shared/Cryptography/SHA256.h
2015-06-01 00:39:56 +01:00
Naios
da77a90aa9 Shared/Util: Introduce a task scheduler which schedules task with c++11 techniques.
* Use std::function as callback (methods, lamdas & std::bind).
* Uses std::chrono::duration as duration type (Milliseconds, Seconds...)
  - With c++11 user defined literals we could just write "11s" for example (MSVS 2015, gcc & clang).
* Provides a lot of overloads for easier usage:
  - Static durations or random durations between min and max.
  - Named (with group ids - group id 0 is possible) or anonymous tasks.
  - Asynchronous tasks.
* Is adapted to the current needs of scripting:
  - Repeat tasks through the TaskContext
  - Schedule new tasks from the context.
  - Provides access to the times repeat counter of a task,
    this will help to schedule multi step events (dialogs for example).

See https://gist.github.com/Naios/6d143538abdc3d32fd2b for usage examples.
2015-05-31 19:32:09 +02:00
glkrlos
fd660d725d Core/Updater: Fix issues when connecting through unix sockets.
* closes #14766
* closes #14759

Signed-off-by: Naios <naios-dev@live.de>
2015-05-28 18:30:03 +02:00
jackpoz
ec4b08e3cf Core/CrashHandler: Log STACK_OVERFLOW crashes
Try to log STACK_OVERFLOW crashes by allocating log buffer on the heap which should still be in a valid state with a stack overflow exception.
This will probably still not produce a complete crash report with details about all stackframes.
2015-05-23 23:15:56 +02:00
Shauren
ba9e0de36d Core/Misc: Removed gcc specific packing pragma syntax - only unsupported (now) versions required it
(cherry picked from commit 4c7c2abf03)

Conflicts:
	src/server/bnetserver/Packets/BitStream.h
	src/server/shared/Common.h
2015-05-19 21:47:48 +01:00
Duarte Duarte
f4c1a8fb2d Merge pull request #14454 from ariel-/cd
Port Core/Spells: Cooldown updates (6.x branch)
2015-05-19 18:52:05 +01:00
Shauren
970d7abf97 Core/Networking: Fixed possible msvc debug assertions in vector
(cherry picked from commit e4abbc0926)
2015-05-19 11:12:03 +01:00
Shauren
88af3ffc2a Core/Socket: Removed unused synchronous read method
(cherry picked from commit 59e9bcf0bf)

Conflicts:
	src/server/game/Server/WorldSocket.cpp
2015-04-29 00:06:19 +01:00
Naios
2592528741 Core/Log: Fix newlines when using dynamic log names
* thanks @Aokromes for reporting
* also removes an unnecessary std::move
2015-04-24 19:44:16 +02:00