aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMic Bowman2013-09-11 12:15:16 -0700
committerMic Bowman2013-09-11 12:15:16 -0700
commitb29e9d37e7705e461f71a3a599d95ad79b57e18a (patch)
treea4078fd49ce0a182b6587cebcea9fc5f8ec219b1
parentBulletSim: update DLLs and SOs with ClearCollisionCache inteface calls (diff)
downloadopensim-SC-b29e9d37e7705e461f71a3a599d95ad79b57e18a.zip
opensim-SC-b29e9d37e7705e461f71a3a599d95ad79b57e18a.tar.gz
opensim-SC-b29e9d37e7705e461f71a3a599d95ad79b57e18a.tar.bz2
opensim-SC-b29e9d37e7705e461f71a3a599d95ad79b57e18a.tar.xz
Change handling of the FetchInventoryDescendents2 capability configuration to allow
for external handlers.
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs59
1 files changed, 36 insertions, 23 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
index 164adeb..340d2e7 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
@@ -63,7 +63,7 @@ namespace OpenSim.Region.ClientStack.Linden
63 public List<UUID> folders; 63 public List<UUID> folders;
64 } 64 }
65 65
66// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 66 // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
67 67
68 private Scene m_scene; 68 private Scene m_scene;
69 69
@@ -115,7 +115,7 @@ namespace OpenSim.Region.ClientStack.Linden
115 m_scene.EventManager.OnRegisterCaps -= RegisterCaps; 115 m_scene.EventManager.OnRegisterCaps -= RegisterCaps;
116 116
117 foreach (Thread t in m_workerThreads) 117 foreach (Thread t in m_workerThreads)
118 Watchdog.AbortThread(t.ManagedThreadId); 118 Watchdog.AbortThread(t.ManagedThreadId);
119 119
120 m_scene = null; 120 m_scene = null;
121 } 121 }
@@ -296,36 +296,49 @@ namespace OpenSim.Region.ClientStack.Linden
296 requestinfo.request["body"].ToString(), String.Empty, String.Empty, null, null); 296 requestinfo.request["body"].ToString(), String.Empty, String.Empty, null, null);
297 297
298 lock (responses) 298 lock (responses)
299 responses[requestID] = response; 299 responses[requestID] = response;
300 } 300 }
301 } 301 }
302 302
303 private void RegisterCaps(UUID agentID, Caps caps) 303 private void RegisterCaps(UUID agentID, Caps caps)
304 { 304 {
305 if (m_fetchInventoryDescendents2Url == "") 305 RegisterFetchDescendentsCap(agentID, caps, "FetchInventoryDescendents2", m_fetchInventoryDescendents2Url);
306 }
307
308 private void RegisterFetchDescendentsCap(UUID agentID, Caps caps, string capName, string url)
309 {
310 string capUrl;
311
312 // disable the cap clause
313 if (url == "")
314 {
306 return; 315 return;
316 }
317 // handled by the simulator
318 else if (url == "localhost")
319 {
320 capUrl = "/CAPS/" + UUID.Random() + "/";
307 321
308 // Register this as a poll service 322 // Register this as a poll service
309 PollServiceInventoryEventArgs args 323 PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(m_scene, capUrl, agentID);
310 = new PollServiceInventoryEventArgs(m_scene, "/CAPS/" + UUID.Random() + "/", agentID); 324 args.Type = PollServiceEventArgs.EventType.Inventory;
311 args.Type = PollServiceEventArgs.EventType.Inventory;
312 325
313 caps.RegisterPollHandler("FetchInventoryDescendents2", args); 326 caps.RegisterPollHandler(capName, args);
327 }
328 // external handler
329 else
330 {
331 capUrl = url;
332 IExternalCapsModule handler = m_scene.RequestModuleInterface<IExternalCapsModule>();
333 if (handler != null)
334 handler.RegisterExternalUserCapsHandler(agentID,caps,capName,capUrl);
335 else
336 caps.RegisterHandler(capName, capUrl);
337 }
314 338
315// MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); 339 // m_log.DebugFormat(
316// 340 // "[FETCH INVENTORY DESCENDENTS2 MODULE]: Registered capability {0} at {1} in region {2} for {3}",
317// string hostName = m_scene.RegionInfo.ExternalHostName; 341 // capName, capUrl, m_scene.RegionInfo.RegionName, agentID);
318// uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port;
319// string protocol = "http";
320//
321// if (MainServer.Instance.UseSSL)
322// {
323// hostName = MainServer.Instance.SSLCommonName;
324// port = MainServer.Instance.SSLPort;
325// protocol = "https";
326// }
327//
328// caps.RegisterHandler("FetchInventoryDescendents2", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
329 } 342 }
330 343
331// private void DeregisterCaps(UUID agentID, Caps caps) 344// private void DeregisterCaps(UUID agentID, Caps caps)