diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 4f11326..22b577b 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -810,11 +810,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
810 | return; | 810 | return; |
811 | } | 811 | } |
812 | 812 | ||
813 | // We need to set this here to avoid an unlikely race condition when teleporting to a neighbour simulator, | ||
814 | // where that neighbour simulator could otherwise request a child agent create on the source which then | ||
815 | // closes our existing agent which is still signalled as root. | ||
816 | sp.IsChildAgent = true; | ||
817 | |||
818 | // A common teleport failure occurs when we can send CreateAgent to the | 813 | // A common teleport failure occurs when we can send CreateAgent to the |
819 | // destination region but the viewer cannot establish the connection (e.g. due to network issues between | 814 | // destination region but the viewer cannot establish the connection (e.g. due to network issues between |
820 | // the viewer and the destination). In this case, UpdateAgent timesout after 10 seconds, although then | 815 | // the viewer and the destination). In this case, UpdateAgent timesout after 10 seconds, although then |
@@ -840,17 +835,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
840 | return; | 835 | return; |
841 | } | 836 | } |
842 | 837 | ||
843 | // OK, send TPFinish to the client, so that it starts the process of contacting the destination region | ||
844 | if (m_eqModule != null) | ||
845 | { | ||
846 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID); | ||
847 | } | ||
848 | else | ||
849 | { | ||
850 | sp.ControllingClient.SendRegionTeleport(destinationHandle, 13, endPoint, 4, | ||
851 | teleportFlags, capsPath); | ||
852 | } | ||
853 | |||
854 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Cancelling) | 838 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Cancelling) |
855 | { | 839 | { |
856 | m_interRegionTeleportCancels.Value++; | 840 | m_interRegionTeleportCancels.Value++; |
@@ -868,6 +852,22 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
868 | "[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} from {1} to {2}", | 852 | "[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} from {1} to {2}", |
869 | capsPath, sp.Scene.RegionInfo.RegionName, sp.Name); | 853 | capsPath, sp.Scene.RegionInfo.RegionName, sp.Name); |
870 | 854 | ||
855 | // We need to set this here to avoid an unlikely race condition when teleporting to a neighbour simulator, | ||
856 | // where that neighbour simulator could otherwise request a child agent create on the source which then | ||
857 | // closes our existing agent which is still signalled as root. | ||
858 | sp.IsChildAgent = true; | ||
859 | |||
860 | // OK, send TPFinish to the client, so that it starts the process of contacting the destination region | ||
861 | if (m_eqModule != null) | ||
862 | { | ||
863 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID); | ||
864 | } | ||
865 | else | ||
866 | { | ||
867 | sp.ControllingClient.SendRegionTeleport(destinationHandle, 13, endPoint, 4, | ||
868 | teleportFlags, capsPath); | ||
869 | } | ||
870 | |||
871 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which | 871 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which |
872 | // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation | 872 | // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation |
873 | // that the client contacted the destination before we close things here. | 873 | // that the client contacted the destination before we close things here. |