diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 75d7bc5..a2c2aa7 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1147,11 +1147,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1147 | // in no close. | 1147 | // in no close. |
1148 | sp.DoNotCloseAfterTeleport = false; | 1148 | sp.DoNotCloseAfterTeleport = false; |
1149 | 1149 | ||
1150 | // we still need to flag this as child here | ||
1151 | // a close from receiving region seems possible to happen before we reach sp.MakeChildAgent below | ||
1152 | // causing the agent to be loggout out from grid incorrectly | ||
1153 | sp.IsChildAgent = true; | ||
1150 | // Send the Update. If this returns true, we know the client has contacted the destination | 1154 | // Send the Update. If this returns true, we know the client has contacted the destination |
1151 | // via CompleteMovementIntoRegion, so we can let go. | 1155 | // via CompleteMovementIntoRegion, so we can let go. |
1152 | // If it returns false, something went wrong, and we need to abort. | 1156 | // If it returns false, something went wrong, and we need to abort. |
1153 | if (!UpdateAgent(reg, finalDestination, agent, sp, ctx)) | 1157 | if (!UpdateAgent(reg, finalDestination, agent, sp, ctx)) |
1154 | { | 1158 | { |
1159 | sp.IsChildAgent = false; | ||
1155 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Aborting) | 1160 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Aborting) |
1156 | { | 1161 | { |
1157 | m_interRegionTeleportAborts.Value++; | 1162 | m_interRegionTeleportAborts.Value++; |