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.cs31
1 files changed, 17 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 939c8fa..17503b1 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -940,7 +940,7 @@ namespace OpenSim.Region.Framework.Scenes
940 else 940 else
941 { 941 {
942 m_log.InfoFormat( 942 m_log.InfoFormat(
943 "[INTERGRID]: Got notice about far away Region: {0} at ({1}, {2})", 943 "[SCENE]: Got notice about far away Region: {0} at ({1}, {2})",
944 otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); 944 otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY);
945 } 945 }
946 } 946 }
@@ -3235,6 +3235,22 @@ namespace OpenSim.Region.Framework.Scenes
3235 { 3235 {
3236 isChildAgent = avatar.IsChildAgent; 3236 isChildAgent = avatar.IsChildAgent;
3237 3237
3238 // Don't do this to root agents, it's not nice for the viewer
3239 if (closeChildAgents && isChildAgent)
3240 {
3241 // Tell a single agent to disconnect from the region.
3242 IEventQueue eq = RequestModuleInterface<IEventQueue>();
3243 if (eq != null)
3244 {
3245 eq.DisableSimulator(RegionInfo.RegionHandle, avatar.UUID);
3246 }
3247 else
3248 {
3249 avatar.ControllingClient.SendShutdownConnectionNotice();
3250 }
3251 }
3252
3253 // Only applies to root agents.
3238 if (avatar.ParentID != 0) 3254 if (avatar.ParentID != 0)
3239 { 3255 {
3240 avatar.StandUp(); 3256 avatar.StandUp();
@@ -4033,19 +4049,6 @@ namespace OpenSim.Region.Framework.Scenes
4033 m_sceneGraph.removeUserCount(true); 4049 m_sceneGraph.removeUserCount(true);
4034 } 4050 }
4035 4051
4036 // Don't do this to root agents on logout, it's not nice for the viewer
4037 if (presence.IsChildAgent)
4038 {
4039 // Tell a single agent to disconnect from the region.
4040 IEventQueue eq = RequestModuleInterface<IEventQueue>();
4041 if (eq != null)
4042 {
4043 eq.DisableSimulator(RegionInfo.RegionHandle, agentID);
4044 }
4045 else
4046 presence.ControllingClient.SendShutdownConnectionNotice();
4047 }
4048
4049 presence.ControllingClient.Close(); 4052 presence.ControllingClient.Close();
4050 return true; 4053 return true;
4051 } 4054 }