diff options
Add config option securePermissionsLoading which will stop the region from loading if the specified permissions modules fail to load.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 27cb137..9267721 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -88,6 +88,10 @@ namespace OpenSim | |||
88 | 88 | ||
89 | protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); | 89 | protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); |
90 | 90 | ||
91 | private List<string> m_permsModules; | ||
92 | |||
93 | private bool m_securePermissionsLoading = true; | ||
94 | |||
91 | /// <value> | 95 | /// <value> |
92 | /// The config information passed into the OpenSimulator region server. | 96 | /// The config information passed into the OpenSimulator region server. |
93 | /// </value> | 97 | /// </value> |
@@ -185,6 +189,11 @@ namespace OpenSim | |||
185 | CreatePIDFile(pidFile); | 189 | CreatePIDFile(pidFile); |
186 | 190 | ||
187 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); | 191 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); |
192 | |||
193 | m_securePermissionsLoading = startupConfig.GetBoolean("SecurePermissionsLoading", true); | ||
194 | |||
195 | string permissionModules = startupConfig.GetString("permissionmodules", "DefaultPermissionsModule"); | ||
196 | m_permsModules = new List<string>(permissionModules.Split(',')); | ||
188 | } | 197 | } |
189 | 198 | ||
190 | base.StartupSpecific(); | 199 | base.StartupSpecific(); |
@@ -342,6 +351,18 @@ namespace OpenSim | |||
342 | } | 351 | } |
343 | else m_log.Error("[MODULES]: The new RegionModulesController is missing..."); | 352 | else m_log.Error("[MODULES]: The new RegionModulesController is missing..."); |
344 | 353 | ||
354 | if (m_securePermissionsLoading) | ||
355 | { | ||
356 | foreach (string s in m_permsModules) | ||
357 | { | ||
358 | if (!scene.RegionModules.ContainsKey(s)) | ||
359 | { | ||
360 | m_log.Fatal("[MODULES]: Required module " + s + " not found."); | ||
361 | Environment.Exit(0); | ||
362 | } | ||
363 | } | ||
364 | } | ||
365 | |||
345 | scene.SetModuleInterfaces(); | 366 | scene.SetModuleInterfaces(); |
346 | // First Step of bootreport sequence | 367 | // First Step of bootreport sequence |
347 | if (scene.SnmpService != null) | 368 | if (scene.SnmpService != null) |