Commit Graph
1312 Commits
Author SHA1 Message Date
Shauren f6bc87fe5d Core/Threading: Fixed possible data races after making auth queries async by moving their processing to boost::asio::io_service::run threads 2015-06-21 02:13:08 +02:00
Naios 0d095109ee Core/Updater: Add some info about the count of applied updates.
* some minor improvements
* add a log message when database updates are disabled.

(cherry picked from commit a5b3862bc1b066a9614369bda3adef485a57eff8)
2015-06-20 15:18:31 +02:00
Shauren 0e49eefe85 Core/DBLayer: Sprinkle some async magic on worldserver auth/session load process
* Implemented base for loading account wide data
2015-06-20 00:59:31 +02:00
Shauren dc53dad8a4 Core/Misc: Warning fixes 2015-06-13 14:04:10 +02:00
DJScias 3f58ad3060 Core/DBLayer: Correct Battle.net CheckPassword
- Async would lock and crash the server
- This fixes !bnet set password and !bnet password
2015-06-12 11:35:58 +02:00
Naios df80f1900d 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.

(cherry picked from commit 151a0f5c5e1133a21c46a8d55c834ff52061c3fa)
2015-06-03 18:37:41 +02:00
jackpoz 8cbdb7aa36 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.

(cherry picked from commit ec4b08e3cf79cfb5fe99a542bd53bac9560e0d92)
2015-06-01 00:53:21 +01:00
Naios 9a999556ec 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.

(cherry picked from commit da77a90aa98bc6e34c001ca871700cec7c6e5017)
2015-05-31 20:31:29 +02:00
MitchesD 0cf0209741 Merge pull request #14782 from doctaweeks/fixes-for-6.x
Minor fixes for 6.x
2015-05-30 19:34:25 +02:00
DJScias 709b77f9e8 Core/DBLayer: proper 6x account unban
- Thanks @Shauren
- Unbanning accounts in 6x should set unbandate = now
(UNIX_TIMESTAMP() instead of NOW() due to unbandate being an int, not a timestamp)
- 'Active' updates remain so the "account is not banned" checks continue functioning
2015-05-30 03:06:59 +02:00
glkrlos c1bd3282f8 Core/Updater: Fix issues when connecting through unix sockets.
* closes #14766
* closes #14759

Signed-off-by: Naios <[email protected]>
2015-05-28 18:28:04 +02:00
Daniel M. Weeks b6e926fa2f Remove unnecessary semicolons 2015-05-27 21:16:06 -04:00
Shauren b3a754cd7b Core/Garrisons: Implemented follower class/spec abilities and saving them to database 2015-05-22 00:17:48 +02:00
et65 c6ab951025 Core/PacketsIO: Implemented or updated most of party related packets.
Packets updated or implemented :
- SMSG_INSTANCE_INFO : updated

- CMSG_SAVE_CUF_PROFILES : updated
- SMSG_LOAD_CUF_PROFILES : updated

- SMSG_PARTY_COMMAND_RESULT : updated

- CMSG_PARTY_INVITE : updated
- SMSG_PARTY_INVITE : updated
- CMSG_PARTY_INVITE_RESPONSE : updated
- CMSG_PARTY_UNINVITE : updated
- SMSG_GROUP_UNINVITE : updated
- CMSG_LEAVE_GROUP : updated
- SMSG_GROUP_DECLINE : updated

- SMSG_GROUP_DESTROYED : updated

- CMSG_MINIMAP_PING : updated
- SMSG_MINIMAP_PING : updated

- CMSG_CONVERT_RAID : updated
- CMSG_SET_EVERYONE_IS_ASSISTANT

- CMSG_DO_READY_CHECK : updated
- CMSG_READY_CHECK_RESPONSE : updated
- SMSG_READY_CHECK_COMPLETED : updated
- SMSG_READY_CHECK_RESPONSE : updated
- SMSG_READY_CHECK_STARTED : updated

- CMSG_REQUEST_PARTY_JOIN_UPDATES : implemented (source : sniffs)
- CMSG_REQUEST_PARTY_MEMBER_STATE : updated
- SMSG_PARTY_MEMBER_STATE : updated
- SMSG_PARTY_UPDATE : updated

- CMSG_REQUEST_RAID_INFO : updated

