From ea3e0ef8a362a103fd70f17cfc3ea76a20fac5ab Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Thu, 28 Feb 2013 14:20:07 -0800
Subject: Bug fix in DataSnapshot, where a var was being used before being
initialized.
---
OpenSim/Region/DataSnapshot/DataSnapshotManager.cs | 34 ++++++++++------------
1 file changed, 15 insertions(+), 19 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
index 32017a8..dd48dd5 100644
--- a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
+++ b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
@@ -148,8 +148,6 @@ namespace OpenSim.Region.DataSnapshot
return;
}
- if (m_enabled)
- m_snapStore = new SnapshotStore(m_snapsDir, m_gridinfo, m_listener_port, m_hostname);
}
}
@@ -163,8 +161,22 @@ namespace OpenSim.Region.DataSnapshot
m_log.DebugFormat("[DATASNAPSHOT]: Module added to Scene {0}.", scene.RegionInfo.RegionName);
- m_snapStore.AddScene(scene);
+ if (!m_servicesNotified)
+ {
+ m_hostname = scene.RegionInfo.ExternalHostName;
+ m_snapStore = new SnapshotStore(m_snapsDir, m_gridinfo, m_listener_port, m_hostname);
+
+ //Hand it the first scene, assuming that all scenes have the same BaseHTTPServer
+ new DataRequestHandler(scene, this);
+
+ if (m_dataServices != "" && m_dataServices != "noservices")
+ NotifyDataServices(m_dataServices, "online");
+
+ m_servicesNotified = true;
+ }
+
m_scenes.Add(scene);
+ m_snapStore.AddScene(scene);
Assembly currentasm = Assembly.GetExecutingAssembly();
@@ -189,22 +201,6 @@ namespace OpenSim.Region.DataSnapshot
}
}
- // Must be done here because on shared modules, PostInitialise() will run
- // BEFORE any scenes are registered. There is no "all scenes have been loaded"
- // kind of callback because scenes may be created dynamically, so we cannot
- // have that info, ever.
- if (!m_servicesNotified)
- {
- //Hand it the first scene, assuming that all scenes have the same BaseHTTPServer
- new DataRequestHandler(m_scenes[0], this);
-
- m_hostname = m_scenes[0].RegionInfo.ExternalHostName;
-
- if (m_dataServices != "" && m_dataServices != "noservices")
- NotifyDataServices(m_dataServices, "online");
-
- m_servicesNotified = true;
- }
}
public void RemoveRegion(Scene scene)
--
cgit v1.1
From faf96f5c854a9f928797f170b07c32236a7559e3 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 28 Feb 2013 23:59:26 +0000
Subject: minor: Log location in which simulator/robust was started.
Useful information for system debugging, especially if logging and ini files locations have been changed from defaults.
---
OpenSim/Region/Application/OpenSimBase.cs | 4 ++++
OpenSim/Server/Base/ServicesServerBase.cs | 4 ++++
2 files changed, 8 insertions(+)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index c555915..137bd81 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -134,6 +134,10 @@ namespace OpenSim
///
public OpenSimBase(IConfigSource configSource) : base()
{
+ // FIXME: This should be done down in ServerBase but we need to sort out and refactor the log4net
+ // XmlConfigurator calls first accross servers.
+ m_log.InfoFormat("[SERVER BASE]: Starting in {0}", m_startupDirectory);
+
LoadConfigSettings(configSource);
}
diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs
index ecd69b0..5aff72a 100644
--- a/OpenSim/Server/Base/ServicesServerBase.cs
+++ b/OpenSim/Server/Base/ServicesServerBase.cs
@@ -186,6 +186,10 @@ namespace OpenSim.Server.Base
XmlConfigurator.Configure();
}
+ // FIXME: This should be done down in ServerBase but we need to sort out and refactor the log4net
+ // XmlConfigurator calls first accross servers.
+ m_log.InfoFormat("[SERVER BASE]: Starting in {0}", m_startupDirectory);
+
RegisterCommonAppenders(startupConfig);
if (startupConfig.GetString("PIDFile", String.Empty) != String.Empty)
--
cgit v1.1
From 1c740798b45dddb3e056b2e281fe98de6bf35143 Mon Sep 17 00:00:00 2001
From: Robert Adams
Date: Fri, 1 Mar 2013 08:52:06 -0800
Subject: BulletSim: add parameters, code cleanup around checking and enforcing
maximum velocity and angular velocity values for prims.
---
OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs | 4 +-
OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | 20 ++++++---
OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 47 +++++++++++++++++++---
3 files changed, 57 insertions(+), 14 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
index e6933f9..235cefc 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
@@ -961,13 +961,13 @@ namespace OpenSim.Region.Physics.BulletSPlugin
// ==================================================================
// Clamp high or low velocities
float newVelocityLengthSq = VehicleVelocity.LengthSquared();
- if (newVelocityLengthSq > BSParam.VehicleMaxLinearVelocitySq)
+ if (newVelocityLengthSq > BSParam.VehicleMaxLinearVelocitySquared)
{
Vector3 origVelW = VehicleVelocity; // DEBUG DEBUG
VehicleVelocity /= VehicleVelocity.Length();
VehicleVelocity *= BSParam.VehicleMaxLinearVelocity;
VDetailLog("{0}, MoveLinear,clampMax,origVelW={1},lenSq={2},maxVelSq={3},,newVelW={4}",
- Prim.LocalID, origVelW, newVelocityLengthSq, BSParam.VehicleMaxLinearVelocitySq, VehicleVelocity);
+ Prim.LocalID, origVelW, newVelocityLengthSq, BSParam.VehicleMaxLinearVelocitySquared, VehicleVelocity);
}
else if (newVelocityLengthSq < 0.001f)
VehicleVelocity = Vector3.Zero;
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
index dc57b67..fa58109 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
@@ -47,12 +47,16 @@ public static class BSParam
public static float SculptLOD { get; private set; }
public static int CrossingFailuresBeforeOutOfBounds { get; private set; }
+ public static float UpdateVelocityChangeThreshold { get; private set; }
public static float MinimumObjectMass { get; private set; }
public static float MaximumObjectMass { get; private set; }
public static float MaxLinearVelocity { get; private set; }
+ public static float MaxLinearVelocitySquared { get; private set; }
public static float MaxAngularVelocity { get; private set; }
+ public static float MaxAngularVelocitySquared { get; private set; }
public static float MaxAddForceMagnitude { get; private set; }
+ public static float MaxAddForceMagnitudeSquared { get; private set; }
public static float DensityScaleFactor { get; private set; }
public static float LinearDamping { get; private set; }
@@ -109,7 +113,7 @@ public static class BSParam
// Vehicle parameters
public static float VehicleMaxLinearVelocity { get; private set; }
- public static float VehicleMaxLinearVelocitySq { get; private set; }
+ public static float VehicleMaxLinearVelocitySquared { get; private set; }
public static float VehicleMaxAngularVelocity { get; private set; }
public static float VehicleMaxAngularVelocitySq { get; private set; }
public static float VehicleAngularDamping { get; private set; }
@@ -265,7 +269,7 @@ public static class BSParam
// The single letter parameters for the delegates are:
// s = BSScene
// o = BSPhysObject
- // v = value (float)
+ // v = value (appropriate type)
private static ParameterDefnBase[] ParameterDefinitions =
{
new ParameterDefn("MeshSculptedPrim", "Whether to create meshes for sculpties",
@@ -289,6 +293,10 @@ public static class BSParam
5,
(s) => { return CrossingFailuresBeforeOutOfBounds; },
(s,v) => { CrossingFailuresBeforeOutOfBounds = v; } ),
+ new ParameterDefn("UpdateVelocityChangeThreshold", "Change in updated velocity required before reporting change to simulator",
+ 0.1f,
+ (s) => { return UpdateVelocityChangeThreshold; },
+ (s,v) => { UpdateVelocityChangeThreshold = v; } ),
new ParameterDefn("MeshLevelOfDetail", "Level of detail to render meshes (32, 16, 8 or 4. 32=most detailed)",
32f,
@@ -343,16 +351,16 @@ public static class BSParam
new ParameterDefn("MaxLinearVelocity", "Maximum velocity magnitude that can be assigned to an object",
1000.0f,
(s) => { return MaxLinearVelocity; },
- (s,v) => { MaxLinearVelocity = v; } ),
+ (s,v) => { MaxLinearVelocity = v; MaxLinearVelocitySquared = v * v; } ),
new ParameterDefn("MaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to an object",
1000.0f,
(s) => { return MaxAngularVelocity; },
- (s,v) => { MaxAngularVelocity = v; } ),
+ (s,v) => { MaxAngularVelocity = v; MaxAngularVelocitySquared = v * v; } ),
// LL documentation says thie number should be 20f for llApplyImpulse and 200f for llRezObject
new ParameterDefn("MaxAddForceMagnitude", "Maximum force that can be applied by llApplyImpulse (SL says 20f)",
20000.0f,
(s) => { return MaxAddForceMagnitude; },
- (s,v) => { MaxAddForceMagnitude = v; } ),
+ (s,v) => { MaxAddForceMagnitude = v; MaxAddForceMagnitudeSquared = v * v; } ),
// Density is passed around as 100kg/m3. This scales that to 1kg/m3.
new ParameterDefn("DensityScaleFactor", "Conversion for simulator/viewer density (100kg/m3) to physical density (1kg/m3)",
0.01f,
@@ -505,7 +513,7 @@ public static class BSParam
new ParameterDefn("VehicleMaxLinearVelocity", "Maximum velocity magnitude that can be assigned to a vehicle",
1000.0f,
(s) => { return (float)VehicleMaxLinearVelocity; },
- (s,v) => { VehicleMaxLinearVelocity = v; VehicleMaxLinearVelocitySq = v * v; } ),
+ (s,v) => { VehicleMaxLinearVelocity = v; VehicleMaxLinearVelocitySquared = v * v; } ),
new ParameterDefn("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle",
12.0f,
(s) => { return (float)VehicleMaxAngularVelocity; },
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index 8f660c4..a465613 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -108,6 +108,9 @@ public class BSPrim : BSPhysObject
// do the actual object creation at taint time
PhysicsScene.TaintedObject("BSPrim.create", delegate()
{
+ // Make sure the object is being created with some sanity.
+ ExtremeSanityCheck(true /* inTaintTime */);
+
CreateGeomAndObject(true);
CurrentCollisionFlags = PhysicsScene.PE.GetCollisionFlags(PhysBody);
@@ -450,6 +453,38 @@ public class BSPrim : BSPhysObject
return ret;
}
+ // Occasionally things will fly off and really get lost.
+ // Find the wanderers and bring them back.
+ // Return 'true' if some parameter need some sanity.
+ private bool ExtremeSanityCheck(bool inTaintTime)
+ {
+ bool ret = false;
+
+ uint wayOutThere = Constants.RegionSize * Constants.RegionSize;
+ // There have been instances of objects getting thrown way out of bounds and crashing
+ // the border crossing code.
+ if ( _position.X < -Constants.RegionSize || _position.X > wayOutThere
+ || _position.Y < -Constants.RegionSize || _position.Y > wayOutThere
+ || _position.Z < -Constants.RegionSize || _position.Z > wayOutThere)
+ {
+ _position = new OMV.Vector3(10, 10, 50);
+ ZeroMotion(inTaintTime);
+ ret = true;
+ }
+ if (_velocity.LengthSquared() > BSParam.MaxLinearVelocity)
+ {
+ _velocity = Util.ClampV(_velocity, BSParam.MaxLinearVelocity);
+ ret = true;
+ }
+ if (_rotationalVelocity.LengthSquared() > BSParam.MaxAngularVelocitySquared)
+ {
+ _rotationalVelocity = Util.ClampV(_rotationalVelocity, BSParam.MaxAngularVelocity);
+ ret = true;
+ }
+
+ return ret;
+ }
+
// Return the effective mass of the object.
// The definition of this call is to return the mass of the prim.
// If the simulator cares about the mass of the linkset, it will sum it itself.
@@ -585,12 +620,12 @@ public class BSPrim : BSPhysObject
if (VehicleController.Type == Vehicle.TYPE_NONE)
{
UnRegisterPreStepAction("BSPrim.Vehicle", LocalID);
- PhysicsScene.AfterStep -= VehicleController.PostStep;
+ UnRegisterPostStepAction("BSPrim.Vehicle", LocalID);
}
else
{
RegisterPreStepAction("BSPrim.Vehicle", LocalID, VehicleController.Step);
- PhysicsScene.AfterStep += VehicleController.PostStep;
+ RegisterPostStepAction("BSPrim.Vehicle", LocalID, VehicleController.PostStep);
}
});
}
@@ -732,7 +767,7 @@ public class BSPrim : BSPhysObject
set {
PhysicsScene.AssertInTaintTime("BSPrim.ForceVelocity");
- _velocity = value;
+ _velocity = Util.ClampV(value, BSParam.MaxLinearVelocity);
if (PhysBody.HasPhysicalBody)
{
DetailLog("{0},BSPrim.ForceVelocity,taint,vel={1}", LocalID, _velocity);
@@ -1098,7 +1133,7 @@ public class BSPrim : BSPhysObject
return _rotationalVelocity;
}
set {
- _rotationalVelocity = value;
+ _rotationalVelocity = Util.ClampV(value, BSParam.MaxAngularVelocity);
if (PhysBody.HasPhysicalBody)
{
DetailLog("{0},BSPrim.ForceRotationalVel,taint,rotvel={1}", LocalID, _rotationalVelocity);
@@ -1230,6 +1265,7 @@ public class BSPrim : BSPhysObject
RegisterPreStepAction("BSPrim.Hover", LocalID, delegate(float timeStep)
{
+ // Don't do hovering while the object is selected.
if (!IsPhysicallyActive)
return;
@@ -1737,10 +1773,9 @@ public class BSPrim : BSPhysObject
// Assign directly to the local variables so the normal set actions do not happen
_position = entprop.Position;
_orientation = entprop.Rotation;
- // _velocity = entprop.Velocity;
// DEBUG DEBUG DEBUG -- smooth velocity changes a bit. The simulator seems to be
// very sensitive to velocity changes.
- if (entprop.Velocity == OMV.Vector3.Zero || !entprop.Velocity.ApproxEquals(_velocity, 0.1f))
+ if (entprop.Velocity == OMV.Vector3.Zero || !entprop.Velocity.ApproxEquals(_velocity, BSParam.UpdateVelocityChangeThreshold))
_velocity = entprop.Velocity;
_acceleration = entprop.Acceleration;
_rotationalVelocity = entprop.RotationalVelocity;
--
cgit v1.1
From 326634a0b38fc21fd52a7bfb0c89a0d4c13f0dae Mon Sep 17 00:00:00 2001
From: Robert Adams
Date: Fri, 1 Mar 2013 09:43:40 -0800
Subject: BulletSim: more things into the TODO list.
---
OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 4dc16f4..8a15abe 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
@@ -9,6 +9,9 @@ Enable vehicle border crossings (at least as poorly as ODE)
Lock axis
Deleting a linkset while standing on the root will leave the physical shape of the root behind.
Not sure if it is because standing on it. Done with large prim linksets.
+Linkset child rotations.
+ Nebadon spiral tube has middle sections which are rotated wrong.
+ Select linked spiral tube. Delink and note where the middle section ends up.
Vehicle angular vertical attraction
vehicle angular banking
Center-of-gravity
@@ -68,6 +71,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation
GENERAL TODO LIST:
=================================================
+Explore btGImpactMeshShape as alternative to convex hulls for simplified physical objects.
+ Regular triangle meshes don't do physical collisions.
Resitution of a prim works on another prim but not on terrain.
The dropped prim doesn't bounce properly on the terrain.
Add a sanity check for PIDTarget location.
@@ -338,4 +343,4 @@ Avatar standing on a moving object should start to move with the object. (DONE 2
Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE.
Verify that angular motion specified around Z moves in the vehicle coordinates.
DONE 20130120: BulletSim properly applies force in vehicle relative coordinates.
-Nebadon vehicles turning funny in arena (DONE)
\ No newline at end of file
+Nebadon vehicles turning funny in arena (DONE)
--
cgit v1.1
From c851ebcd8c65d1cf371379bf75d98f544b54ac7a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 1 Mar 2013 21:47:17 +0000
Subject: Add the Mono AddinDependency attribute to the example region modules.
It turns out this is required to get Mono.Addins to pick up plugin DLLs
---
.../Example/BareBonesNonShared/BareBonesNonSharedModule.cs | 3 ++-
.../OptionalModules/Example/BareBonesShared/BareBonesSharedModule.cs | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/OptionalModules/Example/BareBonesNonShared/BareBonesNonSharedModule.cs b/OpenSim/Region/OptionalModules/Example/BareBonesNonShared/BareBonesNonSharedModule.cs
index ad2fc7a..0615036 100644
--- a/OpenSim/Region/OptionalModules/Example/BareBonesNonShared/BareBonesNonSharedModule.cs
+++ b/OpenSim/Region/OptionalModules/Example/BareBonesNonShared/BareBonesNonSharedModule.cs
@@ -33,10 +33,11 @@ using Nini.Config;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-// You will need to uncomment this line if you are adding a region module to some other assembly which does not already
+// You will need to uncomment these lines if you are adding a region module to some other assembly which does not already
// specify its assembly. Otherwise, the region modules in the assembly will not be picked up when OpenSimulator scans
// the available DLLs
//[assembly: Addin("MyModule", "1.0")]
+//[assembly: AddinDependency("OpenSim", "0.5")]
namespace OpenSim.Region.OptionalModules.Example.BareBonesNonShared
{
diff --git a/OpenSim/Region/OptionalModules/Example/BareBonesShared/BareBonesSharedModule.cs b/OpenSim/Region/OptionalModules/Example/BareBonesShared/BareBonesSharedModule.cs
index bb9cbb7..811a263 100644
--- a/OpenSim/Region/OptionalModules/Example/BareBonesShared/BareBonesSharedModule.cs
+++ b/OpenSim/Region/OptionalModules/Example/BareBonesShared/BareBonesSharedModule.cs
@@ -33,10 +33,11 @@ using Nini.Config;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-// You will need to uncomment this line if you are adding a region module to some other assembly which does not already
+// You will need to uncomment these lines if you are adding a region module to some other assembly which does not already
// specify its assembly. Otherwise, the region modules in the assembly will not be picked up when OpenSimulator scans
// the available DLLs
//[assembly: Addin("MyModule", "1.0")]
+//[assembly: AddinDependency("OpenSim", "0.5")]
namespace OpenSim.Region.OptionalModules.Example.BareBonesShared
{
--
cgit v1.1
From 20530ee66723faa78ab8cf93c096fa4626c3c701 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Fri, 1 Mar 2013 15:24:22 -0800
Subject: Moved permissions config vars out of [Startup] into [Permissions].
Backwards compatible ([Startup] still being looked up), but please update
your configs sometime soon.
---
.../World/Permissions/PermissionsModule.cs | 54 +++++++++++++---------
.../PrimLimitsModule/PrimLimitsModule.cs | 5 +-
2 files changed, 36 insertions(+), 23 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index ddaa227..121fb2a 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -156,9 +156,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
public void Initialise(IConfigSource config)
{
- IConfig myConfig = config.Configs["Startup"];
-
- string permissionModules = myConfig.GetString("permissionmodules", "DefaultPermissionsModule");
+ string permissionModules = Util.GetConfigVarFromSections(config, "permissionmodules",
+ new string[] { "Startup", "Permissions" }, "DefaultPermissionsModule");
List modules = new List(permissionModules.Split(','));
@@ -167,26 +166,34 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_Enabled = true;
- m_allowGridGods = myConfig.GetBoolean("allow_grid_gods", false);
- m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true);
- m_propagatePermissions = myConfig.GetBoolean("propagate_permissions", true);
- m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true);
- m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false);
- m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true);
-
- m_SimpleBuildPermissions = myConfig.GetBoolean("simple_build_permissions", false);
+ m_allowGridGods = Util.GetConfigVarFromSections(config, "allow_grid_gods",
+ new string[] { "Startup", "Permissions" }, false);
+ m_bypassPermissions = !Util.GetConfigVarFromSections(config, "serverside_object_permissions",
+ new string[] { "Startup", "Permissions" }, true);
+ m_propagatePermissions = Util.GetConfigVarFromSections(config, "propagate_permissions",
+ new string[] { "Startup", "Permissions" }, true);
+ m_RegionOwnerIsGod = Util.GetConfigVarFromSections(config, "region_owner_is_god",
+ new string[] { "Startup", "Permissions" }, true);
+ m_RegionManagerIsGod = Util.GetConfigVarFromSections(config, "region_manager_is_god",
+ new string[] { "Startup", "Permissions" }, false);
+ m_ParcelOwnerIsGod = Util.GetConfigVarFromSections(config, "parcel_owner_is_god",
+ new string[] { "Startup", "Permissions" }, true);
+
+ m_SimpleBuildPermissions = Util.GetConfigVarFromSections(config, "simple_build_permissions",
+ new string[] { "Startup", "Permissions" }, false);
m_allowedScriptCreators
- = ParseUserSetConfigSetting(myConfig, "allowed_script_creators", m_allowedScriptCreators);
+ = ParseUserSetConfigSetting(config, "allowed_script_creators", m_allowedScriptCreators);
m_allowedScriptEditors
- = ParseUserSetConfigSetting(myConfig, "allowed_script_editors", m_allowedScriptEditors);
+ = ParseUserSetConfigSetting(config, "allowed_script_editors", m_allowedScriptEditors);
if (m_bypassPermissions)
m_log.Info("[PERMISSIONS]: serverside_object_permissions = false in ini file so disabling all region service permission checks");
else
m_log.Debug("[PERMISSIONS]: Enabling all region service permission checks");
- string grant = myConfig.GetString("GrantLSL", "");
+ string grant = Util.GetConfigVarFromSections(config, "GrantLSL",
+ new string[] { "Startup", "Permissions" }, string.Empty);
if (grant.Length > 0)
{
foreach (string uuidl in grant.Split(','))
@@ -196,7 +203,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
}
}
- grant = myConfig.GetString("GrantCS", "");
+ grant = Util.GetConfigVarFromSections(config, "GrantCS",
+ new string[] { "Startup", "Permissions" }, string.Empty);
if (grant.Length > 0)
{
foreach (string uuidl in grant.Split(','))
@@ -206,7 +214,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
}
}
- grant = myConfig.GetString("GrantVB", "");
+ grant = Util.GetConfigVarFromSections(config, "GrantVB",
+ new string[] { "Startup", "Permissions" }, string.Empty);
if (grant.Length > 0)
{
foreach (string uuidl in grant.Split(','))
@@ -216,7 +225,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
}
}
- grant = myConfig.GetString("GrantJS", "");
+ grant = Util.GetConfigVarFromSections(config, "GrantJS",
+ new string[] { "Startup", "Permissions" }, string.Empty);
if (grant.Length > 0)
{
foreach (string uuidl in grant.Split(','))
@@ -226,7 +236,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
}
}
- grant = myConfig.GetString("GrantYP", "");
+ grant = Util.GetConfigVarFromSections(config, "GrantYP",
+ new string[] { "Startup", "Permissions" }, string.Empty);
if (grant.Length > 0)
{
foreach (string uuidl in grant.Split(','))
@@ -464,11 +475,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
/// The default value for this attribute
/// The parsed value
- private static UserSet ParseUserSetConfigSetting(IConfig config, string settingName, UserSet defaultValue)
+ private static UserSet ParseUserSetConfigSetting(IConfigSource config, string settingName, UserSet defaultValue)
{
UserSet userSet = defaultValue;
-
- string rawSetting = config.GetString(settingName, defaultValue.ToString());
+
+ string rawSetting = Util.GetConfigVarFromSections(config, settingName,
+ new string[] {"Startup", "Permissions"}, defaultValue.ToString());
// Temporary measure to allow 'gods' to be specified in config for consistency's sake. In the long term
// this should disappear.
diff --git a/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs b/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs
index c1957e2..a6d43f1 100644
--- a/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs
+++ b/OpenSim/Region/OptionalModules/PrimLimitsModule/PrimLimitsModule.cs
@@ -57,9 +57,10 @@ namespace OpenSim.Region.OptionalModules
public void Initialise(IConfigSource config)
{
- IConfig myConfig = config.Configs["Startup"];
+ //IConfig myConfig = config.Configs["Startup"];
- string permissionModules = myConfig.GetString("permissionmodules", "DefaultPermissionsModule");
+ string permissionModules = Util.GetConfigVarFromSections(config, "permissionmodules",
+ new string[] { "Startup", "Permissions" }, "DefaultPermissionsModule");
List modules=new List(permissionModules.Split(','));
--
cgit v1.1