aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2014-09-23 21:53:09 +0200
committerMelanie Thielker2014-09-23 21:53:09 +0200
commit309cfeff88e9b348c9170ecd1818df68a1835681 (patch)
treeb2aef9d2b85cdf905821839d11a28228edbe1bdf
parentMerge branch 'ubitworkmaster' (diff)
downloadopensim-SC_OLD-309cfeff88e9b348c9170ecd1818df68a1835681.zip
opensim-SC_OLD-309cfeff88e9b348c9170ecd1818df68a1835681.tar.gz
opensim-SC_OLD-309cfeff88e9b348c9170ecd1818df68a1835681.tar.bz2
opensim-SC_OLD-309cfeff88e9b348c9170ecd1818df68a1835681.tar.xz
If an agent is logging in, rather than teleporting, make sure all known
circuits for that agent are closed.
-rw-r--r--OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs6
2 files changed, 14 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
index 8aceaa1..88447f3 100644
--- a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
@@ -139,6 +139,14 @@ namespace OpenSim.Region.CoreModules.Framework
139 { 139 {
140 Caps oldCaps = m_capsObjects[circuitCode]; 140 Caps oldCaps = m_capsObjects[circuitCode];
141 141
142 // Remove tge handlers. They may conflict with the
143 // new object created below
144 oldCaps.DeregisterHandlers();
145
146 // Better safe ... should not be needed but also
147 // no big deal
148 m_capsObjects.Remove(circuitCode);
149
142// if (capsObjectPath == oldCaps.CapsObjectPath) 150// if (capsObjectPath == oldCaps.CapsObjectPath)
143// { 151// {
144// m_log.WarnFormat( 152// m_log.WarnFormat(
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
3988 // We need the circuit data here for some of the subsequent checks. (groups, for example) 3988 // We need the circuit data here for some of the subsequent checks. (groups, for example)
3989 // If the checks fail, we remove the circuit. 3989 // If the checks fail, we remove the circuit.
3990 acd.teleportFlags = teleportFlags; 3990 acd.teleportFlags = teleportFlags;
3991
3992 // Remove any preexisting circuit - we don't want duplicates
3993 // This is a stab at preventing avatar "ghosting"
3994 if (vialogin)
3995 m_authenticateHandler.RemoveCircuit(acd.AgentID);
3996
3991 m_authenticateHandler.AddNewCircuit(acd.circuitcode, acd); 3997 m_authenticateHandler.AddNewCircuit(acd.circuitcode, acd);
3992 3998
3993 land = LandChannel.GetLandObject(acd.startpos.X, acd.startpos.Y); 3999 land = LandChannel.GetLandObject(acd.startpos.X, acd.startpos.Y);