aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs36
1 files changed, 18 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 78fbd3b..a77f26b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -973,7 +973,7 @@ namespace OpenSim.Region.Framework.Scenes
973 else 973 else
974 { 974 {
975 m_log.InfoFormat( 975 m_log.InfoFormat(
976 "[INTERGRID]: Got notice about far away Region: {0} at ({1}, {2})", 976 "[SCENE]: Got notice about far away Region: {0} at ({1}, {2})",
977 otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); 977 otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY);
978 } 978 }
979 } 979 }
@@ -3388,6 +3388,22 @@ namespace OpenSim.Region.Framework.Scenes
3388 { 3388 {
3389 isChildAgent = avatar.IsChildAgent; 3389 isChildAgent = avatar.IsChildAgent;
3390 3390
3391 // Don't do this to root agents, it's not nice for the viewer
3392 if (closeChildAgents && isChildAgent)
3393 {
3394 // Tell a single agent to disconnect from the region.
3395 IEventQueue eq = RequestModuleInterface<IEventQueue>();
3396 if (eq != null)
3397 {
3398 eq.DisableSimulator(RegionInfo.RegionHandle, avatar.UUID);
3399 }
3400 else
3401 {
3402 avatar.ControllingClient.SendShutdownConnectionNotice();
3403 }
3404 }
3405
3406 // Only applies to root agents.
3391 if (avatar.ParentID != 0) 3407 if (avatar.ParentID != 0)
3392 { 3408 {
3393 avatar.StandUp(); 3409 avatar.StandUp();
@@ -4227,23 +4243,7 @@ namespace OpenSim.Region.Framework.Scenes
4227 m_sceneGraph.removeUserCount(true); 4243 m_sceneGraph.removeUserCount(true);
4228 } 4244 }
4229 4245
4230 // Don't do this to root agents on logout, it's not nice for the viewer 4246 presence.ControllingClient.Close();
4231 if (presence.IsChildAgent)
4232 {
4233 // Tell a single agent to disconnect from the region.
4234 IEventQueue eq = RequestModuleInterface<IEventQueue>();
4235 if (eq != null)
4236 {
4237 eq.DisableSimulator(RegionInfo.RegionHandle, agentID);
4238 }
4239 else
4240 presence.ControllingClient.SendShutdownConnectionNotice();
4241 presence.ControllingClient.Close(false);
4242 }
4243 else if (!childOnly)
4244 {
4245 presence.ControllingClient.Close(true);
4246 }
4247 return true; 4247 return true;
4248 } 4248 }
4249 4249