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]; 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 if (capsObjectPath == oldCaps.CapsObjectPath)
// no big deal {
m_capsObjects.Remove(circuitCode); 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) // Better safe ... should not be needed but also
// { // no big deal
// m_log.WarnFormat( m_capsObjects.Remove(circuitCode);
// "[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;
// }
} }
caps = new Caps(MainServer.Instance, m_scene.RegionInfo.ExternalHostName, caps = new Caps(MainServer.Instance, m_scene.RegionInfo.ExternalHostName,