mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
Check if remote simulator is up before attempting teleport. Teleport to a remote region should now fail gracefully if remote simulator is down.
This commit is contained in:
@@ -420,11 +420,13 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
agent.InventoryFolder = LLUUID.Zero;
|
||||
agent.startpos = position;
|
||||
agent.child = true;
|
||||
avatar.Close();
|
||||
if (m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent) &&
|
||||
m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId,
|
||||
position, false)) ;
|
||||
|
||||
|
||||
if(m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent))
|
||||
{
|
||||
avatar.Close();
|
||||
m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId,
|
||||
position, false);
|
||||
AgentCircuitData circuitdata = avatar.ControllingClient.RequestClientInfo();
|
||||
string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId);
|
||||
avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4),
|
||||
@@ -443,6 +445,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
CloseChildAgentConnections(avatar);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
avatar.ControllingClient.SendTeleportFailed("Remote Region appears to be down");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user