From 309cfeff88e9b348c9170ecd1818df68a1835681 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 23 Sep 2014 21:53:09 +0200 Subject: If an agent is logging in, rather than teleporting, make sure all known circuits for that agent are closed. --- OpenSim/Region/Framework/Scenes/Scene.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 087df70..8cb795d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -3988,6 +3988,12 @@ namespace OpenSim.Region.Framework.Scenes // We need the circuit data here for some of the subsequent checks. (groups, for example) // If the checks fail, we remove the circuit. acd.teleportFlags = teleportFlags; + + // Remove any preexisting circuit - we don't want duplicates + // This is a stab at preventing avatar "ghosting" + if (vialogin) + m_authenticateHandler.RemoveCircuit(acd.AgentID); + m_authenticateHandler.AddNewCircuit(acd.circuitcode, acd); land = LandChannel.GetLandObject(acd.startpos.X, acd.startpos.Y); -- cgit v1.1