Fix an issue with an A->C->B->A teleport where these regions are in a row (A,B,C) where the A root agent is still closed, terminating the connection.

This was occuring because teleport to B did not set DoNotCloseAfterTeleport on A as it was a neighbour (where it isn't set to avoid the issue where the source region doesn't send Close() to regions that are still neighbours (hence not resetting DoNotCloseAfterTeleport).
Fix here is to still set DoNotCloseAfterTeleport if scene presence is still registered as in transit from A
TeleportWork
Justin Clark-Casey (justincc) 2013-08-09 00:24:22 +01:00
parent b1c26a56b3
commit 99bce9d877
1 changed files with 8 additions and 0 deletions

View File

@ -3699,6 +3699,14 @@ namespace OpenSim.Region.Framework.Scenes
sp.DoNotCloseAfterTeleport = true; sp.DoNotCloseAfterTeleport = true;
} }
else if (EntityTransferModule.IsInTransit(sp.UUID))
{
m_log.DebugFormat(
"[SCENE]: Setting DoNotCloseAfterTeleport for child scene presence {0} in {1} because this region will attempt previous end-of-teleport close.",
sp.Name, Name);
sp.DoNotCloseAfterTeleport = true;
}
} }
} }