aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs21
1 files changed, 19 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index ba8a356..957c75c 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1867,8 +1867,25 @@ namespace OpenSim.Region.Environment.Scenes
1867 /// <param name="agentId"></param> 1867 /// <param name="agentId"></param>
1868 /// <param name="capsObjectPath"></param> 1868 /// <param name="capsObjectPath"></param>
1869 public void AddCapsHandler(LLUUID agentId) 1869 public void AddCapsHandler(LLUUID agentId)
1870 { 1870 {
1871 String capsObjectPath = GetCapsPath(agentId); 1871 // Here we clear out old Caps handlers for the agent
1872 // this is required because we potentially have multiple simulators in an instance nearby.
1873 Caps oldcap = null;
1874 lock (m_capsHandlers)
1875 {
1876 if (m_capsHandlers.ContainsKey(agentId))
1877 oldcap = m_capsHandlers[agentId];
1878 }
1879 if (oldcap != null)
1880 {
1881 oldcap.DeregisterHandlers();
1882 }
1883
1884 // Generate a new base caps path LLUUID.Random().ToString() instead of agentId.ToString()
1885 // If the caps paths are not different for each region, the client and sim will do weird
1886 // things like send the request to a region the agent is no longer in.
1887
1888 String capsObjectPath = GetNewCapsPath(agentId);
1872 1889
1873 m_log.DebugFormat( 1890 m_log.DebugFormat(
1874 "[CAPS]: Setting up CAPS handler for root agent {0} in {1}", 1891 "[CAPS]: Setting up CAPS handler for root agent {0} in {1}",