diff options
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r-- | OpenSim/Region/Application/Application.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 38 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 92 |
3 files changed, 120 insertions, 11 deletions
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index bf34419..e441cc8 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs | |||
@@ -75,6 +75,7 @@ namespace OpenSim | |||
75 | new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); | 75 | new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); |
76 | 76 | ||
77 | ServicePointManager.DefaultConnectionLimit = 12; | 77 | ServicePointManager.DefaultConnectionLimit = 12; |
78 | ServicePointManager.UseNagleAlgorithm = false; | ||
78 | 79 | ||
79 | // Add the arguments supplied when running the application to the configuration | 80 | // Add the arguments supplied when running the application to the configuration |
80 | ArgvConfigSource configSource = new ArgvConfigSource(args); | 81 | ArgvConfigSource configSource = new ArgvConfigSource(args); |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 5af8194..a350510 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -109,13 +109,19 @@ namespace OpenSim | |||
109 | m_timeInterval = startupConfig.GetInt("timer_Interval", 1200); | 109 | m_timeInterval = startupConfig.GetInt("timer_Interval", 1200); |
110 | } | 110 | } |
111 | 111 | ||
112 | AvatarWearable.MAX_WEARABLES = startupConfig.GetInt("max_wearables", AvatarWearable.MAX_WEARABLES); | ||
112 | string asyncCallMethodStr = startupConfig.GetString("async_call_method", String.Empty); | 113 | string asyncCallMethodStr = startupConfig.GetString("async_call_method", String.Empty); |
113 | FireAndForgetMethod asyncCallMethod; | 114 | FireAndForgetMethod asyncCallMethod; |
114 | if (!String.IsNullOrEmpty(asyncCallMethodStr) && Utils.EnumTryParse<FireAndForgetMethod>(asyncCallMethodStr, out asyncCallMethod)) | 115 | if (!String.IsNullOrEmpty(asyncCallMethodStr) && Utils.EnumTryParse<FireAndForgetMethod>(asyncCallMethodStr, out asyncCallMethod)) |
115 | Util.FireAndForgetMethod = asyncCallMethod; | 116 | Util.FireAndForgetMethod = asyncCallMethod; |
116 | 117 | ||
118 | <<<<<<< HEAD | ||
117 | stpMinThreads = startupConfig.GetInt("MinPoolThreads", 15); | 119 | stpMinThreads = startupConfig.GetInt("MinPoolThreads", 15); |
118 | stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 300); | 120 | stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 300); |
121 | ======= | ||
122 | stpMinThreads = startupConfig.GetInt("MinPoolThreads", 2 ); | ||
123 | stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 25); | ||
124 | >>>>>>> avn/ubitvar | ||
119 | m_consolePrompt = startupConfig.GetString("ConsolePrompt", @"Region (\R) "); | 125 | m_consolePrompt = startupConfig.GetString("ConsolePrompt", @"Region (\R) "); |
120 | } | 126 | } |
121 | 127 | ||
@@ -267,12 +273,20 @@ namespace OpenSim | |||
267 | SavePrimsXml2); | 273 | SavePrimsXml2); |
268 | 274 | ||
269 | m_console.Commands.AddCommand("Archiving", false, "load oar", | 275 | m_console.Commands.AddCommand("Archiving", false, "load oar", |
276 | <<<<<<< HEAD | ||
277 | ======= | ||
278 | |||
279 | >>>>>>> avn/ubitvar | ||
270 | "load oar [--merge] [--skip-assets]" | 280 | "load oar [--merge] [--skip-assets]" |
271 | + " [--default-user \"User Name\"]" | 281 | + " [--default-user \"User Name\"]" |
272 | + " [--force-terrain] [--force-parcels]" | 282 | + " [--force-terrain] [--force-parcels]" |
273 | + " [--no-objects]" | 283 | + " [--no-objects]" |
274 | + " [--rotation degrees] [--rotation-center \"<x,y,z>\"]" | 284 | + " [--rotation degrees] [--rotation-center \"<x,y,z>\"]" |
285 | <<<<<<< HEAD | ||
275 | + " [--displacement \"<x,y,z>\"]" | 286 | + " [--displacement \"<x,y,z>\"]" |
287 | ======= | ||
288 | + " [--displacement \"<x,y,z>\"]" | ||
289 | >>>>>>> avn/ubitvar | ||
276 | + " [<OAR path>]", | 290 | + " [<OAR path>]", |
277 | "Load a region's data from an OAR archive.", | 291 | "Load a region's data from an OAR archive.", |
278 | "--merge will merge the OAR with the existing scene (suppresses terrain and parcel info loading).\n" | 292 | "--merge will merge the OAR with the existing scene (suppresses terrain and parcel info loading).\n" |
@@ -500,7 +514,7 @@ namespace OpenSim | |||
500 | if (alert != null) | 514 | if (alert != null) |
501 | presence.ControllingClient.Kick(alert); | 515 | presence.ControllingClient.Kick(alert); |
502 | else | 516 | else |
503 | presence.ControllingClient.Kick("\nThe OpenSim manager kicked you out.\n"); | 517 | presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n"); |
504 | 518 | ||
505 | presence.Scene.CloseAgent(presence.UUID, force); | 519 | presence.Scene.CloseAgent(presence.UUID, force); |
506 | break; | 520 | break; |
@@ -1028,15 +1042,25 @@ namespace OpenSim | |||
1028 | cdt.AddColumn("Circuit code", 12); | 1042 | cdt.AddColumn("Circuit code", 12); |
1029 | cdt.AddColumn("Endpoint", 23); | 1043 | cdt.AddColumn("Endpoint", 23); |
1030 | cdt.AddColumn("Active?", 7); | 1044 | cdt.AddColumn("Active?", 7); |
1045 | cdt.AddColumn("ChildAgent?", 7); | ||
1046 | cdt.AddColumn("ping(ms)", 8); | ||
1031 | 1047 | ||
1032 | SceneManager.ForEachScene( | 1048 | SceneManager.ForEachScene( |
1033 | s => s.ForEachClient( | 1049 | s => s.ForEachClient( |
1034 | c => cdt.AddRow( | 1050 | c => |
1035 | s.Name, | 1051 | { |
1036 | c.Name, | 1052 | bool child = false; |
1037 | c.CircuitCode.ToString(), | 1053 | if(c.SceneAgent != null && c.SceneAgent.IsChildAgent) |
1038 | c.RemoteEndPoint.ToString(), | 1054 | child = true; |
1039 | c.IsActive.ToString()))); | 1055 | cdt.AddRow( |
1056 | s.Name, | ||
1057 | c.Name, | ||
1058 | c.CircuitCode.ToString(), | ||
1059 | c.RemoteEndPoint.ToString(), | ||
1060 | c.IsActive.ToString(), | ||
1061 | child.ToString(), | ||
1062 | c.PingTimeMS); | ||
1063 | })); | ||
1040 | 1064 | ||
1041 | MainConsole.Instance.Output(cdt.ToString()); | 1065 | MainConsole.Instance.Output(cdt.ToString()); |
1042 | } | 1066 | } |
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 3be411a..760decd 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -112,6 +112,10 @@ namespace OpenSim | |||
112 | 112 | ||
113 | public List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); | 113 | public List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); |
114 | 114 | ||
115 | private List<string> m_permsModules; | ||
116 | |||
117 | private bool m_securePermissionsLoading = true; | ||
118 | |||
115 | /// <value> | 119 | /// <value> |
116 | /// The config information passed into the OpenSimulator region server. | 120 | /// The config information passed into the OpenSimulator region server. |
117 | /// </value> | 121 | /// </value> |
@@ -228,6 +232,14 @@ namespace OpenSim | |||
228 | CreatePIDFile(pidFile); | 232 | CreatePIDFile(pidFile); |
229 | 233 | ||
230 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); | 234 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); |
235 | |||
236 | m_securePermissionsLoading = startupConfig.GetBoolean("SecurePermissionsLoading", true); | ||
237 | |||
238 | string permissionModules = Util.GetConfigVarFromSections<string>(Config, "permissionmodules", | ||
239 | new string[] { "Startup", "Permissions" }, "DefaultPermissionsModule"); | ||
240 | |||
241 | m_permsModules = new List<string>(permissionModules.Split(',')); | ||
242 | |||
231 | managedStatsURI = startupConfig.GetString("ManagedStatsRemoteFetchURI", String.Empty); | 243 | managedStatsURI = startupConfig.GetString("ManagedStatsRemoteFetchURI", String.Empty); |
232 | } | 244 | } |
233 | 245 | ||
@@ -264,11 +276,21 @@ namespace OpenSim | |||
264 | 276 | ||
265 | base.StartupSpecific(); | 277 | base.StartupSpecific(); |
266 | 278 | ||
279 | <<<<<<< HEAD | ||
267 | if (EnableInitialPluginLoad) | 280 | if (EnableInitialPluginLoad) |
268 | LoadPlugins(); | 281 | LoadPlugins(); |
269 | 282 | ||
270 | // We still want to post initalize any plugins even if loading has been disabled since a test may have | 283 | // We still want to post initalize any plugins even if loading has been disabled since a test may have |
271 | // inserted them manually. | 284 | // inserted them manually. |
285 | ======= | ||
286 | LoadPlugins(); | ||
287 | |||
288 | if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch! | ||
289 | { | ||
290 | Environment.Exit(1); | ||
291 | } | ||
292 | |||
293 | >>>>>>> avn/ubitvar | ||
272 | foreach (IApplicationPlugin plugin in m_plugins) | 294 | foreach (IApplicationPlugin plugin in m_plugins) |
273 | plugin.PostInitialise(); | 295 | plugin.PostInitialise(); |
274 | 296 | ||
@@ -290,10 +312,10 @@ namespace OpenSim | |||
290 | "help " + capitalizedTopic, | 312 | "help " + capitalizedTopic, |
291 | "Get help on plugin command '" + topic + "'", | 313 | "Get help on plugin command '" + topic + "'", |
292 | HandleCommanderHelp); | 314 | HandleCommanderHelp); |
293 | console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic, | 315 | // console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic, |
294 | "help " + capitalizedTopic, | 316 | // "help " + capitalizedTopic, |
295 | "Get help on plugin command '" + topic + "'", | 317 | // "Get help on plugin command '" + topic + "'", |
296 | HandleCommanderHelp); | 318 | // HandleCommanderHelp); |
297 | 319 | ||
298 | ICommander commander = null; | 320 | ICommander commander = null; |
299 | 321 | ||
@@ -420,7 +442,32 @@ namespace OpenSim | |||
420 | } | 442 | } |
421 | else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing..."); | 443 | else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing..."); |
422 | 444 | ||
445 | if (m_securePermissionsLoading) | ||
446 | { | ||
447 | foreach (string s in m_permsModules) | ||
448 | { | ||
449 | if (!scene.RegionModules.ContainsKey(s)) | ||
450 | { | ||
451 | m_log.Fatal("[MODULES]: Required module " + s + " not found."); | ||
452 | Environment.Exit(0); | ||
453 | } | ||
454 | } | ||
455 | |||
456 | m_log.InfoFormat("[SCENE]: Secure permissions loading enabled, modules loaded: {0}", String.Join(" ", m_permsModules.ToArray())); | ||
457 | } | ||
458 | |||
423 | scene.SetModuleInterfaces(); | 459 | scene.SetModuleInterfaces(); |
460 | // First Step of bootreport sequence | ||
461 | if (scene.SnmpService != null) | ||
462 | { | ||
463 | scene.SnmpService.ColdStart(1,scene); | ||
464 | scene.SnmpService.LinkDown(scene); | ||
465 | } | ||
466 | |||
467 | if (scene.SnmpService != null) | ||
468 | { | ||
469 | scene.SnmpService.BootInfo("Loading prins", scene); | ||
470 | } | ||
424 | 471 | ||
425 | while (regionInfo.EstateSettings.EstateOwner == UUID.Zero && MainConsole.Instance != null) | 472 | while (regionInfo.EstateSettings.EstateOwner == UUID.Zero && MainConsole.Instance != null) |
426 | SetUpEstateOwner(scene); | 473 | SetUpEstateOwner(scene); |
@@ -434,6 +481,11 @@ namespace OpenSim | |||
434 | scene.loadAllLandObjectsFromStorage(regionInfo.originRegionID); | 481 | scene.loadAllLandObjectsFromStorage(regionInfo.originRegionID); |
435 | scene.EventManager.TriggerParcelPrimCountUpdate(); | 482 | scene.EventManager.TriggerParcelPrimCountUpdate(); |
436 | 483 | ||
484 | if (scene.SnmpService != null) | ||
485 | { | ||
486 | scene.SnmpService.BootInfo("Grid Registration in progress", scene); | ||
487 | } | ||
488 | |||
437 | try | 489 | try |
438 | { | 490 | { |
439 | scene.RegisterRegionWithGrid(); | 491 | scene.RegisterRegionWithGrid(); |
@@ -444,15 +496,29 @@ namespace OpenSim | |||
444 | "[STARTUP]: Registration of region with grid failed, aborting startup due to {0} {1}", | 496 | "[STARTUP]: Registration of region with grid failed, aborting startup due to {0} {1}", |
445 | e.Message, e.StackTrace); | 497 | e.Message, e.StackTrace); |
446 | 498 | ||
499 | if (scene.SnmpService != null) | ||
500 | { | ||
501 | scene.SnmpService.Critical("Grid registration failed. Startup aborted.", scene); | ||
502 | } | ||
447 | // Carrying on now causes a lot of confusion down the | 503 | // Carrying on now causes a lot of confusion down the |
448 | // line - we need to get the user's attention | 504 | // line - we need to get the user's attention |
449 | Environment.Exit(1); | 505 | Environment.Exit(1); |
450 | } | 506 | } |
451 | 507 | ||
508 | if (scene.SnmpService != null) | ||
509 | { | ||
510 | scene.SnmpService.BootInfo("Grid Registration done", scene); | ||
511 | } | ||
512 | |||
452 | // We need to do this after we've initialized the | 513 | // We need to do this after we've initialized the |
453 | // scripting engines. | 514 | // scripting engines. |
454 | scene.CreateScriptInstances(); | 515 | scene.CreateScriptInstances(); |
455 | 516 | ||
517 | if (scene.SnmpService != null) | ||
518 | { | ||
519 | scene.SnmpService.BootInfo("ScriptEngine started", scene); | ||
520 | } | ||
521 | |||
456 | SceneManager.Add(scene); | 522 | SceneManager.Add(scene); |
457 | 523 | ||
458 | if (m_autoCreateClientStack) | 524 | if (m_autoCreateClientStack) |
@@ -464,10 +530,20 @@ namespace OpenSim | |||
464 | } | 530 | } |
465 | } | 531 | } |
466 | 532 | ||
533 | if (scene.SnmpService != null) | ||
534 | { | ||
535 | scene.SnmpService.BootInfo("Initializing region modules", scene); | ||
536 | } | ||
467 | scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; | 537 | scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; |
468 | 538 | ||
469 | mscene = scene; | 539 | mscene = scene; |
470 | 540 | ||
541 | if (scene.SnmpService != null) | ||
542 | { | ||
543 | scene.SnmpService.BootInfo("The region is operational", scene); | ||
544 | scene.SnmpService.LinkUp(scene); | ||
545 | } | ||
546 | |||
471 | return clientServers; | 547 | return clientServers; |
472 | } | 548 | } |
473 | 549 | ||
@@ -583,6 +659,11 @@ namespace OpenSim | |||
583 | private void ShutdownRegion(Scene scene) | 659 | private void ShutdownRegion(Scene scene) |
584 | { | 660 | { |
585 | m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName); | 661 | m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName); |
662 | if (scene.SnmpService != null) | ||
663 | { | ||
664 | scene.SnmpService.BootInfo("The region is shutting down", scene); | ||
665 | scene.SnmpService.LinkDown(scene); | ||
666 | } | ||
586 | IRegionModulesController controller; | 667 | IRegionModulesController controller; |
587 | if (ApplicationRegistry.TryGet<IRegionModulesController>(out controller)) | 668 | if (ApplicationRegistry.TryGet<IRegionModulesController>(out controller)) |
588 | { | 669 | { |
@@ -751,7 +832,10 @@ namespace OpenSim | |||
751 | { | 832 | { |
752 | Vector3 regionExtent = new Vector3(regionInfo.RegionSizeX, regionInfo.RegionSizeY, regionInfo.RegionSizeZ); | 833 | Vector3 regionExtent = new Vector3(regionInfo.RegionSizeX, regionInfo.RegionSizeY, regionInfo.RegionSizeZ); |
753 | PhysicsScene physicsScene = GetPhysicsScene(regionInfo.RegionName, regionExtent); | 834 | PhysicsScene physicsScene = GetPhysicsScene(regionInfo.RegionName, regionExtent); |
835 | <<<<<<< HEAD | ||
754 | 836 | ||
837 | ======= | ||
838 | >>>>>>> avn/ubitvar | ||
755 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); | 839 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); |
756 | 840 | ||
757 | return new Scene( | 841 | return new Scene( |