diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 36 |
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 | ||