- CMSG_INITIATE_ROLE_POLL : updated
- SMSG_ROLE_POLL_INFORM : updated
- CMSG_SET_ROLE : updated
- SMSG_ROLE_CHANGED_INFORM : updated

- CMSG_CHANGE_SUB_GROUP : updated
- CMSG_SWAP_SUB_GROUPS : implemented

- CMSG_SET_ASSISTANT_LEADER : updated
- CMSG_SET_PARTY_LEADER : updated
- SMSG_GROUP_NEW_LEADER : updated

- CMSG_CLEAR_RAID_MARKER : implemented
- SMSG_RAID_MARKERS_CHANGED : implemented

- CMSG_UPDATE_RAID_TARGET : updated
- SMSG_SEND_RAID_TARGET_UPDATE_ALL : updated
- SMSG_SEND_RAID_TARGET_UPDATE_SINGLE : updated

- CMSG_OPT_OUT_OF_LOOT : updated
- CMSG_SET_LOOT_METHOD : updated

About group update flags:
- Not sure they are use for now.
- Pets now have their group update flags.
- Pets'power is no send to client anymore.
- Changes about them are inspired from SMSG_PARTY_MEMBER_STATS parsing of WowPacketParser, but it seems this packet is not use anymore.

CHAT_MSG_RAID has been fixed.

About Ready check:
- Correctly implemented this function.
- An update function has been added to Group class, and to GroupMgr class in order to manage the ready check expiration (when 35 seconds were gone, players who have not answered must be reported as AFK)

About Raid markers:
- Old spell effect SPELL_EFFECT_SUMMON_OBJECT_SLOT3 has been renamed to SPELL_EFFECT_CHANGE_RAID_MARKER and implemented. I'm sure about that because raid markers spells are the only spells that have this effect type.

Source: WowPacketParser, and sniffs from official.
2015-05-19 13:10:29 +02:00
Shauren 92bfa759fa Core/Garrisons: Initial work on garrison followers 2015-05-17 18:06:28 +02:00
Shauren 5b725db033 Core/Garrisons: Basics for garrisons 2015-05-08 00:03:15 +02:00
Shauren e4abbc0926 Core/Networking: Fixed possible msvc debug assertions in vector 2015-05-02 00:02:57 +02:00
Shauren ca83e14f8b Core/Entities: Reworked guid scopes
* Added ObjectGuid traits to easily access whether guid type can be generated globally (ObjectMgr) or not
* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396eb0b
* 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
2015-04-28 21:19:46 +02:00
Naios d37ecf796e Core/Misc: Use boost::in_place() to initialize optionals.
* Improves commit 800d5d8939
* Thanks @Shauren for this great suggestion.
2015-04-27 17:01:30 +02:00
Shauren 675a2fcd3b Core/Util: Fixed flag128 and removed flag96 - previously if flag128 and flag96 were used in together the result was always a bool instead of expected flag result due to implicit boolean conversion 2015-04-27 00:33:27 +02:00
Naios 800d5d8939 Core/Misc: Replace tc's optional with boost::optional.
* benefits from empty optimization (objects are only constructed if needed).
* supports r-value references (move semantics) (boost >= 1.56.0).
* preparation for c++14/17's std::optional and std::none_t.
* add move constructor to CompactArray.
2015-04-26 23:45:52 +02:00
Naios 26f9b3b988 Core/Log: Fix newlines when using dynamic log names
* thanks @Aokromes for reporting
* also removes an unnecessary std::move

(cherry picked from commit 2592528741a3ce4879c9d5f398e12b37a975cbcf)
2015-04-24 19:47:22 +02:00
Shauren 59e9bcf0bf Core/Socket: Removed unused synchronous read method 2015-04-24 00:10:04 +02:00
Carbenium bba6eb8d3d Core/Player: Added character templates
* Characters with predefined levels can be created
* Avaiable factions and classes can be configured
* Valid values for `factionGroup` in table `character_template_class` are 3 (Alliance) or 5 (Horde)
* Added new permission RBAC_PERM_USE_CHARACTER_TEMPLATES - has to be set, to allow the usage of the templates

