aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-08-09 00:24:22 +0100
committerJustin Clark-Casey (justincc)2013-08-09 00:24:22 +0100
commit99bce9d87723af1958a76cf8ac5e765ca804549d (patch)
treeab20bae18c8215e53063366e526919f73ccfd732
parentFix an issue where under teleport v2 protocol, teleporting from regions in an... (diff)
downloadopensim-SC-99bce9d87723af1958a76cf8ac5e765ca804549d.zip
opensim-SC-99bce9d87723af1958a76cf8ac5e765ca804549d.tar.gz
opensim-SC-99bce9d87723af1958a76cf8ac5e765ca804549d.tar.bz2
opensim-SC-99bce9d87723af1958a76cf8ac5e765ca804549d.tar.xz
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
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 5f10869..a3ea7d9 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3699,6 +3699,14 @@ namespace OpenSim.Region.Framework.Scenes
3699 3699
3700 sp.DoNotCloseAfterTeleport = true; 3700 sp.DoNotCloseAfterTeleport = true;
3701 } 3701 }
3702 else if (EntityTransferModule.IsInTransit(sp.UUID))
3703 {
3704 m_log.DebugFormat(
3705 "[SCENE]: Setting DoNotCloseAfterTeleport for child scene presence {0} in {1} because this region will attempt previous end-of-teleport close.",
3706 sp.Name, Name);
3707
3708 sp.DoNotCloseAfterTeleport = true;
3709 }
3702 } 3710 }
3703 } 3711 }
3704 3712