From 479dd65a63a45923d874f22abea442df88f8101f Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 13 Mar 2012 20:15:38 -0700 Subject: Teleports: bounce off repeated requests of teleporting the same agent. Some scripts do that, and that fails the whole thing. --- .../Framework/EntityTransfer/EntityTransferModule.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index f6e4dbf..bef012d 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -304,6 +304,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer return; } + if (IsInTransit(sp.UUID)) // Avie is already on the way. Caller shouldn't do this. + return; + m_log.DebugFormat( "[ENTITY TRANSFER MODULE]: Request Teleport to {0} ({1}) {2}/{3}", reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); @@ -1861,6 +1864,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer } } + protected bool IsInTransit(UUID id) + { + lock (m_agentsInTransit) + { + if (m_agentsInTransit.Contains(id)) + return true; + } + return false; + } + protected bool ResetFromTransit(UUID id) { lock (m_agentsInTransit) -- cgit v1.1