Merge branch 'master' into careminster

Conflicts:
	OpenSim/Region/Framework/Scenes/Scene.cs
	OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
avinationmerge
Melanie 2012-06-08 00:14:39 +01:00
commit c5af3e384c
4 changed files with 25 additions and 25 deletions

View File

@ -486,10 +486,10 @@ namespace OpenSim
else else
presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n"); presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n");
// ...and close on our side presence.ControllingClient.Close();
presence.Scene.IncomingCloseAgent(presence.UUID);
} }
} }
MainConsole.Instance.Output(""); MainConsole.Instance.Output("");
} }

View File

@ -1233,7 +1233,7 @@ namespace OpenSim.Region.CoreModules.World.Land
if (land.LandData.LocalID == LandData.LocalID) if (land.LandData.LocalID == LandData.LocalID)
{ {
Vector3 pos = m_scene.GetNearestAllowedPosition(presence, land); Vector3 pos = m_scene.GetNearestAllowedPosition(presence, land);
presence.TeleportWithMomentum(pos); presence.TeleportWithMomentum(pos, null);
presence.ControllingClient.SendAlertMessage("You have been ejected from this land"); presence.ControllingClient.SendAlertMessage("You have been ejected from this land");
} }
} }

View File

@ -973,7 +973,7 @@ namespace OpenSim.Region.Framework.Scenes
else else
{ {
m_log.InfoFormat( m_log.InfoFormat(
"[INTERGRID]: Got notice about far away Region: {0} at ({1}, {2})", "[SCENE]: Got notice about far away Region: {0} at ({1}, {2})",
otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY);
} }
} }
@ -3388,6 +3388,22 @@ namespace OpenSim.Region.Framework.Scenes
{ {
isChildAgent = avatar.IsChildAgent; isChildAgent = avatar.IsChildAgent;
// Don't do this to root agents, it's not nice for the viewer
if (closeChildAgents && isChildAgent)
{
// Tell a single agent to disconnect from the region.
IEventQueue eq = RequestModuleInterface<IEventQueue>();
if (eq != null)
{
eq.DisableSimulator(RegionInfo.RegionHandle, avatar.UUID);
}
else
{
avatar.ControllingClient.SendShutdownConnectionNotice();
}
}
// Only applies to root agents.
if (avatar.ParentID != 0) if (avatar.ParentID != 0)
{ {
avatar.StandUp(); avatar.StandUp();
@ -4227,23 +4243,7 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGraph.removeUserCount(true); m_sceneGraph.removeUserCount(true);
} }
// Don't do this to root agents on logout, it's not nice for the viewer presence.ControllingClient.Close();
if (presence.IsChildAgent)
{
// Tell a single agent to disconnect from the region.
IEventQueue eq = RequestModuleInterface<IEventQueue>();
if (eq != null)
{
eq.DisableSimulator(RegionInfo.RegionHandle, agentID);
}
else
presence.ControllingClient.SendShutdownConnectionNotice();
presence.ControllingClient.Close(false);
}
else if (!childOnly)
{
presence.ControllingClient.Close(true);
}
return true; return true;
} }

View File

@ -84,16 +84,16 @@ namespace OpenSim.Region.Framework.Scenes
if (neighbourService != null) if (neighbourService != null)
neighbour = neighbourService.HelloNeighbour(regionhandle, region); neighbour = neighbourService.HelloNeighbour(regionhandle, region);
else else
m_log.DebugFormat("[SCS]: No neighbour service provided for informing neigbhours of this region"); m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: No neighbour service provided for informing neigbhours of this region");
if (neighbour != null) if (neighbour != null)
{ {
// m_log.DebugFormat("[INTERGRID]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize); m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize);
m_scene.EventManager.TriggerOnRegionUp(neighbour); m_scene.EventManager.TriggerOnRegionUp(neighbour);
} }
else else
{ {
m_log.InfoFormat("[INTERGRID]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize); m_log.InfoFormat("[SCENE COMMUNICATION SERVICE]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize);
} }
} }
@ -102,7 +102,7 @@ namespace OpenSim.Region.Framework.Scenes
//m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName);
List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID);
//m_log.DebugFormat("[INTERGRID]: Informing {0} neighbours that this region is up", neighbours.Count); m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Informing {0} neighbours that this region is up", neighbours.Count);
foreach (GridRegion n in neighbours) foreach (GridRegion n in neighbours)
{ {
InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;