aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs19
1 files changed, 6 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index cd4b14d..a432b6f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1135,9 +1135,8 @@ namespace OpenSim.Region.Framework.Scenes
1135 1135
1136 // Kick all ROOT agents with the message, 'The simulator is going down' 1136 // Kick all ROOT agents with the message, 'The simulator is going down'
1137 ForEachScenePresence(delegate(ScenePresence avatar) 1137 ForEachScenePresence(delegate(ScenePresence avatar)
1138 { 1138 {
1139 if (avatar.KnownChildRegionHandles.Contains(RegionInfo.RegionHandle)) 1139 avatar.RemoveNeighbourRegion(RegionInfo.RegionHandle);
1140 avatar.KnownChildRegionHandles.Remove(RegionInfo.RegionHandle);
1141 1140
1142 if (!avatar.IsChildAgent) 1141 if (!avatar.IsChildAgent)
1143 avatar.ControllingClient.Kick("The simulator is going down."); 1142 avatar.ControllingClient.Kick("The simulator is going down.");
@@ -3225,14 +3224,8 @@ namespace OpenSim.Region.Framework.Scenes
3225 avatar.Scene.NeedSceneCacheClear(avatar.UUID); 3224 avatar.Scene.NeedSceneCacheClear(avatar.UUID);
3226 3225
3227 if (closeChildAgents && !avatar.IsChildAgent) 3226 if (closeChildAgents && !avatar.IsChildAgent)
3228 { 3227 {
3229 //List<ulong> childknownRegions = new List<ulong>(); 3228 List<ulong> regions = avatar.KnownRegionHandles;
3230 //List<ulong> ckn = avatar.KnownChildRegionHandles;
3231 //for (int i = 0; i < ckn.Count; i++)
3232 //{
3233 // childknownRegions.Add(ckn[i]);
3234 //}
3235 List<ulong> regions = new List<ulong>(avatar.KnownChildRegionHandles);
3236 regions.Remove(RegionInfo.RegionHandle); 3229 regions.Remove(RegionInfo.RegionHandle);
3237 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions); 3230 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
3238 } 3231 }
@@ -3313,7 +3306,7 @@ namespace OpenSim.Region.Framework.Scenes
3313 { 3306 {
3314 for (int i = 0; i < regionslst.Count; i++) 3307 for (int i = 0; i < regionslst.Count; i++)
3315 { 3308 {
3316 av.KnownChildRegionHandles.Remove(regionslst[i]); 3309 av.RemoveNeighbourRegion(regionslst[i]);
3317 } 3310 }
3318 } 3311 }
3319 } 3312 }
@@ -3827,7 +3820,7 @@ namespace OpenSim.Region.Framework.Scenes
3827 3820
3828 if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId || (parsedsecret && RegionSecret == localRegionSecret)) 3821 if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId || (parsedsecret && RegionSecret == localRegionSecret))
3829 { 3822 {
3830 m_sceneGridService.SendCloseChildAgentConnections(loggingOffUser.UUID, new List<ulong>(loggingOffUser.KnownRegions.Keys)); 3823 m_sceneGridService.SendCloseChildAgentConnections(loggingOffUser.UUID, loggingOffUser.KnownRegionHandles);
3831 loggingOffUser.ControllingClient.Kick(message); 3824 loggingOffUser.ControllingClient.Kick(message);
3832 // Give them a second to receive the message! 3825 // Give them a second to receive the message!
3833 Thread.Sleep(1000); 3826 Thread.Sleep(1000);