aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application/OpenSimMain.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application/OpenSimMain.cs')
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs162
1 files changed, 74 insertions, 88 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 18c81a0..074b34b 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -53,28 +53,26 @@ namespace OpenSim
53 public class OpenSimMain : RegionApplicationBase, conscmd_callback 53 public class OpenSimMain : RegionApplicationBase, conscmd_callback
54 { 54 {
55 public string m_physicsEngine; 55 public string m_physicsEngine;
56 protected IGenericConfig localConfig; 56 public bool m_sandbox;
57 public bool m_sandbox = false;
58 public bool m_loginserver; 57 public bool m_loginserver;
59 public bool user_accounts = false; 58 public bool user_accounts;
60 public bool gridLocalAsset = false; 59 public bool m_gridLocalAsset;
61 protected bool configFileSetup = false; 60 protected bool m_useConfigFile;
62 public string m_config; 61 public string m_configFileName;
63 62
64 protected CommunicationsManager commsManager; 63 protected CommunicationsManager commsManager;
65 // private CheckSumServer checkServer;
66 64
67 private bool m_silent; 65 private bool m_silent;
68 private string m_logFilename = "region-console-" + Guid.NewGuid().ToString() + ".log"; 66 private string m_logFilename = "region-console-" + Guid.NewGuid().ToString() + ".log";
69 67
70 public OpenSimMain(bool sandBoxMode, bool startLoginServer, string physicsEngine, bool useConfigFile, bool silent, string configFile) 68 public OpenSimMain(bool sandBoxMode, bool startLoginServer, string physicsEngineName, bool useConfigFile, bool silent, string configFileName)
71 :base( ) 69 :base( )
72 { 70 {
73 this.configFileSetup = useConfigFile; 71 m_useConfigFile = useConfigFile;
74 m_sandbox = sandBoxMode; 72 m_sandbox = sandBoxMode;
75 m_loginserver = startLoginServer; 73 m_loginserver = startLoginServer;
76 m_physicsEngine = physicsEngine; 74 m_physicsEngine = physicsEngineName;
77 m_config = configFile; 75 m_configFileName = configFileName;
78 m_silent = silent; 76 m_silent = silent;
79 } 77 }
80 78
@@ -86,17 +84,13 @@ namespace OpenSim
86 { 84 {
87 base.StartUp(); 85 base.StartUp();
88 86
89 m_log.Verbose("Main.cs:Startup() - Loading configuration"); 87 if (!m_sandbox)
90 this.m_networkServersInfo.InitConfig(this.m_sandbox, this.localConfig); 88 {
91 this.localConfig.Close();//for now we can close it as no other classes read from it , but this should change 89 m_httpServer.AddStreamHandler(new SimStatusHandler());
92 90 }
93 ScenePresence.LoadTextureFile("avatar-texture.dat");
94
95 ClientView.TerrainManager = new TerrainManager(new SecondLife());
96
97 this.SetupHttpListener();
98 91
99 m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); 92 AssetCache assetCache = m_assetCache;
93 assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
100 m_inventoryCache = new InventoryCache(); 94 m_inventoryCache = new InventoryCache();
101 95
102 if (m_sandbox) 96 if (m_sandbox)
@@ -108,48 +102,6 @@ namespace OpenSim
108 this.commsManager = new CommunicationsOGS1( m_networkServersInfo, m_httpServer ); 102 this.commsManager = new CommunicationsOGS1( m_networkServersInfo, m_httpServer );
109 } 103 }
110 104
111 this.SetupScene();
112
113 m_log.Verbose("Main.cs:Startup() - Initialising HTTP server");
114
115 //Start http server
116 m_log.Verbose("Main.cs:Startup() - Starting HTTP server");
117 m_httpServer.Start();
118
119 // Start UDP servers
120 for (int i = 0; i < m_udpServer.Count; i++)
121 {
122 this.m_udpServer[i].ServerListener();
123 }
124
125 }
126
127 protected override void Initialize()
128 {
129 this.localConfig = new XmlConfig(m_config);
130 this.localConfig.LoadData();
131
132 if (this.configFileSetup)
133 {
134 this.SetupFromConfigFile(this.localConfig);
135 }
136 }
137
138 protected override LogBase CreateLog()
139 {
140 return new LogBase(m_logFilename, "Region", this, m_silent);
141 }
142
143 # region Setup methods
144
145 protected void SetupScene()
146 {
147 IGenericConfig regionConfig;
148
149 UDPServer udpServer;
150 RegionInfo m_regionInfo = new RegionInfo();
151 AuthenticateSessionsBase authenBase;
152
153 string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Regions"); 105 string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Regions");
154 string[] configFiles = Directory.GetFiles(path, "*.xml"); 106 string[] configFiles = Directory.GetFiles(path, "*.xml");
155 107
@@ -169,7 +121,18 @@ namespace OpenSim
169 121
170 for (int i = 0; i < configFiles.Length; i++) 122 for (int i = 0; i < configFiles.Length; i++)
171 { 123 {
172 m_regionInfo = new RegionInfo(); 124 Console.WriteLine("Loading region config file");
125
126 IGenericConfig regionConfig = new XmlConfig(configFiles[i]);
127 RegionInfo regionInfo = new RegionInfo();
128 regionConfig.LoadData();
129 regionInfo.InitConfig(this.m_sandbox, regionConfig);
130 regionConfig.Close();
131
132
133
134 AuthenticateSessionsBase authenBase;
135
173 if (m_sandbox) 136 if (m_sandbox)
174 { 137 {
175 AuthenticateSessionsBase authen = new AuthenticateSessionsBase(); // new AuthenticateSessionsLocal(); 138 AuthenticateSessionsBase authen = new AuthenticateSessionsBase(); // new AuthenticateSessionsLocal();
@@ -182,28 +145,23 @@ namespace OpenSim
182 this.AuthenticateSessionsHandler.Add(authen); 145 this.AuthenticateSessionsHandler.Add(authen);
183 authenBase = authen; 146 authenBase = authen;
184 } 147 }
185 Console.WriteLine("Loading region config file");
186 regionConfig = new XmlConfig(configFiles[i]);
187 regionConfig.LoadData();
188 m_regionInfo.InitConfig(this.m_sandbox, regionConfig);
189 regionConfig.Close();
190 148
191 udpServer = new UDPServer(m_regionInfo.InternalEndPoint.Port, m_assetCache, this.m_inventoryCache, this.m_log, authenBase); 149 UDPServer udpServer = new UDPServer(regionInfo.InternalEndPoint.Port, assetCache, this.m_inventoryCache, this.m_log, authenBase);
192 150
193 m_udpServer.Add(udpServer); 151 m_udpServers.Add(udpServer);
194 this.m_regionData.Add(m_regionInfo); 152 m_regionData.Add(regionInfo);
195 153
196 StorageManager tmpStoreManager = new StorageManager("OpenSim.DataStore.NullStorage.dll", m_regionInfo.DataStore, m_regionInfo.RegionName); 154 StorageManager tmpStoreManager = GetStoreManager(regionInfo);
197 155
198 Scene scene = new Scene( m_regionInfo, authenBase, commsManager, m_assetCache, tmpStoreManager, m_httpServer); 156 Scene scene = new Scene(regionInfo, authenBase, commsManager, assetCache, tmpStoreManager, m_httpServer);
199 this.m_localWorld.Add(scene); 157 m_localWorld.Add(scene);
200 158
201 udpServer.LocalWorld = scene; 159 udpServer.LocalWorld = scene;
202 160
203 scene.LoadStorageDLL("OpenSim.Region.Storage.LocalStorageDb4o.dll"); //all these dll names shouldn't be hard coded. 161 scene.LoadStorageDLL("OpenSim.Region.Storage.LocalStorageDb4o.dll"); //all these dll names shouldn't be hard coded.
204 scene.LoadWorldMap(); 162 scene.LoadWorldMap();
205 163
206 PhysicsScene physicsScene = GetPhysicsScene( m_physicsEngine ); 164 PhysicsScene physicsScene = GetPhysicsScene(m_physicsEngine);
207 165
208 scene.PhysScene = physicsScene; 166 scene.PhysScene = physicsScene;
209 scene.PhysScene.SetTerrain(scene.Terrain.getHeights1D()); 167 scene.PhysScene.SetTerrain(scene.Terrain.getHeights1D());
@@ -226,8 +184,46 @@ namespace OpenSim
226 scene.performParcelPrimCountUpdate(); 184 scene.performParcelPrimCountUpdate();
227 scene.StartTimer(); 185 scene.StartTimer();
228 } 186 }
187
188 // Start UDP servers
189 for (int i = 0; i < m_udpServers.Count; i++)
190 {
191 this.m_udpServers[i].ServerListener();
192 }
193
194 }
195
196 protected override StorageManager GetStoreManager(RegionInfo regionInfo)
197 {
198 return new StorageManager("OpenSim.DataStore.NullStorage.dll", regionInfo.DataStore, regionInfo.RegionName);
199 }
200
201 protected override void Initialize()
202 {
203 m_log.Verbose("Loading Configuration [{0}]", m_configFileName);
204
205 IGenericConfig localConfig = new XmlConfig(m_configFileName);
206 localConfig.LoadData();
207
208 if (m_useConfigFile)
209 {
210 SetupFromConfigFile(localConfig);
211 }
212
213 m_networkServersInfo.InitConfig(m_sandbox, localConfig);
214 m_httpServerPort = m_networkServersInfo.HttpListenerPort;
215
216 localConfig.Close();
217
218 }
219
220 protected override LogBase CreateLog()
221 {
222 return new LogBase(m_logFilename, "Region", this, m_silent);
229 } 223 }
230 224
225 # region Setup methods
226
231 protected override PhysicsScene GetPhysicsScene( ) 227 protected override PhysicsScene GetPhysicsScene( )
232 { 228 {
233 return GetPhysicsScene( m_physicsEngine ); 229 return GetPhysicsScene( m_physicsEngine );
@@ -256,16 +252,6 @@ namespace OpenSim
256 } 252 }
257 } 253 }
258 254
259 protected void SetupHttpListener()
260 {
261 m_httpServer = new BaseHttpServer(this.m_networkServersInfo.HttpListenerPort); //regionData[0].IPListenPort);
262
263 if (!this.m_sandbox)
264 {
265 m_httpServer.AddStreamHandler( new SimStatusHandler() );
266 }
267 }
268
269 protected void ConnectToRemoteGridServer() 255 protected void ConnectToRemoteGridServer()
270 { 256 {
271 257
@@ -330,12 +316,12 @@ namespace OpenSim
330 attri = configData.GetAttribute("LocalAssets"); 316 attri = configData.GetAttribute("LocalAssets");
331 if ((attri == "") || ((attri != "false") && (attri != "true"))) 317 if ((attri == "") || ((attri != "false") && (attri != "true")))
332 { 318 {
333 this.gridLocalAsset = false; 319 this.m_gridLocalAsset = false;
334 configData.SetAttribute("LocalAssets", "false"); 320 configData.SetAttribute("LocalAssets", "false");
335 } 321 }
336 else if (attri == "true") 322 else if (attri == "true")
337 { 323 {
338 this.gridLocalAsset = Convert.ToBoolean(attri); 324 this.m_gridLocalAsset = Convert.ToBoolean(attri);
339 } 325 }
340 326
341 327