diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 20572a9..b81b2d4 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1916,25 +1916,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1916 | /// <param name="agentId"></param> | 1916 | /// <param name="agentId"></param> |
1917 | /// <param name="capsObjectPath"></param> | 1917 | /// <param name="capsObjectPath"></param> |
1918 | public void AddCapsHandler(LLUUID agentId) | 1918 | public void AddCapsHandler(LLUUID agentId) |
1919 | { | 1919 | { |
1920 | // Here we clear out old Caps handlers for the agent | 1920 | String capsObjectPath = GetCapsPath(agentId); |
1921 | // this is required because we potentially have multiple simulators in an instance nearby. | ||
1922 | Caps oldcap = null; | ||
1923 | lock (m_capsHandlers) | ||
1924 | { | ||
1925 | if (m_capsHandlers.ContainsKey(agentId)) | ||
1926 | oldcap = m_capsHandlers[agentId]; | ||
1927 | } | ||
1928 | if (oldcap != null) | ||
1929 | { | ||
1930 | oldcap.DeregisterHandlers(); | ||
1931 | } | ||
1932 | |||
1933 | // Generate a new base caps path LLUUID.Random().ToString() instead of agentId.ToString() | ||
1934 | // If the caps paths are not different for each region, the client and sim will do weird | ||
1935 | // things like send the request to a region the agent is no longer in. | ||
1936 | |||
1937 | String capsObjectPath = GetNewCapsPath(agentId); | ||
1938 | 1921 | ||
1939 | m_log.DebugFormat( | 1922 | m_log.DebugFormat( |
1940 | "[CAPS]: Setting up CAPS handler for root agent {0} in {1}", | 1923 | "[CAPS]: Setting up CAPS handler for root agent {0} in {1}", |
@@ -1942,7 +1925,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1942 | 1925 | ||
1943 | Caps cap = | 1926 | Caps cap = |
1944 | new Caps(AssetCache, m_httpListener, m_regInfo.ExternalHostName, m_httpListener.Port, | 1927 | new Caps(AssetCache, m_httpListener, m_regInfo.ExternalHostName, m_httpListener.Port, |
1945 | capsObjectPath, agentId, m_dumpAssetsToFile); | 1928 | capsObjectPath, agentId, m_dumpAssetsToFile, RegionInfo.RegionName); |
1946 | cap.RegisterHandlers(); | 1929 | cap.RegisterHandlers(); |
1947 | 1930 | ||
1948 | EventManager.TriggerOnRegisterCaps(agentId, cap); | 1931 | EventManager.TriggerOnRegisterCaps(agentId, cap); |