aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application/OpenSimBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application/OpenSimBase.cs')
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs76
1 files changed, 76 insertions, 0 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 74ad168..c5ee385 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -88,6 +88,10 @@ namespace OpenSim
88 88
89 protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); 89 protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>();
90 90
91 private List<string> m_permsModules;
92
93 private bool m_securePermissionsLoading = true;
94
91 /// <value> 95 /// <value>
92 /// The config information passed into the OpenSimulator region server. 96 /// The config information passed into the OpenSimulator region server.
93 /// </value> 97 /// </value>
@@ -185,6 +189,11 @@ namespace OpenSim
185 CreatePIDFile(pidFile); 189 CreatePIDFile(pidFile);
186 190
187 userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); 191 userStatsURI = startupConfig.GetString("Stats_URI", String.Empty);
192
193 m_securePermissionsLoading = startupConfig.GetBoolean("SecurePermissionsLoading", true);
194
195 string permissionModules = startupConfig.GetString("permissionmodules", "DefaultPermissionsModule");
196 m_permsModules = new List<string>(permissionModules.Split(','));
188 } 197 }
189 198
190 // Load the simulation data service 199 // Load the simulation data service
@@ -360,7 +369,41 @@ namespace OpenSim
360 } 369 }
361 else m_log.Error("[MODULES]: The new RegionModulesController is missing..."); 370 else m_log.Error("[MODULES]: The new RegionModulesController is missing...");
362 371
372 if (m_securePermissionsLoading)
373 {
374 foreach (string s in m_permsModules)
375 {
376 if (!scene.RegionModules.ContainsKey(s))
377 {
378 bool found = false;
379 foreach (IRegionModule m in modules)
380 {
381 if (m.Name == s)
382 {
383 found = true;
384 }
385 }
386 if (!found)
387 {
388 m_log.Fatal("[MODULES]: Required module " + s + " not found.");
389 Environment.Exit(0);
390 }
391 }
392 }
393 }
394
363 scene.SetModuleInterfaces(); 395 scene.SetModuleInterfaces();
396// First Step of bootreport sequence
397 if (scene.SnmpService != null)
398 {
399 scene.SnmpService.ColdStart(1,scene);
400 scene.SnmpService.LinkDown(scene);
401 }
402
403 if (scene.SnmpService != null)
404 {
405 scene.SnmpService.BootInfo("Loading prins", scene);
406 }
364 407
365 // Prims have to be loaded after module configuration since some modules may be invoked during the load 408 // Prims have to be loaded after module configuration since some modules may be invoked during the load
366 scene.LoadPrimsFromStorage(regionInfo.originRegionID); 409 scene.LoadPrimsFromStorage(regionInfo.originRegionID);
@@ -368,6 +411,10 @@ namespace OpenSim
368 // TODO : Try setting resource for region xstats here on scene 411 // TODO : Try setting resource for region xstats here on scene
369 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); 412 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo));
370 413
414 if (scene.SnmpService != null)
415 {
416 scene.SnmpService.BootInfo("Grid Registration in progress", scene);
417 }
371 try 418 try
372 { 419 {
373 scene.RegisterRegionWithGrid(); 420 scene.RegisterRegionWithGrid();
@@ -378,11 +425,20 @@ namespace OpenSim
378 "[STARTUP]: Registration of region with grid failed, aborting startup due to {0} {1}", 425 "[STARTUP]: Registration of region with grid failed, aborting startup due to {0} {1}",
379 e.Message, e.StackTrace); 426 e.Message, e.StackTrace);
380 427
428 if (scene.SnmpService != null)
429 {
430 scene.SnmpService.Critical("Grid registration failed. Startup aborted.", scene);
431 }
381 // Carrying on now causes a lot of confusion down the 432 // Carrying on now causes a lot of confusion down the
382 // line - we need to get the user's attention 433 // line - we need to get the user's attention
383 Environment.Exit(1); 434 Environment.Exit(1);
384 } 435 }
385 436
437 if (scene.SnmpService != null)
438 {
439 scene.SnmpService.BootInfo("Grid Registration done", scene);
440 }
441
386 scene.loadAllLandObjectsFromStorage(regionInfo.originRegionID); 442 scene.loadAllLandObjectsFromStorage(regionInfo.originRegionID);
387 scene.EventManager.TriggerParcelPrimCountUpdate(); 443 scene.EventManager.TriggerParcelPrimCountUpdate();
388 444
@@ -390,6 +446,11 @@ namespace OpenSim
390 // scripting engines. 446 // scripting engines.
391 scene.CreateScriptInstances(); 447 scene.CreateScriptInstances();
392 448
449 if (scene.SnmpService != null)
450 {
451 scene.SnmpService.BootInfo("ScriptEngine started", scene);
452 }
453
393 m_sceneManager.Add(scene); 454 m_sceneManager.Add(scene);
394 455
395 if (m_autoCreateClientStack) 456 if (m_autoCreateClientStack)
@@ -398,6 +459,10 @@ namespace OpenSim
398 clientServer.Start(); 459 clientServer.Start();
399 } 460 }
400 461
462 if (scene.SnmpService != null)
463 {
464 scene.SnmpService.BootInfo("Initializing region modules", scene);
465 }
401 if (do_post_init) 466 if (do_post_init)
402 { 467 {
403 foreach (IRegionModule module in modules) 468 foreach (IRegionModule module in modules)
@@ -409,6 +474,12 @@ namespace OpenSim
409 474
410 mscene = scene; 475 mscene = scene;
411 476
477 if (scene.SnmpService != null)
478 {
479 scene.SnmpService.BootInfo("The region is operational", scene);
480 scene.SnmpService.LinkUp(scene);
481 }
482
412 scene.StartTimer(); 483 scene.StartTimer();
413 484
414 return clientServer; 485 return clientServer;
@@ -417,6 +488,11 @@ namespace OpenSim
417 private void ShutdownRegion(Scene scene) 488 private void ShutdownRegion(Scene scene)
418 { 489 {
419 m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName); 490 m_log.DebugFormat("[SHUTDOWN]: Shutting down region {0}", scene.RegionInfo.RegionName);
491 if (scene.SnmpService != null)
492 {
493 scene.SnmpService.BootInfo("The region is shutting down", scene);
494 scene.SnmpService.LinkDown(scene);
495 }
420 IRegionModulesController controller; 496 IRegionModulesController controller;
421 if (ApplicationRegistry.TryGet<IRegionModulesController>(out controller)) 497 if (ApplicationRegistry.TryGet<IRegionModulesController>(out controller))
422 { 498 {