diff options
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 31 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 11 |
3 files changed, 24 insertions, 22 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index caba236..1d00522 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -486,10 +486,10 @@ namespace OpenSim | |||
486 | else | 486 | else |
487 | presence.ControllingClient.Kick("\nThe OpenSim manager kicked you out.\n"); | 487 | presence.ControllingClient.Kick("\nThe OpenSim manager kicked you out.\n"); |
488 | 488 | ||
489 | // ...and close on our side | 489 | presence.ControllingClient.Close(); |
490 | presence.Scene.IncomingCloseAgent(presence.UUID); | ||
491 | } | 490 | } |
492 | } | 491 | } |
492 | |||
493 | MainConsole.Instance.Output(""); | 493 | MainConsole.Instance.Output(""); |
494 | } | 494 | } |
495 | 495 | ||
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 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index b8616e8..eff635b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -84,16 +84,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
84 | if (neighbourService != null) | 84 | if (neighbourService != null) |
85 | neighbour = neighbourService.HelloNeighbour(regionhandle, region); | 85 | neighbour = neighbourService.HelloNeighbour(regionhandle, region); |
86 | else | 86 | else |
87 | m_log.DebugFormat("[SCS]: No neighbour service provided for informing neigbhours of this region"); | 87 | m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: No neighbour service provided for informing neigbhours of this region"); |
88 | 88 | ||
89 | if (neighbour != null) | 89 | if (neighbour != null) |
90 | { | 90 | { |
91 | m_log.DebugFormat("[INTERGRID]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize); | 91 | m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize); |
92 | m_scene.EventManager.TriggerOnRegionUp(neighbour); | 92 | m_scene.EventManager.TriggerOnRegionUp(neighbour); |
93 | } | 93 | } |
94 | else | 94 | else |
95 | { | 95 | { |
96 | m_log.InfoFormat("[INTERGRID]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize); | 96 | m_log.InfoFormat("[SCENE COMMUNICATION SERVICE]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize); |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
@@ -102,7 +102,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
102 | //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); | 102 | //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); |
103 | 103 | ||
104 | List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); | 104 | List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); |
105 | m_log.DebugFormat("[INTERGRID]: Informing {0} neighbours that this region is up", neighbours.Count); | 105 | m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Informing {0} neighbours that this region is up", neighbours.Count); |
106 | foreach (GridRegion n in neighbours) | 106 | foreach (GridRegion n in neighbours) |
107 | { | 107 | { |
108 | InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; | 108 | InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; |
@@ -196,8 +196,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
196 | GridRegion destination = m_scene.GridService.GetRegionByPosition(m_regionInfo.ScopeID, (int)x, (int)y); | 196 | GridRegion destination = m_scene.GridService.GetRegionByPosition(m_regionInfo.ScopeID, (int)x, (int)y); |
197 | 197 | ||
198 | m_log.DebugFormat( | 198 | m_log.DebugFormat( |
199 | "[INTERGRID]: Sending close agent {0} to region at {1}-{2}", | 199 | "[SCENE COMMUNICATION SERVICE]: Sending close agent ID {0} to {1}", agentID, destination.RegionName); |
200 | agentID, destination.RegionCoordX, destination.RegionCoordY); | ||
201 | 200 | ||
202 | m_scene.SimulationService.CloseAgent(destination, agentID); | 201 | m_scene.SimulationService.CloseAgent(destination, agentID); |
203 | } | 202 | } |