aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-12 00:38:57 +0000
committerTeravus Ovares2007-12-12 00:38:57 +0000
commit9abe4b2ebf537d32b0b01d404497f290a4f4f806 (patch)
tree63c12f570f5e82ccc54b99a805c41ce84abeba65 /OpenSim/Region/Environment
parentput in a try block to catch the ForEach loop dying. (diff)
downloadopensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.zip
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.gz
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.bz2
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.xz
* Start listening for client connections immediately after a region initializes during initial instance startup. (as opposed to waiting for 'all of the regions' to initialize first)
* Removed hackish timer based client notification about regions up (no longer needed) * Added a comment about an inventory based login failure that causes me lots of greif testing and debugging. Comment includes *why* it's failing.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs26
2 files changed, 26 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
index 979df59..86ddfaf 100644
--- a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
+++ b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
@@ -55,7 +55,14 @@ namespace OpenSim.Region.Environment.Modules
55 byte[] visualParams; 55 byte[] visualParams;
56 GetDefaultAvatarAppearance(out wearables, out visualParams); 56 GetDefaultAvatarAppearance(out wearables, out visualParams);
57 appearance = new AvatarAppearance(avatarId, wearables, visualParams); 57 appearance = new AvatarAppearance(avatarId, wearables, visualParams);
58 m_avatarsAppearance[avatarId] = appearance; 58 try
59 {
60 m_avatarsAppearance[avatarId] = appearance;
61 }
62 catch (System.NullReferenceException)
63 {
64 OpenSim.Framework.Console.MainLog.Instance.Error("AVATAR", "Unable to load appearance for uninitialized avatar");
65 }
59 return true; 66 return true;
60 } 67 }
61 } 68 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index fef02f0..f2b5643 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -313,17 +313,27 @@ namespace OpenSim.Region.Environment.Scenes
313 } 313 }
314 if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) 314 if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1))
315 { 315 {
316 lock (m_regionRestartNotifyList) 316 try
317 { 317 {
318 if (!(m_regionRestartNotifyList.Contains(otherRegion)))
319 {
320 m_regionRestartNotifyList.Add(otherRegion);
321 318
322 m_restartWaitTimer.Interval = 50000; 319 ForEachScenePresence(delegate(ScenePresence agent)
323 m_restartWaitTimer.AutoReset = false; 320 {
324 m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed); 321 // If agent is a root agent.
325 m_restartWaitTimer.Start(); 322 if (!agent.IsChildAgent)
323 {
324 //agent.ControllingClient.new
325 //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo());
326 InformClientOfNeighbor(agent, otherRegion);
327 }
326 } 328 }
329
330 );
331 }
332 catch (System.NullReferenceException)
333 {
334 // This means that we're not booted up completely yet.
335 // This shouldn't happen too often anymore.
336 MainLog.Instance.Error("SCENE", "Couldn't inform client of regionup because we got a null reference exception");
327 } 337 }
328 } 338 }
329 else 339 else