diff options
author | Justin Clark-Casey (justincc) | 2013-08-09 00:24:22 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-08-09 00:24:22 +0100 |
commit | 99bce9d87723af1958a76cf8ac5e765ca804549d (patch) | |
tree | ab20bae18c8215e53063366e526919f73ccfd732 /OpenSim | |
parent | Fix an issue where under teleport v2 protocol, teleporting from regions in an... (diff) | |
download | opensim-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
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 8 |
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 | ||