aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r--OpenSim/Region/Application/Application.cs118
-rw-r--r--OpenSim/Region/Application/ConfigurationLoader.cs53
-rw-r--r--OpenSim/Region/Application/HGCommands.cs60
-rw-r--r--[-rwxr-xr-x]OpenSim/Region/Application/OpenSim.cs150
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs45
5 files changed, 142 insertions, 284 deletions
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs
index 555baa4..b860cf6 100644
--- a/OpenSim/Region/Application/Application.cs
+++ b/OpenSim/Region/Application/Application.cs
@@ -105,7 +105,7 @@ namespace OpenSim
105 105
106 // Check if the system is compatible with OpenSimulator. 106 // Check if the system is compatible with OpenSimulator.
107 // Ensures that the minimum system requirements are met 107 // Ensures that the minimum system requirements are met
108 m_log.Info("Performing compatibility checks... "); 108 m_log.Info("Performing compatibility checks... \n");
109 string supported = String.Empty; 109 string supported = String.Empty;
110 if (Util.IsEnvironmentSupported(ref supported)) 110 if (Util.IsEnvironmentSupported(ref supported))
111 { 111 {
@@ -120,6 +120,113 @@ namespace OpenSim
120 Culture.SetCurrentCulture(); 120 Culture.SetCurrentCulture();
121 121
122 122
123 // Validate that the user has the most basic configuration done
124 // If not, offer to do the most basic configuration for them warning them along the way of the importance of
125 // reading these files.
126 /*
127 m_log.Info("Checking for reguired configuration...\n");
128
129 bool OpenSim_Ini = (File.Exists(Path.Combine(Util.configDir(), "OpenSim.ini")))
130 || (File.Exists(Path.Combine(Util.configDir(), "opensim.ini")))
131 || (File.Exists(Path.Combine(Util.configDir(), "openSim.ini")))
132 || (File.Exists(Path.Combine(Util.configDir(), "Opensim.ini")));
133
134 bool StanaloneCommon_ProperCased = File.Exists(Path.Combine(Path.Combine(Util.configDir(), "config-include"), "StandaloneCommon.ini"));
135 bool StanaloneCommon_lowercased = File.Exists(Path.Combine(Path.Combine(Util.configDir(), "config-include"), "standalonecommon.ini"));
136 bool GridCommon_ProperCased = File.Exists(Path.Combine(Path.Combine(Util.configDir(), "config-include"), "GridCommon.ini"));
137 bool GridCommon_lowerCased = File.Exists(Path.Combine(Path.Combine(Util.configDir(), "config-include"), "gridcommon.ini"));
138
139 if ((OpenSim_Ini)
140 && (
141 (StanaloneCommon_ProperCased
142 || StanaloneCommon_lowercased
143 || GridCommon_ProperCased
144 || GridCommon_lowerCased
145 )))
146 {
147 m_log.Info("Required Configuration Files Found\n");
148 }
149 else
150 {
151 MainConsole.Instance = new LocalConsole("Region");
152 string resp = MainConsole.Instance.CmdPrompt(
153 "\n\n*************Required Configuration files not found.*************\n\n OpenSimulator will not run without these files.\n\nRemember, these file names are Case Sensitive in Linux and Proper Cased.\n1. ./OpenSim.ini\nand\n2. ./config-include/StandaloneCommon.ini \nor\n3. ./config-include/GridCommon.ini\n\nAlso, you will want to examine these files in great detail because only the basic system will load by default. OpenSimulator can do a LOT more if you spend a little time going through these files.\n\n" + ": " + "Do you want to copy the most basic Defaults from standalone?",
154 "yes");
155 if (resp == "yes")
156 {
157
158 if (!(OpenSim_Ini))
159 {
160 try
161 {
162 File.Copy(Path.Combine(Util.configDir(), "OpenSim.ini.example"),
163 Path.Combine(Util.configDir(), "OpenSim.ini"));
164 } catch (UnauthorizedAccessException)
165 {
166 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, Make sure OpenSim has have the required permissions\n");
167 } catch (ArgumentException)
168 {
169 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, The current directory is invalid.\n");
170 } catch (System.IO.PathTooLongException)
171 {
172 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, the Path to these files is too long.\n");
173 } catch (System.IO.DirectoryNotFoundException)
174 {
175 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, the current directory is reporting as not found.\n");
176 } catch (System.IO.FileNotFoundException)
177 {
178 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, the example is not found, please make sure that the example files exist.\n");
179 } catch (System.IO.IOException)
180 {
181 // Destination file exists already or a hard drive failure... .. so we can just drop this one
182 //MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, the example is not found, please make sure that the example files exist.\n");
183 } catch (System.NotSupportedException)
184 {
185 MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, The current directory is invalid.\n");
186 }
187
188 }
189 if (!(StanaloneCommon_ProperCased || StanaloneCommon_lowercased))
190 {
191 try
192 {
193 File.Copy(Path.Combine(Path.Combine(Util.configDir(), "config-include"), "StandaloneCommon.ini.example"),
194 Path.Combine(Path.Combine(Util.configDir(), "config-include"), "StandaloneCommon.ini"));
195 }
196 catch (UnauthorizedAccessException)
197 {
198 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, Make sure OpenSim has the required permissions\n");
199 }
200 catch (ArgumentException)
201 {
202 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, The current directory is invalid.\n");
203 }
204 catch (System.IO.PathTooLongException)
205 {
206 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, the Path to these files is too long.\n");
207 }
208 catch (System.IO.DirectoryNotFoundException)
209 {
210 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, the current directory is reporting as not found.\n");
211 }
212 catch (System.IO.FileNotFoundException)
213 {
214 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, the example is not found, please make sure that the example files exist.\n");
215 }
216 catch (System.IO.IOException)
217 {
218 // Destination file exists already or a hard drive failure... .. so we can just drop this one
219 //MainConsole.Instance.Output("Unable to Copy OpenSim.ini.example to OpenSim.ini, the example is not found, please make sure that the example files exist.\n");
220 }
221 catch (System.NotSupportedException)
222 {
223 MainConsole.Instance.Output("Unable to Copy StandaloneCommon.ini.example to StandaloneCommon.ini, The current directory is invalid.\n");
224 }
225 }
226 }
227 MainConsole.Instance = null;
228 }
229 */
123 configSource.Alias.AddAlias("On", true); 230 configSource.Alias.AddAlias("On", true);
124 configSource.Alias.AddAlias("Off", false); 231 configSource.Alias.AddAlias("Off", false);
125 configSource.Alias.AddAlias("True", true); 232 configSource.Alias.AddAlias("True", true);
@@ -129,7 +236,6 @@ namespace OpenSim
129 configSource.AddSwitch("Startup", "inifile"); 236 configSource.AddSwitch("Startup", "inifile");
130 configSource.AddSwitch("Startup", "inimaster"); 237 configSource.AddSwitch("Startup", "inimaster");
131 configSource.AddSwitch("Startup", "inidirectory"); 238 configSource.AddSwitch("Startup", "inidirectory");
132 configSource.AddSwitch("Startup", "gridmode");
133 configSource.AddSwitch("Startup", "physics"); 239 configSource.AddSwitch("Startup", "physics");
134 configSource.AddSwitch("Startup", "gui"); 240 configSource.AddSwitch("Startup", "gui");
135 configSource.AddSwitch("Startup", "console"); 241 configSource.AddSwitch("Startup", "console");
@@ -146,6 +252,8 @@ namespace OpenSim
146 // load Crash directory config 252 // load Crash directory config
147 m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir); 253 m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir);
148 254
255
256
149 if (background) 257 if (background)
150 { 258 {
151 m_sim = new OpenSimBackground(configSource); 259 m_sim = new OpenSimBackground(configSource);
@@ -153,8 +261,14 @@ namespace OpenSim
153 } 261 }
154 else 262 else
155 { 263 {
264
265
266
267
156 m_sim = new OpenSim(configSource); 268 m_sim = new OpenSim(configSource);
157 269
270
271
158 m_sim.Startup(); 272 m_sim.Startup();
159 273
160 while (true) 274 while (true)
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs
index 21edcc5..cac5fa9 100644
--- a/OpenSim/Region/Application/ConfigurationLoader.cs
+++ b/OpenSim/Region/Application/ConfigurationLoader.cs
@@ -42,6 +42,8 @@ namespace OpenSim
42 /// </summary> 42 /// </summary>
43 public class ConfigurationLoader 43 public class ConfigurationLoader
44 { 44 {
45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46
45 /// <summary> 47 /// <summary>
46 /// Various Config settings the region needs to start 48 /// Various Config settings the region needs to start
47 /// Physics Engine, Mesh Engine, GridMode, PhysicsPrim allowed, Neighbor, 49 /// Physics Engine, Mesh Engine, GridMode, PhysicsPrim allowed, Neighbor,
@@ -61,17 +63,6 @@ namespace OpenSim
61 protected NetworkServersInfo m_networkServersInfo; 63 protected NetworkServersInfo m_networkServersInfo;
62 64
63 /// <summary> 65 /// <summary>
64 /// Console logger
65 /// </summary>
66 private static readonly ILog m_log =
67 LogManager.GetLogger(
68 MethodBase.GetCurrentMethod().DeclaringType);
69
70 public ConfigurationLoader()
71 {
72 }
73
74 /// <summary>
75 /// Loads the region configuration 66 /// Loads the region configuration
76 /// </summary> 67 /// </summary>
77 /// <param name="argvSource">Parameters passed into the process when started</param> 68 /// <param name="argvSource">Parameters passed into the process when started</param>
@@ -164,12 +155,12 @@ namespace OpenSim
164 m_config.Source = new IniConfigSource(); 155 m_config.Source = new IniConfigSource();
165 m_config.Source.Merge(DefaultConfig()); 156 m_config.Source.Merge(DefaultConfig());
166 157
167 m_log.Info("[CONFIG] Reading configuration settings"); 158 m_log.Info("[CONFIG]: Reading configuration settings");
168 159
169 if (sources.Count == 0) 160 if (sources.Count == 0)
170 { 161 {
171 m_log.FatalFormat("[CONFIG] Could not load any configuration"); 162 m_log.FatalFormat("[CONFIG]: Could not load any configuration");
172 m_log.FatalFormat("[CONFIG] Did you copy the OpenSim.ini.example file to OpenSim.ini?"); 163 m_log.FatalFormat("[CONFIG]: Did you copy the OpenSim.ini.example file to OpenSim.ini?");
173 Environment.Exit(1); 164 Environment.Exit(1);
174 } 165 }
175 166
@@ -182,13 +173,12 @@ namespace OpenSim
182 173
183 if (!iniFileExists) 174 if (!iniFileExists)
184 { 175 {
185 m_log.FatalFormat("[CONFIG] Could not load any configuration"); 176 m_log.FatalFormat("[CONFIG]: Could not load any configuration");
186 m_log.FatalFormat("[CONFIG] Configuration exists, but there was an error loading it!"); 177 m_log.FatalFormat("[CONFIG]: Configuration exists, but there was an error loading it!");
187 Environment.Exit(1); 178 Environment.Exit(1);
188 } 179 }
189 180
190 // Make sure command line options take precedence 181 // Make sure command line options take precedence
191 //
192 m_config.Source.Merge(argvSource); 182 m_config.Source.Merge(argvSource);
193 183
194 ReadConfigSettings(); 184 ReadConfigSettings();
@@ -257,20 +247,17 @@ namespace OpenSim
257 247
258 if (!IsUri(iniPath)) 248 if (!IsUri(iniPath))
259 { 249 {
260 m_log.InfoFormat("[CONFIG] Reading configuration file {0}", 250 m_log.InfoFormat("[CONFIG]: Reading configuration file {0}", Path.GetFullPath(iniPath));
261 Path.GetFullPath(iniPath));
262 251
263 m_config.Source.Merge(new IniConfigSource(iniPath)); 252 m_config.Source.Merge(new IniConfigSource(iniPath));
264 success = true; 253 success = true;
265 } 254 }
266 else 255 else
267 { 256 {
268 m_log.InfoFormat("[CONFIG] {0} is a http:// URI, fetching ...", 257 m_log.InfoFormat("[CONFIG]: {0} is a http:// URI, fetching ...", iniPath);
269 iniPath);
270 258
271 // The ini file path is a http URI 259 // The ini file path is a http URI
272 // Try to read it 260 // Try to read it
273 //
274 try 261 try
275 { 262 {
276 XmlReader r = XmlReader.Create(iniPath); 263 XmlReader r = XmlReader.Create(iniPath);
@@ -281,7 +268,7 @@ namespace OpenSim
281 } 268 }
282 catch (Exception e) 269 catch (Exception e)
283 { 270 {
284 m_log.FatalFormat("[CONFIG] Exception reading config from URI {0}\n" + e.ToString(), iniPath); 271 m_log.FatalFormat("[CONFIG]: Exception reading config from URI {0}\n" + e.ToString(), iniPath);
285 Environment.Exit(1); 272 Environment.Exit(1);
286 } 273 }
287 } 274 }
@@ -304,7 +291,6 @@ namespace OpenSim
304 291
305 config.Set("region_info_source", "filesystem"); 292 config.Set("region_info_source", "filesystem");
306 293
307 config.Set("gridmode", false);
308 config.Set("physics", "OpenDynamicsEngine"); 294 config.Set("physics", "OpenDynamicsEngine");
309 config.Set("meshing", "Meshmerizer"); 295 config.Set("meshing", "Meshmerizer");
310 config.Set("physical_prim", true); 296 config.Set("physical_prim", true);
@@ -342,19 +328,7 @@ namespace OpenSim
342 if (null == config) 328 if (null == config)
343 config = defaultConfig.AddConfig("Network"); 329 config = defaultConfig.AddConfig("Network");
344 330
345 config.Set("default_location_x", 1000);
346 config.Set("default_location_y", 1000);
347 config.Set("http_listener_port", ConfigSettings.DefaultRegionHttpPort); 331 config.Set("http_listener_port", ConfigSettings.DefaultRegionHttpPort);
348 config.Set("remoting_listener_port", ConfigSettings.DefaultRegionRemotingPort);
349 config.Set("grid_server_url", "http://127.0.0.1:" + ConfigSettings.DefaultGridServerHttpPort.ToString());
350 config.Set("grid_send_key", "null");
351 config.Set("grid_recv_key", "null");
352 config.Set("user_server_url", "http://127.0.0.1:" + ConfigSettings.DefaultUserServerHttpPort.ToString());
353 config.Set("user_send_key", "null");
354 config.Set("user_recv_key", "null");
355 config.Set("asset_server_url", "http://127.0.0.1:" + ConfigSettings.DefaultAssetServerHttpPort.ToString());
356 config.Set("inventory_server_url", "http://127.0.0.1:" + ConfigSettings.DefaultInventoryServerHttpPort.ToString());
357 config.Set("secure_inventory_server", "true");
358 } 332 }
359 333
360 return defaultConfig; 334 return defaultConfig;
@@ -368,7 +342,6 @@ namespace OpenSim
368 IConfig startupConfig = m_config.Source.Configs["Startup"]; 342 IConfig startupConfig = m_config.Source.Configs["Startup"];
369 if (startupConfig != null) 343 if (startupConfig != null)
370 { 344 {
371 m_configSettings.Standalone = !startupConfig.GetBoolean("gridmode", false);
372 m_configSettings.PhysicsEngine = startupConfig.GetString("physics"); 345 m_configSettings.PhysicsEngine = startupConfig.GetString("physics");
373 m_configSettings.MeshEngineName = startupConfig.GetString("meshing"); 346 m_configSettings.MeshEngineName = startupConfig.GetString("meshing");
374 m_configSettings.PhysicalPrim = startupConfig.GetBoolean("physical_prim", true); 347 m_configSettings.PhysicalPrim = startupConfig.GetBoolean("physical_prim", true);
@@ -376,12 +349,6 @@ namespace OpenSim
376 m_configSettings.See_into_region_from_neighbor = startupConfig.GetBoolean("see_into_this_sim_from_neighbor", true); 349 m_configSettings.See_into_region_from_neighbor = startupConfig.GetBoolean("see_into_this_sim_from_neighbor", true);
377 350
378 m_configSettings.StorageDll = startupConfig.GetString("storage_plugin"); 351 m_configSettings.StorageDll = startupConfig.GetString("storage_plugin");
379 if (m_configSettings.StorageDll == "OpenSim.DataStore.MonoSqlite.dll")
380 {
381 m_configSettings.StorageDll = "OpenSim.Data.SQLite.dll";
382 m_log.Warn("WARNING: OpenSim.DataStore.MonoSqlite.dll is deprecated. Set storage_plugin to OpenSim.Data.SQLite.dll.");
383 Thread.Sleep(3000);
384 }
385 352
386 m_configSettings.StorageConnectionString 353 m_configSettings.StorageConnectionString
387 = startupConfig.GetString("storage_connection_string"); 354 = startupConfig.GetString("storage_connection_string");
diff --git a/OpenSim/Region/Application/HGCommands.cs b/OpenSim/Region/Application/HGCommands.cs
deleted file mode 100644
index 7ae161d..0000000
--- a/OpenSim/Region/Application/HGCommands.cs
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Reflection;
31using System.Xml;
32using log4net;
33using Nini.Config;
34using OpenSim.Framework;
35using OpenSim.Framework.Communications;
36using OpenSim.Framework.Console;
37using OpenSim.Region.Framework;
38using OpenSim.Region.Framework.Scenes;
39using OpenSim.Region.Framework.Scenes.Hypergrid;
40
41namespace OpenSim
42{
43 public class HGCommands
44 {
45// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46
47 public static Scene CreateScene(RegionInfo regionInfo, AgentCircuitManager circuitManager, CommunicationsManager m_commsManager,
48 StorageManager storageManager, ModuleLoader m_moduleLoader, ConfigSettings m_configSettings, OpenSimConfigSource m_config, string m_version)
49 {
50 HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager);
51
52 return
53 new HGScene(
54 regionInfo, circuitManager, m_commsManager, sceneGridService, storageManager,
55 m_moduleLoader, false, m_configSettings.PhysicalPrim,
56 m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
57 }
58
59 }
60}
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 05e283e..1395030 100755..100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -122,8 +122,7 @@ namespace OpenSim
122 m_log.Info("===================================================================="); 122 m_log.Info("====================================================================");
123 m_log.Info("========================= STARTING OPENSIM ========================="); 123 m_log.Info("========================= STARTING OPENSIM =========================");
124 m_log.Info("===================================================================="); 124 m_log.Info("====================================================================");
125 m_log.InfoFormat("[OPENSIM MAIN]: Running in {0} mode", 125 m_log.InfoFormat("[OPENSIM MAIN]: Running ");
126 (ConfigurationSettings.Standalone ? "sandbox" : "grid"));
127 //m_log.InfoFormat("[OPENSIM MAIN]: GC Is Server GC: {0}", GCSettings.IsServerGC.ToString()); 126 //m_log.InfoFormat("[OPENSIM MAIN]: GC Is Server GC: {0}", GCSettings.IsServerGC.ToString());
128 // http://msdn.microsoft.com/en-us/library/bb384202.aspx 127 // http://msdn.microsoft.com/en-us/library/bb384202.aspx
129 //GCSettings.LatencyMode = GCLatencyMode.Batch; 128 //GCSettings.LatencyMode = GCLatencyMode.Batch;
@@ -153,6 +152,11 @@ namespace OpenSim
153 RegisterConsoleCommands(); 152 RegisterConsoleCommands();
154 153
155 base.StartupSpecific(); 154 base.StartupSpecific();
155
156 MainServer.Instance.AddStreamHandler(new OpenSim.SimStatusHandler());
157 MainServer.Instance.AddStreamHandler(new OpenSim.XSimStatusHandler(this));
158 if (userStatsURI != String.Empty)
159 MainServer.Instance.AddStreamHandler(new OpenSim.UXSimStatusHandler(this));
156 160
157 if (m_console is RemoteConsole) 161 if (m_console is RemoteConsole)
158 { 162 {
@@ -247,8 +251,9 @@ namespace OpenSim
247 "Save named prim to XML2", SavePrimsXml2); 251 "Save named prim to XML2", SavePrimsXml2);
248 252
249 m_console.Commands.AddCommand("region", false, "load oar", 253 m_console.Commands.AddCommand("region", false, "load oar",
250 "load oar [--merge] <oar name>", 254 "load oar [--merge] [--skip-assets] <oar name>",
251 "Load a region's data from OAR archive", LoadOar); 255 "Load a region's data from OAR archive. --merge will merge the oar with the existing scene. --skip-assets will load the oar but ignore the assets it contains",
256 LoadOar);
252 257
253 m_console.Commands.AddCommand("region", false, "save oar", 258 m_console.Commands.AddCommand("region", false, "save oar",
254 "save oar <oar name>", 259 "save oar <oar name>",
@@ -350,25 +355,6 @@ namespace OpenSim
350 "kill uuid <UUID>", 355 "kill uuid <UUID>",
351 "Kill an object by UUID", KillUUID); 356 "Kill an object by UUID", KillUUID);
352 357
353 if (ConfigurationSettings.Standalone)
354 {
355 m_console.Commands.AddCommand("region", false, "create user",
356 "create user [<first> [<last> [<pass> [<x> <y> [<email>]]]]]",
357 "Create a new user", HandleCreateUser);
358
359 m_console.Commands.AddCommand("region", false, "reset user password",
360 "reset user password [<first> [<last> [<password>]]]",
361 "Reset a user password", HandleResetUserPassword);
362 }
363
364 m_console.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [<x> <y>] <cr>",
365 "Set local coordinate to map HG regions to", RunCommand);
366 m_console.Commands.AddCommand("hypergrid", false, "link-region",
367 "link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>] <cr>",
368 "Link a hypergrid region", RunCommand);
369 m_console.Commands.AddCommand("hypergrid", false, "unlink-region",
370 "unlink-region <local name> or <HostName>:<HttpPort> <cr>",
371 "Unlink a hypergrid region", RunCommand);
372 } 358 }
373 359
374 public override void ShutdownSpecific() 360 public override void ShutdownSpecific()
@@ -421,7 +407,7 @@ namespace OpenSim
421 407
422 foreach (ScenePresence presence in agents) 408 foreach (ScenePresence presence in agents)
423 { 409 {
424 RegionInfo regionInfo = m_sceneManager.GetRegionInfo(presence.RegionHandle); 410 RegionInfo regionInfo = presence.Scene.RegionInfo;
425 411
426 if (presence.Firstname.ToLower().Contains(cmdparams[2].ToLower()) && 412 if (presence.Firstname.ToLower().Contains(cmdparams[2].ToLower()) &&
427 presence.Lastname.ToLower().Contains(cmdparams[3].ToLower())) 413 presence.Lastname.ToLower().Contains(cmdparams[3].ToLower()))
@@ -777,38 +763,6 @@ namespace OpenSim
777 } 763 }
778 764
779 /// <summary> 765 /// <summary>
780 /// Execute switch for some of the create commands
781 /// </summary>
782 /// <param name="args"></param>
783 private void HandleCreateUser(string module, string[] cmd)
784 {
785 if (ConfigurationSettings.Standalone)
786 {
787 CreateUser(cmd);
788 }
789 else
790 {
791 MainConsole.Instance.Output("Create user is not available in grid mode, use the user server.");
792 }
793 }
794
795 /// <summary>
796 /// Execute switch for some of the reset commands
797 /// </summary>
798 /// <param name="args"></param>
799 protected void HandleResetUserPassword(string module, string[] cmd)
800 {
801 if (ConfigurationSettings.Standalone)
802 {
803 ResetUserPassword(cmd);
804 }
805 else
806 {
807 MainConsole.Instance.Output("Reset user password is not available in grid mode, use the user-server.");
808 }
809 }
810
811 /// <summary>
812 /// Turn on some debugging values for OpenSim. 766 /// Turn on some debugging values for OpenSim.
813 /// </summary> 767 /// </summary>
814 /// <param name="args"></param> 768 /// <param name="args"></param>
@@ -908,7 +862,7 @@ namespace OpenSim
908 862
909 foreach (ScenePresence presence in agents) 863 foreach (ScenePresence presence in agents)
910 { 864 {
911 RegionInfo regionInfo = m_sceneManager.GetRegionInfo(presence.RegionHandle); 865 RegionInfo regionInfo = presence.Scene.RegionInfo;
912 string regionName; 866 string regionName;
913 867
914 if (regionInfo == null) 868 if (regionInfo == null)
@@ -944,7 +898,7 @@ namespace OpenSim
944 { 898 {
945 connections.AppendFormat("{0}: {1} ({2}) from {3} on circuit {4}\n", 899 connections.AppendFormat("{0}: {1} ({2}) from {3} on circuit {4}\n",
946 scene.RegionInfo.RegionName, client.Name, client.AgentId, client.RemoteEndPoint, client.CircuitCode); 900 scene.RegionInfo.RegionName, client.Name, client.AgentId, client.RemoteEndPoint, client.CircuitCode);
947 }, false 901 }
948 ); 902 );
949 } 903 }
950 ); 904 );
@@ -1046,86 +1000,6 @@ namespace OpenSim
1046 } 1000 }
1047 1001
1048 /// <summary> 1002 /// <summary>
1049 /// Create a new user
1050 /// </summary>
1051 /// <param name="cmdparams">string array with parameters: firstname, lastname, password, locationX, locationY, email</param>
1052 protected void CreateUser(string[] cmdparams)
1053 {
1054 string firstName;
1055 string lastName;
1056 string password;
1057 string email;
1058 uint regX = 1000;
1059 uint regY = 1000;
1060
1061 IConfig standalone;
1062 if ((standalone = m_config.Source.Configs["StandAlone"]) != null)
1063 {
1064 regX = (uint)standalone.GetInt("default_location_x", (int)regX);
1065 regY = (uint)standalone.GetInt("default_location_y", (int)regY);
1066 }
1067
1068
1069 if (cmdparams.Length < 3)
1070 firstName = MainConsole.Instance.CmdPrompt("First name", "Default");
1071 else firstName = cmdparams[2];
1072
1073 if (cmdparams.Length < 4)
1074 lastName = MainConsole.Instance.CmdPrompt("Last name", "User");
1075 else lastName = cmdparams[3];
1076
1077 if (cmdparams.Length < 5)
1078 password = MainConsole.Instance.PasswdPrompt("Password");
1079 else password = cmdparams[4];
1080
1081 if (cmdparams.Length < 6)
1082 regX = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region X", regX.ToString()));
1083 else regX = Convert.ToUInt32(cmdparams[5]);
1084
1085 if (cmdparams.Length < 7)
1086 regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString()));
1087 else regY = Convert.ToUInt32(cmdparams[6]);
1088
1089 if (cmdparams.Length < 8)
1090 email = MainConsole.Instance.CmdPrompt("Email", "");
1091 else email = cmdparams[7];
1092
1093 if (null == m_commsManager.UserProfileCacheService.GetUserDetails(firstName, lastName))
1094 {
1095 m_commsManager.UserAdminService.AddUser(firstName, lastName, password, email, regX, regY);
1096 }
1097 else
1098 {
1099 MainConsole.Instance.Output(string.Format("A user with the name {0} {1} already exists!", firstName, lastName));
1100 }
1101 }
1102
1103 /// <summary>
1104 /// Reset a user password.
1105 /// </summary>
1106 /// <param name="cmdparams"></param>
1107 private void ResetUserPassword(string[] cmdparams)
1108 {
1109 string firstName;
1110 string lastName;
1111 string newPassword;
1112
1113 if (cmdparams.Length < 4)
1114 firstName = MainConsole.Instance.CmdPrompt("First name");
1115 else firstName = cmdparams[3];
1116
1117 if (cmdparams.Length < 5)
1118 lastName = MainConsole.Instance.CmdPrompt("Last name");
1119 else lastName = cmdparams[4];
1120
1121 if (cmdparams.Length < 6)
1122 newPassword = MainConsole.Instance.PasswdPrompt("New password");
1123 else newPassword = cmdparams[5];
1124
1125 m_commsManager.UserAdminService.ResetUserPassword(firstName, lastName, newPassword);
1126 }
1127
1128 /// <summary>
1129 /// Use XML2 format to serialize data to a file 1003 /// Use XML2 format to serialize data to a file
1130 /// </summary> 1004 /// </summary>
1131 /// <param name="module"></param> 1005 /// <param name="module"></param>
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 1ec96a0..f053911 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -36,8 +36,7 @@ using Nini.Config;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Framework.Communications; 38using OpenSim.Framework.Communications;
39using OpenSim.Framework.Communications.Services; 39
40using OpenSim.Framework.Communications.Cache;
41using OpenSim.Framework.Console; 40using OpenSim.Framework.Console;
42using OpenSim.Framework.Servers; 41using OpenSim.Framework.Servers;
43using OpenSim.Framework.Servers.HttpServer; 42using OpenSim.Framework.Servers.HttpServer;
@@ -85,8 +84,6 @@ namespace OpenSim
85 84
86 protected ConfigurationLoader m_configLoader; 85 protected ConfigurationLoader m_configLoader;
87 86
88 protected GridInfoService m_gridInfoService;
89
90 public ConsoleCommand CreateAccount = null; 87 public ConsoleCommand CreateAccount = null;
91 88
92 protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); 89 protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>();
@@ -368,7 +365,7 @@ namespace OpenSim
368 365
369 // moved these here as the terrain texture has to be created after the modules are initialized 366 // moved these here as the terrain texture has to be created after the modules are initialized
370 // and has to happen before the region is registered with the grid. 367 // and has to happen before the region is registered with the grid.
371 scene.CreateTerrainTexture(false); 368 scene.CreateTerrainTexture();
372 369
373 // TODO : Try setting resource for region xstats here on scene 370 // TODO : Try setting resource for region xstats here on scene
374 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); 371 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo));
@@ -604,35 +601,6 @@ namespace OpenSim
604 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); 601 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
605 scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); 602 scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight);
606 603
607 // TODO: Remove this cruft once MasterAvatar is fully deprecated
608 //Master Avatar Setup
609 UserProfileData masterAvatar;
610 if (scene.RegionInfo.MasterAvatarAssignedUUID == UUID.Zero)
611 {
612 masterAvatar =
613 m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarFirstName,
614 scene.RegionInfo.MasterAvatarLastName,
615 scene.RegionInfo.MasterAvatarSandboxPassword);
616 }
617 else
618 {
619 masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarAssignedUUID);
620 scene.RegionInfo.MasterAvatarFirstName = masterAvatar.FirstName;
621 scene.RegionInfo.MasterAvatarLastName = masterAvatar.SurName;
622 }
623
624 if (masterAvatar == null)
625 {
626 m_log.Info("[PARCEL]: No master avatar found, using null.");
627 scene.RegionInfo.MasterAvatarAssignedUUID = UUID.Zero;
628 }
629 else
630 {
631 m_log.InfoFormat("[PARCEL]: Found master avatar {0} {1} [" + masterAvatar.ID.ToString() + "]",
632 scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName);
633 scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.ID;
634 }
635
636 return scene; 604 return scene;
637 } 605 }
638 606
@@ -655,15 +623,10 @@ namespace OpenSim
655 protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, 623 protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
656 AgentCircuitManager circuitManager) 624 AgentCircuitManager circuitManager)
657 { 625 {
658 bool hgrid = ConfigSource.Source.Configs["Startup"].GetBoolean("hypergrid", false); 626 SceneCommunicationService sceneGridService = new SceneCommunicationService();
659 if (hgrid)
660 return HGCommands.CreateScene(regionInfo, circuitManager, m_commsManager,
661 storageManager, m_moduleLoader, m_configSettings, m_config, m_version);
662
663 SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager);
664 627
665 return new Scene( 628 return new Scene(
666 regionInfo, circuitManager, m_commsManager, sceneGridService, 629 regionInfo, circuitManager, sceneGridService,
667 storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim, 630 storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim,
668 m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); 631 m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
669 } 632 }