If an agent is logging in, rather than teleporting, make sure all known
circuits for that agent are closed.avinationmerge
parent
4cc552162e
commit
309cfeff88
|
@ -139,6 +139,14 @@ namespace OpenSim.Region.CoreModules.Framework
|
|||
{
|
||||
Caps oldCaps = m_capsObjects[circuitCode];
|
||||
|
||||
// Remove tge handlers. They may conflict with the
|
||||
// new object created below
|
||||
oldCaps.DeregisterHandlers();
|
||||
|
||||
// Better safe ... should not be needed but also
|
||||
// no big deal
|
||||
m_capsObjects.Remove(circuitCode);
|
||||
|
||||
// if (capsObjectPath == oldCaps.CapsObjectPath)
|
||||
// {
|
||||
// m_log.WarnFormat(
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue