change melanies patch, reusing caps if circuit and caps path is the same.

Do the aditional cleanup, if the path did change
avinationmerge
UbitUmarov 2014-09-24 16:01:25 +01:00
parent 4206c1248f
commit 1491ba3500
1 changed files with 17 additions and 13 deletions

View File

@ -139,21 +139,25 @@ 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(
"[CAPS]: Reusing caps for agent {0} in region {1}. Old caps path {2}, new caps path {3}. ",
agentId, m_scene.RegionInfo.RegionName, oldCaps.CapsObjectPath, capsObjectPath);
return;
}
else
{
// not reusing add extra melanie cleanup
// Remove tge handlers. They may conflict with the
// new object created below
oldCaps.DeregisterHandlers();
// if (capsObjectPath == oldCaps.CapsObjectPath)
// {
// m_log.WarnFormat(
// "[CAPS]: Reusing caps for agent {0} in region {1}. Old caps path {2}, new caps path {3}. ",
// agentId, m_scene.RegionInfo.RegionName, oldCaps.CapsObjectPath, capsObjectPath);
// return;
// }
// Better safe ... should not be needed but also
// no big deal
m_capsObjects.Remove(circuitCode);
}
}
caps = new Caps(MainServer.Instance, m_scene.RegionInfo.ExternalHostName,