Allow some values that are set in OpenSim.ini to be set from region config
XML as well.0.6.2-post-fixes
parent
09378da127
commit
0138fdc5fd
|
@ -199,6 +199,7 @@ namespace OpenSim.Framework
|
|||
public bool isSandbox = false;
|
||||
private EstateSettings m_estateSettings;
|
||||
private RegionSettings m_regionSettings;
|
||||
private IConfigSource m_configSource = null;
|
||||
|
||||
public UUID MasterAvatarAssignedUUID = UUID.Zero;
|
||||
public string MasterAvatarFirstName = String.Empty;
|
||||
|
@ -212,6 +213,11 @@ namespace OpenSim.Framework
|
|||
public UUID lastMapUUID = UUID.Zero;
|
||||
public string lastMapRefresh = "0";
|
||||
|
||||
private int m_nonphysPrimMax = 0;
|
||||
private int m_physPrimMax = 0;
|
||||
private bool m_clampPrimSize = false;
|
||||
private int m_objectCapacity = 0;
|
||||
|
||||
// Apparently, we're applying the same estatesettings regardless of whether it's local or remote.
|
||||
|
||||
// MT: Yes. Estates can't span trust boundaries. Therefore, it can be
|
||||
|
@ -219,16 +225,18 @@ namespace OpenSim.Framework
|
|||
// access the same database server. Since estate settings are lodaed
|
||||
// from there, that should be sufficient for full remote administration
|
||||
|
||||
public RegionInfo(string description, string filename, bool skipConsoleConfig)
|
||||
public RegionInfo(string description, string filename, bool skipConsoleConfig, IConfigSource configSource)
|
||||
{
|
||||
m_configSource = configSource;
|
||||
configMember =
|
||||
new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig);
|
||||
configMember.performConfigurationRetrieve();
|
||||
RegionFile = filename;
|
||||
}
|
||||
|
||||
public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig)
|
||||
public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig, IConfigSource configSource)
|
||||
{
|
||||
m_configSource = configSource;
|
||||
configMember =
|
||||
new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig);
|
||||
configMember.performConfigurationRetrieve();
|
||||
|
@ -302,6 +310,26 @@ namespace OpenSim.Framework
|
|||
set { m_regionSettings = value; }
|
||||
}
|
||||
|
||||
public int NonphysPrimMax
|
||||
{
|
||||
get { return m_nonphysPrimMax; }
|
||||
}
|
||||
|
||||
public int PhysPrimMax
|
||||
{
|
||||
get { return m_physPrimMax; }
|
||||
}
|
||||
|
||||
public bool ClampPrimSize
|
||||
{
|
||||
get { return m_clampPrimSize; }
|
||||
}
|
||||
|
||||
public int ObjectCapacity
|
||||
{
|
||||
get { return m_objectCapacity; }
|
||||
}
|
||||
|
||||
public void SetEndPoint(string ipaddr, int port)
|
||||
{
|
||||
IPAddress tmpIP = IPAddress.Parse(ipaddr);
|
||||
|
@ -414,6 +442,17 @@ namespace OpenSim.Framework
|
|||
configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
|
||||
"Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Maximum size for nonphysical prims", m_nonphysPrimMax.ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Maximum size for physical prims", m_physPrimMax.ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
|
||||
"Clamp prims to max size", m_clampPrimSize.ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Max objects this sim will hold", m_objectCapacity.ToString(), true);
|
||||
}
|
||||
|
||||
public void loadConfigurationOptions()
|
||||
|
@ -462,6 +501,18 @@ namespace OpenSim.Framework
|
|||
|
||||
configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
|
||||
"Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Maximum size for nonphysical prims", "0", true);
|
||||
|
||||
configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Maximum size for physical prims", "0", true);
|
||||
|
||||
configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
|
||||
"Clamp prims to max size", "false", true);
|
||||
|
||||
configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
|
||||
"Max objects this sim will hold", "0", true);
|
||||
}
|
||||
|
||||
public bool shouldMasterAvatarDetailsBeAsked(string configuration_key)
|
||||
|
@ -527,6 +578,18 @@ namespace OpenSim.Framework
|
|||
case "lastmap_refresh":
|
||||
lastMapRefresh = (string)configuration_result;
|
||||
break;
|
||||
case "nonphysical_prim_max":
|
||||
m_nonphysPrimMax = (int)configuration_result;
|
||||
break;
|
||||
case "physical_prim_max":
|
||||
m_physPrimMax = (int)configuration_result;
|
||||
break;
|
||||
case "clamp_prim_size":
|
||||
m_clampPrimSize = (bool)configuration_result;
|
||||
break;
|
||||
case "object_capacity":
|
||||
m_objectCapacity = (int)configuration_result;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -63,14 +63,14 @@ namespace OpenSim.Framework.RegionLoader.Filesystem
|
|||
|
||||
if (configFiles.Length == 0)
|
||||
{
|
||||
new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml"), false);
|
||||
new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml"), false, m_configSource);
|
||||
configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
|
||||
}
|
||||
|
||||
RegionInfo[] regionInfos = new RegionInfo[configFiles.Length];
|
||||
for (int i = 0; i < configFiles.Length; i++)
|
||||
{
|
||||
RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i], false);
|
||||
RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i], false, m_configSource);
|
||||
regionInfos[i] = regionInfo;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,23 +39,23 @@ namespace OpenSim.Framework.RegionLoader.Web
|
|||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private IConfigSource m_configSouce;
|
||||
private IConfigSource m_configSource;
|
||||
|
||||
public void SetIniConfigSource(IConfigSource configSource)
|
||||
{
|
||||
m_configSouce = configSource;
|
||||
m_configSource = configSource;
|
||||
}
|
||||
|
||||
public RegionInfo[] LoadRegions()
|
||||
{
|
||||
if (m_configSouce == null)
|
||||
if (m_configSource == null)
|
||||
{
|
||||
m_log.Error("[WEBLOADER]: Unable to load configuration source!");
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
IConfig startupConfig = (IConfig) m_configSouce.Configs["Startup"];
|
||||
IConfig startupConfig = (IConfig) m_configSource.Configs["Startup"];
|
||||
string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim();
|
||||
if (url == String.Empty)
|
||||
{
|
||||
|
@ -89,7 +89,7 @@ namespace OpenSim.Framework.RegionLoader.Web
|
|||
{
|
||||
m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml);
|
||||
regionInfos[i] =
|
||||
new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false);
|
||||
new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource);
|
||||
}
|
||||
|
||||
return regionInfos;
|
||||
|
|
|
@ -341,7 +341,7 @@ namespace OpenSim
|
|||
if (cmdparams[1].StartsWith("/") || cmdparams[1].StartsWith("\\") || cmdparams[1].StartsWith(".."))
|
||||
regionFile = cmdparams[1];
|
||||
|
||||
CreateRegion(new RegionInfo(cmdparams[0], regionFile, false), true);
|
||||
CreateRegion(new RegionInfo(cmdparams[0], regionFile, false, ConfigSource.Source), true);
|
||||
break;
|
||||
|
||||
case "remove-region":
|
||||
|
|
|
@ -370,10 +370,25 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
try
|
||||
{
|
||||
// Region config overrides global config
|
||||
//
|
||||
IConfig startupConfig = m_config.Configs["Startup"];
|
||||
m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f);
|
||||
if (RegionInfo.NonphysPrimMax > 0)
|
||||
m_maxNonphys = RegionInfo.NonphysPrimMax;
|
||||
|
||||
m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f);
|
||||
|
||||
if (RegionInfo.PhysPrimMax > 0)
|
||||
m_maxPhys = RegionInfo.PhysPrimMax;
|
||||
|
||||
// Here, if clamping is requested in either global or
|
||||
// local config, it will be used
|
||||
//
|
||||
m_clampPrimSize = startupConfig.GetBoolean("ClampPrimSize", false);
|
||||
if (RegionInfo.ClampPrimSize)
|
||||
m_clampPrimSize = true;
|
||||
|
||||
m_trustBinaries = startupConfig.GetBoolean("TrustBinaries", false);
|
||||
m_allowScriptCrossings = startupConfig.GetBoolean("AllowScriptCrossing", false);
|
||||
m_dontPersistBefore =
|
||||
|
@ -3290,6 +3305,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
public void SetObjectCapacity(int objects)
|
||||
{
|
||||
// Region specific config overrides global
|
||||
//
|
||||
if (RegionInfo.ObjectCapacity != 0)
|
||||
objects = RegionInfo.ObjectCapacity;
|
||||
|
||||
if (m_statsReporter != null)
|
||||
{
|
||||
m_statsReporter.SetObjectCapacity(objects);
|
||||
|
|
Loading…
Reference in New Issue