aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Base
diff options
context:
space:
mode:
authorBlueWall2012-10-03 16:07:11 -0400
committerBlueWall2012-10-03 16:07:11 -0400
commit3e71c71cbffb0de454759e2bbd0ff840dfa480bc (patch)
treed6cbdc998bd4d7f9309bb73866e1ebaf72cb1b1b /OpenSim/Server/Base
parentAllow setting connection limits, part 2 (diff)
downloadopensim-SC_OLD-3e71c71cbffb0de454759e2bbd0ff840dfa480bc.zip
opensim-SC_OLD-3e71c71cbffb0de454759e2bbd0ff840dfa480bc.tar.gz
opensim-SC_OLD-3e71c71cbffb0de454759e2bbd0ff840dfa480bc.tar.bz2
opensim-SC_OLD-3e71c71cbffb0de454759e2bbd0ff840dfa480bc.tar.xz
Add modular configuration for Robust connectors
We can provide modular ini for connectors... look for our configuration in the following places... 1) in the default ini/-inifile 2) in the named file (ConfigName) located in the configured directory (see Robust[.HG].ini [Start] section for ConfigDirectory) 3) in the repository named in the connector (ConfigURL) In this case, the file will be written into the configured directory with the specified See example connector/service @ https://github.com/BlueWall/SlipStream for testing.
Diffstat (limited to '')
-rw-r--r--OpenSim/Server/Base/ServerUtils.cs38
-rw-r--r--OpenSim/Server/Base/ServicesServerBase.cs8
2 files changed, 46 insertions, 0 deletions
diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs
index 42c82cf..4a696c4 100644
--- a/OpenSim/Server/Base/ServerUtils.cs
+++ b/OpenSim/Server/Base/ServerUtils.cs
@@ -33,6 +33,7 @@ using System.Xml.Serialization;
33using System.Text; 33using System.Text;
34using System.Collections.Generic; 34using System.Collections.Generic;
35using log4net; 35using log4net;
36using Nini.Config;
36using OpenSim.Framework; 37using OpenSim.Framework;
37using OpenMetaverse; 38using OpenMetaverse;
38 39
@@ -333,5 +334,42 @@ namespace OpenSim.Server.Base
333 334
334 return ret; 335 return ret;
335 } 336 }
337
338 public static IConfig GetConfig(string configFile, string configName)
339 {
340 IConfig config;
341
342 if (File.Exists(configFile))
343 {
344 IConfigSource configsource = new IniConfigSource(configFile);
345 config = configsource.Configs[configName];
346 }
347 else
348 config = null;
349
350 return config;
351 }
352
353 public static IConfigSource LoadInitialConfig(string url)
354 {
355 IConfigSource source = new XmlConfigSource();
356 m_log.InfoFormat("[CONFIG]: {0} is a http:// URI, fetching ...", url);
357
358 // The ini file path is a http URI
359 // Try to read it
360 try
361 {
362 XmlReader r = XmlReader.Create(url);
363 IConfigSource cs = new XmlConfigSource(r);
364 source.Merge(cs);
365 }
366 catch (Exception e)
367 {
368 m_log.FatalFormat("[CONFIG]: Exception reading config from URI {0}\n" + e.ToString(), url);
369 Environment.Exit(1);
370 }
371
372 return source;
373 }
336 } 374 }
337} 375}
diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs
index 0cff6ed..2f12288 100644
--- a/OpenSim/Server/Base/ServicesServerBase.cs
+++ b/OpenSim/Server/Base/ServicesServerBase.cs
@@ -64,6 +64,12 @@ namespace OpenSim.Server.Base
64 get { return m_Config; } 64 get { return m_Config; }
65 } 65 }
66 66
67 public string ConfigDirectory
68 {
69 get;
70 private set;
71 }
72
67 // Run flag 73 // Run flag
68 // 74 //
69 private bool m_Running = true; 75 private bool m_Running = true;
@@ -153,6 +159,8 @@ namespace OpenSim.Server.Base
153 startupConfig = m_Config.Configs["Startup"]; 159 startupConfig = m_Config.Configs["Startup"];
154 } 160 }
155 161
162 ConfigDirectory = startupConfig.GetString("ConfigDirectory", ".");
163
156 prompt = startupConfig.GetString("Prompt", prompt); 164 prompt = startupConfig.GetString("Prompt", prompt);
157 165
158 // Allow derived classes to load config before the console is 166 // Allow derived classes to load config before the console is