diff options
author | Diva Canto | 2012-03-13 20:15:38 -0700 |
---|---|---|
committer | Diva Canto | 2012-03-13 20:15:38 -0700 |
commit | 479dd65a63a45923d874f22abea442df88f8101f (patch) | |
tree | c8bce59d3b2640a63bf21f2b1d6d7cabd5081bc7 | |
parent | Minor sanity check on simulation agent handler (content type) (diff) | |
download | opensim-SC_OLD-479dd65a63a45923d874f22abea442df88f8101f.zip opensim-SC_OLD-479dd65a63a45923d874f22abea442df88f8101f.tar.gz opensim-SC_OLD-479dd65a63a45923d874f22abea442df88f8101f.tar.bz2 opensim-SC_OLD-479dd65a63a45923d874f22abea442df88f8101f.tar.xz |
Teleports: bounce off repeated requests of teleporting the same agent. Some scripts do that, and that fails the whole thing.
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 13 |
1 files changed, 13 insertions, 0 deletions
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 | |||
304 | return; | 304 | return; |
305 | } | 305 | } |
306 | 306 | ||
307 | if (IsInTransit(sp.UUID)) // Avie is already on the way. Caller shouldn't do this. | ||
308 | return; | ||
309 | |||
307 | m_log.DebugFormat( | 310 | m_log.DebugFormat( |
308 | "[ENTITY TRANSFER MODULE]: Request Teleport to {0} ({1}) {2}/{3}", | 311 | "[ENTITY TRANSFER MODULE]: Request Teleport to {0} ({1}) {2}/{3}", |
309 | reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); | 312 | reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); |
@@ -1861,6 +1864,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1861 | } | 1864 | } |
1862 | } | 1865 | } |
1863 | 1866 | ||
1867 | protected bool IsInTransit(UUID id) | ||
1868 | { | ||
1869 | lock (m_agentsInTransit) | ||
1870 | { | ||
1871 | if (m_agentsInTransit.Contains(id)) | ||
1872 | return true; | ||
1873 | } | ||
1874 | return false; | ||
1875 | } | ||
1876 | |||
1864 | protected bool ResetFromTransit(UUID id) | 1877 | protected bool ResetFromTransit(UUID id) |
1865 | { | 1878 | { |
1866 | lock (m_agentsInTransit) | 1879 | lock (m_agentsInTransit) |