Closes #13952
2015-04-21 00:52:21 +02:00
Shauren 0c3231a239 Removed unused include 2015-04-20 18:53:08 +02:00
Shauren 4c7c2abf03 Core/Misc: Removed gcc specific packing pragma syntax - only unsupported (now) versions required it 2015-04-20 01:54:18 +02:00
Shauren 4703169116 Core/PacketIO: Updated and enabled more battleground packets 2015-04-18 00:04:56 +02:00
Daniel M. Weeks f48b86fd8a Add missing newline 2015-04-15 19:20:48 +02:00
Daniel M. Weeks 27923b8d8f Remove unnecessary semicolons 2015-04-15 19:20:13 +02:00
Daniel M. Weeks 62ff887236 Fix documentation 2015-04-15 19:20:04 +02:00
Daniel M. Weeks 6484885600 Prevent collisions in GCC attribute definitions 2015-04-15 19:19:54 +02:00
Shauren d9e941dde3 Core/Quests: Added research results about last field in QuestPackageItem.db2 2015-04-14 01:12:20 +02:00
Rat e567541273 Core/Quests: fixed quest rewarding
* ItemSpec.dbc still needs some research to handle all cases correctly
2015-04-13 22:25:35 +02:00
Shauren 98f0e496c9 Core/Battle.net: Ensure email is always uppercase 2015-04-12 13:51:12 +02:00
Shauren ff101cd100 Core/Battle.net: Query optimizations part2 - made all queries asynchronous 2015-04-11 18:58:13 +02:00
Shauren 685a310103 Core/Battle.net: Query optimizations part1 - reduced the amount of queries during authentication 2015-04-11 16:25:21 +02:00
Shauren 5659db6f03 Core/Bnet: Fixed crash on shutdown happening when there were still players connected 2015-04-11 01:55:45 +02:00
Vincent-Michael 653954c14d Core/Misc:
- Update LocaleConstant enum
- Update Quest locale system for WoD
- Fix some rnd typo in quest template
2015-04-10 18:16:00 +02:00
Vincent-Michael 20ab76a2cb Core: Whitespace cleanup 2015-04-08 02:27:20 +02:00
Rat 9b746368db Core/Database: removed old questItem fields 2015-04-06 21:03:50 +02:00
Carbenium d1902b4095 Core/Player: Implement CharSections.dbc and serverside checks
Ported from 6d4c672fb1b799e1888881282e40992a9e15a006
Original work by @ariel-
2015-04-05 01:48:45 +02:00
Naios 9d6c837004 Core/DBUpdater: Remove some constructors accidently merged in 455eee9392 2015-04-05 01:02:19 +02:00
Naios 455eee9392 Core/DBUpdater: Exit clean if a query failed to apply.
* Fix some \W4 warnings about constructors.

(cherry picked from commit de490674ff1205d908301b94f5644247562b43cb)
2015-04-05 00:25:20 +02:00
Naios 2b6c086576 Core/Log: Remove some unnecessary std::move's.
* This are r-value references already.
* Thanks @Shauren for noticing

(cherry picked from commit 85d6ff9570869bce368e9bbcf881755c6c89cb55)
2015-04-05 00:25:14 +02:00
Carbenium 6252330a77 Merge pull request #14491 from doctaweeks/fixes-for-6.x
Fixes for 6.x
2015-04-05 00:16:36 +02:00
Shauren 76cbf05a2e Misc: Fixed license header formatting 2015-04-04 13:11:32 +02:00
Daniel M. Weeks 573cda7b52 Rename variables to fix C++11 keyword collision 2015-04-02 22:27:18 -04:00
Naios 3e5025b773 Core/Database: Remove va_list from PreparedStatement::PAppend.
(cherry picked from commit 1939367108b50eb1de2bb0a9cc017eea6423cf29)
2015-04-02 22:55:54 +02:00
Naios 6d0f0bf5fa Core/Database: Remove va_args from DatabaseWorker::Execute methods.
* Also delegate SQLQueryHolder::SetPQuery into SetQuery.

(cherry picked from commit df4723af25900b3638a2b5921cf67e1838cbaf64)

Conflicts:
	src/server/shared/Database/QueryHolder.h
2015-04-02 22:55:52 +02:00
Rat 17bd724559 Core/Phases: phaseMask remove part 1 2015-03-29 19:25:13 +02:00