aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/World
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-02-27 03:29:11 +0100
committerSpp <spp@jorge.gr>2013-02-27 03:30:53 +0100
commit480c6cf4dd8965627aa7bc6e903558f2fa5c3ea6 (patch)
tree23b29b1b9fb0d778aa1b63cd18e551c17f731086 /src/server/game/World
parent4ea31ce8862cbc1bc4b9c35bc2ff677cbb6c4a16 (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.cpp8
-rw-r--r--src/server/game/World/World.h3
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