diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 6 |
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); |