diff options
| author | Spp <spp@jorge.gr> | 2013-02-27 03:29:11 +0100 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2013-02-27 03:30:53 +0100 |
| commit | 480c6cf4dd8965627aa7bc6e903558f2fa5c3ea6 (patch) | |
| tree | 23b29b1b9fb0d778aa1b63cd18e551c17f731086 /src/server/game/World | |
| parent | 4ea31ce8862cbc1bc4b9c35bc2ff677cbb6c4a16 (diff) | |
Core/RBAC: Add .reload rbac command and prevent possible crash if rbac_permissions has wrong data
Diffstat (limited to 'src/server/game/World')
| -rw-r--r-- | src/server/game/World/World.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 955f3b7b99f..bcd69ec70ed 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -3122,3 +3122,11 @@ CharacterNameData const* World::GetCharacterNameData(uint32 guid) const else return NULL; } + +void World::ReloadRBAC() +{ + sLog->outInfo(LOG_FILTER_RBAC, "World::ReloadRBAC()"); + for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr) + if (WorldSession* session = itr->second) + session->InvalidateRBACData(); +} diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 612078f17bf..154e9972218 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -739,6 +739,9 @@ class World uint32 GetCleaningFlags() const { return m_CleaningFlags; } void SetCleaningFlags(uint32 flags) { m_CleaningFlags = flags; } void ResetEventSeasonalQuests(uint16 event_id); + + void ReloadRBAC(); + protected: void _UpdateGameTime(); // callback for UpdateRealmCharacters |
