aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs121
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs159
2 files changed, 109 insertions, 171 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 6255515..4c4abb6 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -35,6 +35,7 @@ using System.Text;
35using System.Text.RegularExpressions; 35using System.Text.RegularExpressions;
36using System.Timers; 36using System.Timers;
37using log4net; 37using log4net;
38using NDesk.Options;
38using Nini.Config; 39using Nini.Config;
39using OpenMetaverse; 40using OpenMetaverse;
40using OpenSim.Framework; 41using OpenSim.Framework;
@@ -253,8 +254,14 @@ namespace OpenSim
253 m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); 254 m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug);
254 255
255 m_console.Commands.AddCommand("Debug", false, "debug scene", 256 m_console.Commands.AddCommand("Debug", false, "debug scene",
256 "debug scene <scripting> <collisions> <physics>", 257 "debug scene active|collisions|physics|scripting|teleport true|false",
257 "Turn on scene debugging", Debug); 258 "Turn on scene debugging.",
259 "If active is false then main scene update and maintenance loops are suspended.\n"
260 + "If collisions is false then collisions with other objects are turned off.\n"
261 + "If physics is false then all physics objects are non-physical.\n"
262 + "If scripting is false then no scripting operations happen.\n"
263 + "If teleport is true then some extra teleport debug information is logged.",
264 Debug);
258 265
259 m_console.Commands.AddCommand("General", false, "change region", 266 m_console.Commands.AddCommand("General", false, "change region",
260 "change region <region name>", 267 "change region <region name>",
@@ -291,7 +298,7 @@ namespace OpenSim
291 298
292 m_console.Commands.AddCommand("Archiving", false, "save oar", 299 m_console.Commands.AddCommand("Archiving", false, "save oar",
293 //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]", 300 //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]",
294 "save oar [-h|--home=<url>] [--noassets] [--publish] [--perm=<permissions>] [<OAR path>]", 301 "save oar [-h|--home=<url>] [--noassets] [--publish] [--perm=<permissions>] [--all] [<OAR path>]",
295 "Save a region's data to an OAR archive.", 302 "Save a region's data to an OAR archive.",
296// "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine 303// "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine
297 "-h|--home=<url> adds the url of the profile service to the saved user information.\n" 304 "-h|--home=<url> adds the url of the profile service to the saved user information.\n"
@@ -301,6 +308,7 @@ namespace OpenSim
301 + " this is useful if you're making oars generally available that might be reloaded to the same grid from which you published\n" 308 + " this is useful if you're making oars generally available that might be reloaded to the same grid from which you published\n"
302 + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR.\n" 309 + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR.\n"
303 + " <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer\n" 310 + " <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer\n"
311 + "--all saves all the regions in the simulator, instead of just the current region.\n"
304 + "The OAR path must be a filesystem path." 312 + "The OAR path must be a filesystem path."
305 + " If this is not given then the oar is saved to region.oar in the current directory.", 313 + " If this is not given then the oar is saved to region.oar in the current directory.",
306 SaveOar); 314 SaveOar);
@@ -310,8 +318,11 @@ namespace OpenSim
310 "Change the scale of a named prim", HandleEditScale); 318 "Change the scale of a named prim", HandleEditScale);
311 319
312 m_console.Commands.AddCommand("Users", false, "kick user", 320 m_console.Commands.AddCommand("Users", false, "kick user",
313 "kick user <first> <last> [message]", 321 "kick user <first> <last> [--force] [message]",
314 "Kick a user off the simulator", KickUserCommand); 322 "Kick a user off the simulator",
323 "The --force option will kick the user without any checks to see whether it's already in the process of closing\n"
324 + "Only use this option if you are sure the avatar is inactive and a normal kick user operation does not removed them",
325 KickUserCommand);
315 326
316 m_console.Commands.AddCommand("Users", false, "show users", 327 m_console.Commands.AddCommand("Users", false, "show users",
317 "show users [full]", 328 "show users [full]",
@@ -328,10 +339,6 @@ namespace OpenSim
328 "show circuits", 339 "show circuits",
329 "Show agent circuit data", HandleShow); 340 "Show agent circuit data", HandleShow);
330 341
331 m_console.Commands.AddCommand("Comms", false, "show http-handlers",
332 "show http-handlers",
333 "Show all registered http handlers", HandleShow);
334
335 m_console.Commands.AddCommand("Comms", false, "show pending-objects", 342 m_console.Commands.AddCommand("Comms", false, "show pending-objects",
336 "show pending-objects", 343 "show pending-objects",
337 "Show # of objects on the pending queues of all scene viewers", HandleShow); 344 "Show # of objects on the pending queues of all scene viewers", HandleShow);
@@ -416,6 +423,7 @@ namespace OpenSim
416 { 423 {
417 RunCommandScript(m_shutdownCommandsFile); 424 RunCommandScript(m_shutdownCommandsFile);
418 } 425 }
426
419 base.ShutdownSpecific(); 427 base.ShutdownSpecific();
420 } 428 }
421 429
@@ -453,11 +461,17 @@ namespace OpenSim
453 /// <param name="cmdparams">name of avatar to kick</param> 461 /// <param name="cmdparams">name of avatar to kick</param>
454 private void KickUserCommand(string module, string[] cmdparams) 462 private void KickUserCommand(string module, string[] cmdparams)
455 { 463 {
456 if (cmdparams.Length < 4) 464 bool force = false;
465
466 OptionSet options = new OptionSet().Add("f|force", delegate (string v) { force = v != null; });
467
468 List<string> mainParams = options.Parse(cmdparams);
469
470 if (mainParams.Count < 4)
457 return; 471 return;
458 472
459 string alert = null; 473 string alert = null;
460 if (cmdparams.Length > 4) 474 if (mainParams.Count > 4)
461 alert = String.Format("\n{0}\n", String.Join(" ", cmdparams, 4, cmdparams.Length - 4)); 475 alert = String.Format("\n{0}\n", String.Join(" ", cmdparams, 4, cmdparams.Length - 4));
462 476
463 IList agents = SceneManager.GetCurrentSceneAvatars(); 477 IList agents = SceneManager.GetCurrentSceneAvatars();
@@ -466,8 +480,8 @@ namespace OpenSim
466 { 480 {
467 RegionInfo regionInfo = presence.Scene.RegionInfo; 481 RegionInfo regionInfo = presence.Scene.RegionInfo;
468 482
469 if (presence.Firstname.ToLower().Contains(cmdparams[2].ToLower()) && 483 if (presence.Firstname.ToLower().Contains(mainParams[2].ToLower()) &&
470 presence.Lastname.ToLower().Contains(cmdparams[3].ToLower())) 484 presence.Lastname.ToLower().Contains(mainParams[3].ToLower()))
471 { 485 {
472 MainConsole.Instance.Output( 486 MainConsole.Instance.Output(
473 String.Format( 487 String.Format(
@@ -480,7 +494,7 @@ namespace OpenSim
480 else 494 else
481 presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n"); 495 presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n");
482 496
483 presence.Scene.IncomingCloseAgent(presence.UUID); 497 presence.Scene.IncomingCloseAgent(presence.UUID, force);
484 } 498 }
485 } 499 }
486 500
@@ -743,33 +757,13 @@ namespace OpenSim
743 switch (cmdparams[0].ToLower()) 757 switch (cmdparams[0].ToLower())
744 { 758 {
745 case "list": 759 case "list":
746 foreach (IRegionModule irm in m_moduleLoader.GetLoadedSharedModules) 760 //TODO: Convert to new region modules
747 {
748 MainConsole.Instance.Output(String.Format("Shared region module: {0}", irm.Name));
749 }
750 break; 761 break;
751 case "unload": 762 case "unload":
752 if (cmdparams.Length > 1) 763 //TODO: Convert to new region modules
753 {
754 foreach (IRegionModule rm in new ArrayList(m_moduleLoader.GetLoadedSharedModules))
755 {
756 if (rm.Name.ToLower() == cmdparams[1].ToLower())
757 {
758 MainConsole.Instance.Output(String.Format("Unloading module: {0}", rm.Name));
759 m_moduleLoader.UnloadModule(rm);
760 }
761 }
762 }
763 break; 764 break;
764 case "load": 765 case "load":
765 if (cmdparams.Length > 1) 766 //TODO: Convert to new region modules
766 {
767 foreach (Scene s in new ArrayList(SceneManager.Scenes))
768 {
769 MainConsole.Instance.Output(String.Format("Loading module: {0}", cmdparams[1]));
770 m_moduleLoader.LoadRegionModules(cmdparams[1], s);
771 }
772 }
773 break; 767 break;
774 } 768 }
775 } 769 }
@@ -922,7 +916,8 @@ namespace OpenSim
922 } 916 }
923 else 917 else
924 { 918 {
925 MainConsole.Instance.Output("Usage: debug scene scripting|collisions|physics|teleport true|false"); 919 MainConsole.Instance.Output(
920 "Usage: debug scene active|scripting|collisions|physics|teleport true|false");
926 } 921 }
927 922
928 break; 923 break;
@@ -1002,56 +997,10 @@ namespace OpenSim
1002 HandleShowCircuits(); 997 HandleShowCircuits();
1003 break; 998 break;
1004 999
1005 case "http-handlers":
1006 System.Text.StringBuilder handlers = new System.Text.StringBuilder("Registered HTTP Handlers:\n");
1007
1008 handlers.AppendFormat("* XMLRPC:\n");
1009 foreach (String s in HttpServer.GetXmlRpcHandlerKeys())
1010 handlers.AppendFormat("\t{0}\n", s);
1011
1012 handlers.AppendFormat("* HTTP:\n");
1013 List<String> poll = HttpServer.GetPollServiceHandlerKeys();
1014 foreach (String s in HttpServer.GetHTTPHandlerKeys())
1015 handlers.AppendFormat("\t{0} {1}\n", s, (poll.Contains(s) ? "(poll service)" : string.Empty));
1016
1017 handlers.AppendFormat("* Agent:\n");
1018 foreach (String s in HttpServer.GetAgentHandlerKeys())
1019 handlers.AppendFormat("\t{0}\n", s);
1020
1021 handlers.AppendFormat("* LLSD:\n");
1022 foreach (String s in HttpServer.GetLLSDHandlerKeys())
1023 handlers.AppendFormat("\t{0}\n", s);
1024
1025 handlers.AppendFormat("* StreamHandlers ({0}):\n", HttpServer.GetStreamHandlerKeys().Count);
1026 foreach (String s in HttpServer.GetStreamHandlerKeys())
1027 handlers.AppendFormat("\t{0}\n", s);
1028
1029 MainConsole.Instance.Output(handlers.ToString());
1030 break;
1031
1032 case "modules": 1000 case "modules":
1033 MainConsole.Instance.Output("The currently loaded shared modules are:");
1034 foreach (IRegionModule module in m_moduleLoader.GetLoadedSharedModules)
1035 {
1036 MainConsole.Instance.Output("Shared Module: " + module.Name);
1037 }
1038
1039 SceneManager.ForEachScene(
1040 delegate(Scene scene) {
1041 m_log.Error("The currently loaded modules in " + scene.RegionInfo.RegionName + " are:");
1042 foreach (IRegionModule module in scene.Modules.Values)
1043 {
1044 if (!module.IsSharedModule)
1045 {
1046 m_log.Error("Region Module: " + module.Name);
1047 }
1048 }
1049 }
1050 );
1051
1052 SceneManager.ForEachScene( 1001 SceneManager.ForEachScene(
1053 delegate(Scene scene) { 1002 delegate(Scene scene) {
1054 MainConsole.Instance.Output("Loaded new region modules in" + scene.RegionInfo.RegionName + " are:"); 1003 MainConsole.Instance.Output("Loaded region modules in" + scene.RegionInfo.RegionName + " are:");
1055 foreach (IRegionModuleBase module in scene.RegionModules.Values) 1004 foreach (IRegionModuleBase module in scene.RegionModules.Values)
1056 { 1005 {
1057 Type type = module.GetType().GetInterface("ISharedRegionModule"); 1006 Type type = module.GetType().GetInterface("ISharedRegionModule");
@@ -1123,7 +1072,7 @@ namespace OpenSim
1123 aCircuit.Name, 1072 aCircuit.Name,
1124 aCircuit.child ? "child" : "root", 1073 aCircuit.child ? "child" : "root",
1125 aCircuit.circuitcode.ToString(), 1074 aCircuit.circuitcode.ToString(),
1126 aCircuit.IPAddress.ToString(), 1075 aCircuit.IPAddress != null ? aCircuit.IPAddress.ToString() : "not set",
1127 aCircuit.Viewer); 1076 aCircuit.Viewer);
1128 }); 1077 });
1129 1078
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index d107b7a..7bef1aa 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -131,14 +131,6 @@ namespace OpenSim
131 get { return m_httpServerPort; } 131 get { return m_httpServerPort; }
132 } 132 }
133 133
134 public ModuleLoader ModuleLoader
135 {
136 get { return m_moduleLoader; }
137 set { m_moduleLoader = value; }
138 }
139
140 protected ModuleLoader m_moduleLoader;
141
142 protected IRegistryCore m_applicationRegistry = new RegistryCore(); 134 protected IRegistryCore m_applicationRegistry = new RegistryCore();
143 135
144 public IRegistryCore ApplicationRegistry 136 public IRegistryCore ApplicationRegistry
@@ -216,27 +208,36 @@ namespace OpenSim
216 IConfig simDataConfig = m_config.Source.Configs["SimulationDataStore"]; 208 IConfig simDataConfig = m_config.Source.Configs["SimulationDataStore"];
217 if (simDataConfig == null) 209 if (simDataConfig == null)
218 throw new Exception("Configuration file is missing the [SimulationDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); 210 throw new Exception("Configuration file is missing the [SimulationDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?");
211
219 string module = simDataConfig.GetString("LocalServiceModule", String.Empty); 212 string module = simDataConfig.GetString("LocalServiceModule", String.Empty);
220 if (String.IsNullOrEmpty(module)) 213 if (String.IsNullOrEmpty(module))
221 throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [SimulationDataStore] section."); 214 throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [SimulationDataStore] section.");
215
222 m_simulationDataService = ServerUtils.LoadPlugin<ISimulationDataService>(module, new object[] { m_config.Source }); 216 m_simulationDataService = ServerUtils.LoadPlugin<ISimulationDataService>(module, new object[] { m_config.Source });
217 if (m_simulationDataService == null)
218 throw new Exception(
219 string.Format(
220 "Could not load an ISimulationDataService implementation from {0}, as configured in the LocalServiceModule parameter of the [SimulationDataStore] config section.",
221 module));
223 222
224 // Load the estate data service 223 // Load the estate data service
225 IConfig estateDataConfig = m_config.Source.Configs["EstateDataStore"]; 224 IConfig estateDataConfig = m_config.Source.Configs["EstateDataStore"];
226 if (estateDataConfig == null) 225 if (estateDataConfig == null)
227 throw new Exception("Configuration file is missing the [EstateDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); 226 throw new Exception("Configuration file is missing the [EstateDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?");
227
228 module = estateDataConfig.GetString("LocalServiceModule", String.Empty); 228 module = estateDataConfig.GetString("LocalServiceModule", String.Empty);
229 if (String.IsNullOrEmpty(module)) 229 if (String.IsNullOrEmpty(module))
230 throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section"); 230 throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section");
231
231 m_estateDataService = ServerUtils.LoadPlugin<IEstateDataService>(module, new object[] { m_config.Source }); 232 m_estateDataService = ServerUtils.LoadPlugin<IEstateDataService>(module, new object[] { m_config.Source });
233 if (m_estateDataService == null)
234 throw new Exception(
235 string.Format(
236 "Could not load an IEstateDataService implementation from {0}, as configured in the LocalServiceModule parameter of the [EstateDataStore] config section.",
237 module));
232 238
233 base.StartupSpecific(); 239 base.StartupSpecific();
234 240
235 m_stats = StatsManager.SimExtraStats;
236
237 // Create a ModuleLoader instance
238 m_moduleLoader = new ModuleLoader(m_config.Source);
239
240 LoadPlugins(); 241 LoadPlugins();
241 242
242 if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch! 243 if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch!
@@ -249,51 +250,51 @@ namespace OpenSim
249 plugin.PostInitialise(); 250 plugin.PostInitialise();
250 } 251 }
251 252
252 AddPluginCommands(); 253 if (m_console != null)
254 {
255 StatsManager.RegisterConsoleCommands(m_console);
256 AddPluginCommands(m_console);
257 }
253 } 258 }
254 259
255 protected virtual void AddPluginCommands() 260 protected virtual void AddPluginCommands(CommandConsole console)
256 { 261 {
257 // If console exists add plugin commands. 262 List<string> topics = GetHelpTopics();
258 if (m_console != null)
259 {
260 List<string> topics = GetHelpTopics();
261 263
262 foreach (string topic in topics) 264 foreach (string topic in topics)
263 { 265 {
264 string capitalizedTopic = char.ToUpper(topic[0]) + topic.Substring(1); 266 string capitalizedTopic = char.ToUpper(topic[0]) + topic.Substring(1);
265 267
266 // This is a hack to allow the user to enter the help command in upper or lowercase. This will go 268 // This is a hack to allow the user to enter the help command in upper or lowercase. This will go
267 // away at some point. 269 // away at some point.
268 m_console.Commands.AddCommand(capitalizedTopic, false, "help " + topic, 270 console.Commands.AddCommand(capitalizedTopic, false, "help " + topic,
269 "help " + capitalizedTopic, 271 "help " + capitalizedTopic,
270 "Get help on plugin command '" + topic + "'", 272 "Get help on plugin command '" + topic + "'",
271 HandleCommanderHelp); 273 HandleCommanderHelp);
272 m_console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic, 274 console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic,
273 "help " + capitalizedTopic, 275 "help " + capitalizedTopic,
274 "Get help on plugin command '" + topic + "'", 276 "Get help on plugin command '" + topic + "'",
275 HandleCommanderHelp); 277 HandleCommanderHelp);
276 278
277 ICommander commander = null; 279 ICommander commander = null;
278 280
279 Scene s = SceneManager.CurrentOrFirstScene; 281 Scene s = SceneManager.CurrentOrFirstScene;
280 282
281 if (s != null && s.GetCommanders() != null) 283 if (s != null && s.GetCommanders() != null)
282 { 284 {
283 if (s.GetCommanders().ContainsKey(topic)) 285 if (s.GetCommanders().ContainsKey(topic))
284 commander = s.GetCommanders()[topic]; 286 commander = s.GetCommanders()[topic];
285 } 287 }
286 288
287 if (commander == null) 289 if (commander == null)
288 continue; 290 continue;
289 291
290 foreach (string command in commander.Commands.Keys) 292 foreach (string command in commander.Commands.Keys)
291 { 293 {
292 m_console.Commands.AddCommand(capitalizedTopic, false, 294 console.Commands.AddCommand(capitalizedTopic, false,
293 topic + " " + command, 295 topic + " " + command,
294 topic + " " + commander.Commands[command].ShortHelp(), 296 topic + " " + commander.Commands[command].ShortHelp(),
295 String.Empty, HandleCommanderCommand); 297 String.Empty, HandleCommanderCommand);
296 }
297 } 298 }
298 } 299 }
299 } 300 }
@@ -387,12 +388,6 @@ namespace OpenSim
387 388
388 m_log.Info("[MODULES]: Loading Region's modules (old style)"); 389 m_log.Info("[MODULES]: Loading Region's modules (old style)");
389 390
390 List<IRegionModule> modules = m_moduleLoader.PickupModules(scene, ".");
391
392 // This needs to be ahead of the script engine load, so the
393 // script module can pick up events exposed by a module
394 m_moduleLoader.InitialiseSharedModules(scene);
395
396 // Use this in the future, the line above will be deprecated soon 391 // Use this in the future, the line above will be deprecated soon
397 m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)"); 392 m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)");
398 IRegionModulesController controller; 393 IRegionModulesController controller;
@@ -402,28 +397,29 @@ namespace OpenSim
402 } 397 }
403 else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing..."); 398 else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing...");
404 399
405 if (m_securePermissionsLoading) 400 // XPTO: Fix this
406 { 401// if (m_securePermissionsLoading)
407 foreach (string s in m_permsModules) 402// {
408 { 403// foreach (string s in m_permsModules)
409 if (!scene.RegionModules.ContainsKey(s)) 404// {
410 { 405// if (!scene.RegionModules.ContainsKey(s))
411 bool found = false; 406// {
412 foreach (IRegionModule m in modules) 407// bool found = false;
413 { 408// foreach (IRegionModule m in modules)
414 if (m.Name == s) 409// {
415 { 410// if (m.Name == s)
416 found = true; 411// {
417 } 412// found = true;
418 } 413// }
419 if (!found) 414// }
420 { 415// if (!found)
421 m_log.Fatal("[MODULES]: Required module " + s + " not found."); 416// {
422 Environment.Exit(0); 417// m_log.Fatal("[MODULES]: Required module " + s + " not found.");
423 } 418// Environment.Exit(0);
424 } 419// }
425 } 420// }
426 } 421// }
422// }
427 423
428 scene.SetModuleInterfaces(); 424 scene.SetModuleInterfaces();
429// First Step of bootreport sequence 425// First Step of bootreport sequence
@@ -500,13 +496,6 @@ namespace OpenSim
500 { 496 {
501 scene.SnmpService.BootInfo("Initializing region modules", scene); 497 scene.SnmpService.BootInfo("Initializing region modules", scene);
502 } 498 }
503 if (do_post_init)
504 {
505 foreach (IRegionModule module in modules)
506 {
507 module.PostInitialise();
508 }
509 }
510 scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; 499 scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); };
511 500
512 mscene = scene; 501 mscene = scene;
@@ -623,7 +612,7 @@ namespace OpenSim
623 if (account == null) 612 if (account == null)
624 { 613 {
625 m_log.ErrorFormat( 614 m_log.ErrorFormat(
626 "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first."); 615 "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first at the grid level.");
627 } 616 }
628 else 617 else
629 { 618 {
@@ -807,7 +796,7 @@ namespace OpenSim
807 796
808 return new Scene( 797 return new Scene(
809 regionInfo, circuitManager, sceneGridService, 798 regionInfo, circuitManager, sceneGridService,
810 simDataService, estateDataService, m_moduleLoader, false, 799 simDataService, estateDataService, false,
811 m_config.Source, m_version); 800 m_config.Source, m_version);
812 } 801 }
813 802