aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application/OpenSimMain.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs73
1 files changed, 46 insertions, 27 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index fbd6790..c68f75e 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -29,6 +29,7 @@
29using System; 29using System;
30using System.IO; 30using System.IO;
31using libsecondlife; 31using libsecondlife;
32using Nini.Config;
32using OpenSim.Assets; 33using OpenSim.Assets;
33using OpenSim.Framework; 34using OpenSim.Framework;
34using OpenSim.Framework.Communications; 35using OpenSim.Framework.Communications;
@@ -39,7 +40,7 @@ using OpenSim.Framework.Servers;
39using OpenSim.Framework.Types; 40using OpenSim.Framework.Types;
40using OpenSim.Framework.Configuration; 41using OpenSim.Framework.Configuration;
41using OpenSim.Physics.Manager; 42using OpenSim.Physics.Manager;
42 43
43using OpenSim.Region.ClientStack; 44using OpenSim.Region.ClientStack;
44using OpenSim.Region.Communications.Local; 45using OpenSim.Region.Communications.Local;
45using OpenSim.Region.Communications.OGS1; 46using OpenSim.Region.Communications.OGS1;
@@ -57,7 +58,6 @@ namespace OpenSim
57 { 58 {
58 public string m_physicsEngine; 59 public string m_physicsEngine;
59 public bool m_sandbox; 60 public bool m_sandbox;
60 public bool m_loginserver;
61 public bool user_accounts; 61 public bool user_accounts;
62 public bool m_gridLocalAsset; 62 public bool m_gridLocalAsset;
63 protected bool m_useConfigFile; 63 protected bool m_useConfigFile;
@@ -70,18 +70,37 @@ namespace OpenSim
70 private bool m_silent; 70 private bool m_silent;
71 private string m_logFilename = ("region-console-" + Guid.NewGuid().ToString() + ".log"); 71 private string m_logFilename = ("region-console-" + Guid.NewGuid().ToString() + ".log");
72 72
73 public OpenSimMain(bool sandBoxMode, bool startLoginServer, string physicsEngineName, bool useConfigFile, bool silent, string configFileName) 73 public OpenSimMain(IConfigSource configSource)
74 :base( ) 74 : base()
75 {
76 IConfigSource startupSource = configSource;
77 string iniFile = startupSource.Configs["Startup"].GetString("inifile", "NA");
78 if (iniFile != "NA")
79 {
80 //a ini is set to be used for startup settings
81 string iniFilePath = Path.Combine(Util.configDir(), iniFile);
82 if (File.Exists(iniFilePath))
83 {
84 startupSource = new IniConfigSource(iniFilePath);
85
86 //enable follow line, if we want the original config source(normally commandline args) merged with ini file settings.
87 //in this case we have it so if both sources have the same named setting, command line value will overwrite the ini file value.
88 //(as if someone has bothered to enter a command line arg, we should take notice of it)
89 //startupSource.Merge(configSource);
90 }
91 }
92 ReadConfigSettings(startupSource);
93 }
94
95 protected void ReadConfigSettings(IConfigSource configSource)
75 { 96 {
76 m_useConfigFile = useConfigFile; 97 m_useConfigFile = configSource.Configs["Startup"].GetBoolean("configfile", false);
77 m_sandbox = sandBoxMode; 98 m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false);
78 m_loginserver = startLoginServer; 99 m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics");
79 m_physicsEngine = physicsEngineName; 100 m_configFileName = configSource.Configs["Startup"].GetString("config", "simconfig.xml");
80 m_configFileName = configFileName; 101 m_silent = configSource.Configs["Startup"].GetBoolean("noverbose", false);
81 m_silent = silent;
82 } 102 }
83 103
84
85 /// <summary> 104 /// <summary>
86 /// Performs initialisation of the scene, such as loading configuration from disk. 105 /// Performs initialisation of the scene, such as loading configuration from disk.
87 /// </summary> 106 /// </summary>
@@ -91,7 +110,7 @@ namespace OpenSim
91 { 110 {
92 Directory.CreateDirectory(Util.logDir()); 111 Directory.CreateDirectory(Util.logDir());
93 } 112 }
94 m_log = new LogBase(Path.Combine(Util.logDir(),m_logFilename), "Region", this, m_silent); 113 m_log = new LogBase(Path.Combine(Util.logDir(), m_logFilename), "Region", this, m_silent);
95 MainLog.Instance = m_log; 114 MainLog.Instance = m_log;
96 115
97 base.StartUp(); 116 base.StartUp();
@@ -103,11 +122,11 @@ namespace OpenSim
103 122
104 if (m_sandbox) 123 if (m_sandbox)
105 { 124 {
106 m_commsManager = new CommunicationsLocal( m_networkServersInfo, m_httpServer, m_assetCache); 125 m_commsManager = new CommunicationsLocal(m_networkServersInfo, m_httpServer, m_assetCache);
107 } 126 }
108 else 127 else
109 { 128 {
110 m_commsManager = new CommunicationsOGS1( m_networkServersInfo, m_httpServer , m_assetCache); 129 m_commsManager = new CommunicationsOGS1(m_networkServersInfo, m_httpServer, m_assetCache);
111 } 130 }
112 131
113 132
@@ -129,15 +148,15 @@ namespace OpenSim
129 148
130 for (int i = 0; i < configFiles.Length; i++) 149 for (int i = 0; i < configFiles.Length; i++)
131 { 150 {
132 Console.WriteLine("Loading region config file"); 151 //Console.WriteLine("Loading region config file");
133 RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i]); 152 RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i]);
134 153
135 UDPServer udpServer; 154 UDPServer udpServer;
136 Scene scene = SetupScene(regionInfo, out udpServer); 155 Scene scene = SetupScene(regionInfo, out udpServer);
137 156
138 m_localScenes.Add(scene); 157 m_localScenes.Add(scene);
139 158
140 159
141 m_udpServers.Add(udpServer); 160 m_udpServers.Add(udpServer);
142 m_regionData.Add(regionInfo); 161 m_regionData.Add(regionInfo);
143 } 162 }
@@ -148,7 +167,7 @@ namespace OpenSim
148 this.m_udpServers[i].ServerListener(); 167 this.m_udpServers[i].ServerListener();
149 } 168 }
150 169
151 170
152 } 171 }
153 172
154 protected override StorageManager CreateStorageManager(RegionInfo regionInfo) 173 protected override StorageManager CreateStorageManager(RegionInfo regionInfo)
@@ -160,10 +179,10 @@ namespace OpenSim
160 { 179 {
161 return new Scene(regionInfo, circuitManager, m_commsManager, m_assetCache, storageManager, m_httpServer); 180 return new Scene(regionInfo, circuitManager, m_commsManager, m_assetCache, storageManager, m_httpServer);
162 } 181 }
163 182
164 protected override void Initialize() 183 protected override void Initialize()
165 { 184 {
166 m_networkServersInfo = new NetworkServersInfo("NETWORK SERVERS INFO", Path.Combine(Util.configDir(),"network_servers_information.xml")); 185 m_networkServersInfo = new NetworkServersInfo("NETWORK SERVERS INFO", Path.Combine(Util.configDir(), "network_servers_information.xml"));
167 m_httpServerPort = m_networkServersInfo.HttpListenerPort; 186 m_httpServerPort = m_networkServersInfo.HttpListenerPort;
168 m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); 187 m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
169 } 188 }
@@ -174,15 +193,15 @@ namespace OpenSim
174 { 193 {
175 Directory.CreateDirectory(Util.logDir()); 194 Directory.CreateDirectory(Util.logDir());
176 } 195 }
177 196
178 return new LogBase((Path.Combine(Util.logDir(),m_logFilename)), "Region", this, m_silent); 197 return new LogBase((Path.Combine(Util.logDir(), m_logFilename)), "Region", this, m_silent);
179 } 198 }
180 199
181 # region Setup methods 200 # region Setup methods
182 201
183 protected override PhysicsScene GetPhysicsScene( ) 202 protected override PhysicsScene GetPhysicsScene()
184 { 203 {
185 return GetPhysicsScene( m_physicsEngine ); 204 return GetPhysicsScene(m_physicsEngine);
186 } 205 }
187 206
188 private class SimStatusHandler : IStreamHandler 207 private class SimStatusHandler : IStreamHandler
@@ -201,7 +220,7 @@ namespace OpenSim
201 { 220 {
202 get { return "GET"; } 221 get { return "GET"; }
203 } 222 }
204 223
205 public string Path 224 public string Path
206 { 225 {
207 get { return "/simstatus/"; } 226 get { return "/simstatus/"; }