From 1fabdcc43cc2d62ff03888166582b25884056e94 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 26 Jul 2013 01:04:16 +0100 Subject: If a returning teleport starts to reuse a downgraded child connection that was a previous root agent, do not close that child agent at the end of the 15 sec teleport timer. This prevents an issue if the user teleports back to the neighbour simulator of a source before 15 seconds have elapsed. This more closely emulates observed linden behaviour, though the timeout there is 50 secs and applies to all the pre-teleport agents. Currently sticks a DoNotClose flag on ScenePresence though this may be temporary as possibly it could be incorporated into the ETM state machine --- .../Framework/EntityTransfer/EntityTransferModule.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/CoreModules/Framework') diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index ea2d9b5..31db778 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -1054,7 +1054,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer // DECREASING THE WAIT TIME HERE WILL EITHER RESULT IN A VIEWER CRASH OR // IN THE AVIE BEING PLACED IN INFINITY FOR A COUPLE OF SECONDS. Thread.Sleep(15000); - sp.Scene.IncomingCloseAgent(sp.UUID, false); + + if (!sp.DoNotClose) + { + sp.Scene.IncomingCloseAgent(sp.UUID, false); + } + else + { + sp.DoNotClose = false; + } } else // now we have a child agent in this region. -- cgit v1.1