diff options
author | Melanie Thielker | 2009-01-02 17:41:12 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-01-02 17:41:12 +0000 |
commit | 0138fdc5fddbe30924484686716465984e8f59c2 (patch) | |
tree | 3d734b2f626db149b14d945b424ece36e654673a | |
parent | Use only one (static) (de-)serializer for (de-)serializing SOPs. (diff) | |
download | opensim-SC_OLD-0138fdc5fddbe30924484686716465984e8f59c2.zip opensim-SC_OLD-0138fdc5fddbe30924484686716465984e8f59c2.tar.gz opensim-SC_OLD-0138fdc5fddbe30924484686716465984e8f59c2.tar.bz2 opensim-SC_OLD-0138fdc5fddbe30924484686716465984e8f59c2.tar.xz |
Allow some values that are set in OpenSim.ini to be set from region config
XML as well.
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 67 | ||||
-rw-r--r-- | OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs | 4 | ||||
-rw-r--r-- | OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 20 |
5 files changed, 93 insertions, 10 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index dc00059..057f021 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -199,6 +199,7 @@ namespace OpenSim.Framework | |||
199 | public bool isSandbox = false; | 199 | public bool isSandbox = false; |
200 | private EstateSettings m_estateSettings; | 200 | private EstateSettings m_estateSettings; |
201 | private RegionSettings m_regionSettings; | 201 | private RegionSettings m_regionSettings; |
202 | private IConfigSource m_configSource = null; | ||
202 | 203 | ||
203 | public UUID MasterAvatarAssignedUUID = UUID.Zero; | 204 | public UUID MasterAvatarAssignedUUID = UUID.Zero; |
204 | public string MasterAvatarFirstName = String.Empty; | 205 | public string MasterAvatarFirstName = String.Empty; |
@@ -212,6 +213,11 @@ namespace OpenSim.Framework | |||
212 | public UUID lastMapUUID = UUID.Zero; | 213 | public UUID lastMapUUID = UUID.Zero; |
213 | public string lastMapRefresh = "0"; | 214 | public string lastMapRefresh = "0"; |
214 | 215 | ||
216 | private int m_nonphysPrimMax = 0; | ||
217 | private int m_physPrimMax = 0; | ||
218 | private bool m_clampPrimSize = false; | ||
219 | private int m_objectCapacity = 0; | ||
220 | |||
215 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. | 221 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. |
216 | 222 | ||
217 | // MT: Yes. Estates can't span trust boundaries. Therefore, it can be | 223 | // MT: Yes. Estates can't span trust boundaries. Therefore, it can be |
@@ -219,16 +225,18 @@ namespace OpenSim.Framework | |||
219 | // access the same database server. Since estate settings are lodaed | 225 | // access the same database server. Since estate settings are lodaed |
220 | // from there, that should be sufficient for full remote administration | 226 | // from there, that should be sufficient for full remote administration |
221 | 227 | ||
222 | public RegionInfo(string description, string filename, bool skipConsoleConfig) | 228 | public RegionInfo(string description, string filename, bool skipConsoleConfig, IConfigSource configSource) |
223 | { | 229 | { |
230 | m_configSource = configSource; | ||
224 | configMember = | 231 | configMember = |
225 | new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig); | 232 | new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig); |
226 | configMember.performConfigurationRetrieve(); | 233 | configMember.performConfigurationRetrieve(); |
227 | RegionFile = filename; | 234 | RegionFile = filename; |
228 | } | 235 | } |
229 | 236 | ||
230 | public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig) | 237 | public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig, IConfigSource configSource) |
231 | { | 238 | { |
239 | m_configSource = configSource; | ||
232 | configMember = | 240 | configMember = |
233 | new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig); | 241 | new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig); |
234 | configMember.performConfigurationRetrieve(); | 242 | configMember.performConfigurationRetrieve(); |
@@ -302,6 +310,26 @@ namespace OpenSim.Framework | |||
302 | set { m_regionSettings = value; } | 310 | set { m_regionSettings = value; } |
303 | } | 311 | } |
304 | 312 | ||
313 | public int NonphysPrimMax | ||
314 | { | ||
315 | get { return m_nonphysPrimMax; } | ||
316 | } | ||
317 | |||
318 | public int PhysPrimMax | ||
319 | { | ||
320 | get { return m_physPrimMax; } | ||
321 | } | ||
322 | |||
323 | public bool ClampPrimSize | ||
324 | { | ||
325 | get { return m_clampPrimSize; } | ||
326 | } | ||
327 | |||
328 | public int ObjectCapacity | ||
329 | { | ||
330 | get { return m_objectCapacity; } | ||
331 | } | ||
332 | |||
305 | public void SetEndPoint(string ipaddr, int port) | 333 | public void SetEndPoint(string ipaddr, int port) |
306 | { | 334 | { |
307 | IPAddress tmpIP = IPAddress.Parse(ipaddr); | 335 | IPAddress tmpIP = IPAddress.Parse(ipaddr); |
@@ -414,6 +442,17 @@ namespace OpenSim.Framework | |||
414 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 442 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
415 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); | 443 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); |
416 | 444 | ||
445 | configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
446 | "Maximum size for nonphysical prims", m_nonphysPrimMax.ToString(), true); | ||
447 | |||
448 | configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
449 | "Maximum size for physical prims", m_physPrimMax.ToString(), true); | ||
450 | |||
451 | configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN, | ||
452 | "Clamp prims to max size", m_clampPrimSize.ToString(), true); | ||
453 | |||
454 | configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
455 | "Max objects this sim will hold", m_objectCapacity.ToString(), true); | ||
417 | } | 456 | } |
418 | 457 | ||
419 | public void loadConfigurationOptions() | 458 | public void loadConfigurationOptions() |
@@ -462,6 +501,18 @@ namespace OpenSim.Framework | |||
462 | 501 | ||
463 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 502 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
464 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); | 503 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); |
504 | |||
505 | configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
506 | "Maximum size for nonphysical prims", "0", true); | ||
507 | |||
508 | configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
509 | "Maximum size for physical prims", "0", true); | ||
510 | |||
511 | configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN, | ||
512 | "Clamp prims to max size", "false", true); | ||
513 | |||
514 | configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32, | ||
515 | "Max objects this sim will hold", "0", true); | ||
465 | } | 516 | } |
466 | 517 | ||
467 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) | 518 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) |
@@ -527,6 +578,18 @@ namespace OpenSim.Framework | |||
527 | case "lastmap_refresh": | 578 | case "lastmap_refresh": |
528 | lastMapRefresh = (string)configuration_result; | 579 | lastMapRefresh = (string)configuration_result; |
529 | break; | 580 | break; |
581 | case "nonphysical_prim_max": | ||
582 | m_nonphysPrimMax = (int)configuration_result; | ||
583 | break; | ||
584 | case "physical_prim_max": | ||
585 | m_physPrimMax = (int)configuration_result; | ||
586 | break; | ||
587 | case "clamp_prim_size": | ||
588 | m_clampPrimSize = (bool)configuration_result; | ||
589 | break; | ||
590 | case "object_capacity": | ||
591 | m_objectCapacity = (int)configuration_result; | ||
592 | break; | ||
530 | } | 593 | } |
531 | 594 | ||
532 | return true; | 595 | return true; |
diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs index a371851..05ccc4d 100644 --- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs +++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs | |||
@@ -63,14 +63,14 @@ namespace OpenSim.Framework.RegionLoader.Filesystem | |||
63 | 63 | ||
64 | if (configFiles.Length == 0) | 64 | if (configFiles.Length == 0) |
65 | { | 65 | { |
66 | new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml"), false); | 66 | new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml"), false, m_configSource); |
67 | configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); | 67 | configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); |
68 | } | 68 | } |
69 | 69 | ||
70 | RegionInfo[] regionInfos = new RegionInfo[configFiles.Length]; | 70 | RegionInfo[] regionInfos = new RegionInfo[configFiles.Length]; |
71 | for (int i = 0; i < configFiles.Length; i++) | 71 | for (int i = 0; i < configFiles.Length; i++) |
72 | { | 72 | { |
73 | RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i], false); | 73 | RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i], false, m_configSource); |
74 | regionInfos[i] = regionInfo; | 74 | regionInfos[i] = regionInfo; |
75 | } | 75 | } |
76 | 76 | ||
diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs index 029d396..60242e6 100644 --- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs +++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs | |||
@@ -39,23 +39,23 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
39 | { | 39 | { |
40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
41 | 41 | ||
42 | private IConfigSource m_configSouce; | 42 | private IConfigSource m_configSource; |
43 | 43 | ||
44 | public void SetIniConfigSource(IConfigSource configSource) | 44 | public void SetIniConfigSource(IConfigSource configSource) |
45 | { | 45 | { |
46 | m_configSouce = configSource; | 46 | m_configSource = configSource; |
47 | } | 47 | } |
48 | 48 | ||
49 | public RegionInfo[] LoadRegions() | 49 | public RegionInfo[] LoadRegions() |
50 | { | 50 | { |
51 | if (m_configSouce == null) | 51 | if (m_configSource == null) |
52 | { | 52 | { |
53 | m_log.Error("[WEBLOADER]: Unable to load configuration source!"); | 53 | m_log.Error("[WEBLOADER]: Unable to load configuration source!"); |
54 | return null; | 54 | return null; |
55 | } | 55 | } |
56 | else | 56 | else |
57 | { | 57 | { |
58 | IConfig startupConfig = (IConfig) m_configSouce.Configs["Startup"]; | 58 | IConfig startupConfig = (IConfig) m_configSource.Configs["Startup"]; |
59 | string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim(); | 59 | string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim(); |
60 | if (url == String.Empty) | 60 | if (url == String.Empty) |
61 | { | 61 | { |
@@ -89,7 +89,7 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
89 | { | 89 | { |
90 | m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); | 90 | m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); |
91 | regionInfos[i] = | 91 | regionInfos[i] = |
92 | new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false); | 92 | new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource); |
93 | } | 93 | } |
94 | 94 | ||
95 | return regionInfos; | 95 | return regionInfos; |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index b3ca651..2ef3308 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -341,7 +341,7 @@ namespace OpenSim | |||
341 | if (cmdparams[1].StartsWith("/") || cmdparams[1].StartsWith("\\") || cmdparams[1].StartsWith("..")) | 341 | if (cmdparams[1].StartsWith("/") || cmdparams[1].StartsWith("\\") || cmdparams[1].StartsWith("..")) |
342 | regionFile = cmdparams[1]; | 342 | regionFile = cmdparams[1]; |
343 | 343 | ||
344 | CreateRegion(new RegionInfo(cmdparams[0], regionFile, false), true); | 344 | CreateRegion(new RegionInfo(cmdparams[0], regionFile, false, ConfigSource.Source), true); |
345 | break; | 345 | break; |
346 | 346 | ||
347 | case "remove-region": | 347 | case "remove-region": |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 13b9169..f652e21 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -370,10 +370,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
370 | 370 | ||
371 | try | 371 | try |
372 | { | 372 | { |
373 | // Region config overrides global config | ||
374 | // | ||
373 | IConfig startupConfig = m_config.Configs["Startup"]; | 375 | IConfig startupConfig = m_config.Configs["Startup"]; |
374 | m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f); | 376 | m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f); |
377 | if (RegionInfo.NonphysPrimMax > 0) | ||
378 | m_maxNonphys = RegionInfo.NonphysPrimMax; | ||
379 | |||
375 | m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f); | 380 | m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f); |
381 | |||
382 | if (RegionInfo.PhysPrimMax > 0) | ||
383 | m_maxPhys = RegionInfo.PhysPrimMax; | ||
384 | |||
385 | // Here, if clamping is requested in either global or | ||
386 | // local config, it will be used | ||
387 | // | ||
376 | m_clampPrimSize = startupConfig.GetBoolean("ClampPrimSize", false); | 388 | m_clampPrimSize = startupConfig.GetBoolean("ClampPrimSize", false); |
389 | if (RegionInfo.ClampPrimSize) | ||
390 | m_clampPrimSize = true; | ||
391 | |||
377 | m_trustBinaries = startupConfig.GetBoolean("TrustBinaries", false); | 392 | m_trustBinaries = startupConfig.GetBoolean("TrustBinaries", false); |
378 | m_allowScriptCrossings = startupConfig.GetBoolean("AllowScriptCrossing", false); | 393 | m_allowScriptCrossings = startupConfig.GetBoolean("AllowScriptCrossing", false); |
379 | m_dontPersistBefore = | 394 | m_dontPersistBefore = |
@@ -3290,6 +3305,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
3290 | 3305 | ||
3291 | public void SetObjectCapacity(int objects) | 3306 | public void SetObjectCapacity(int objects) |
3292 | { | 3307 | { |
3308 | // Region specific config overrides global | ||
3309 | // | ||
3310 | if (RegionInfo.ObjectCapacity != 0) | ||
3311 | objects = RegionInfo.ObjectCapacity; | ||
3312 | |||
3293 | if (m_statsReporter != null) | 3313 | if (m_statsReporter != null) |
3294 | { | 3314 | { |
3295 | m_statsReporter.SetObjectCapacity(objects); | 3315 | m_statsReporter.SetObjectCapacity(objects); |