aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Application/OpenSim.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs31
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs11
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 }