diff options
author | Melanie | 2010-12-09 01:55:32 +0000 |
---|---|---|
committer | Melanie | 2010-12-09 01:55:32 +0000 |
commit | 4df1d25d23d76ee3ae8c7da155462b57735f6418 (patch) | |
tree | 3d03a3cf9fb54f6992b67a6e2b23d5ea8def084d /OpenSim/Server/Handlers | |
parent | Added an exception handler on CreateObject handler, just in case there's an e... (diff) | |
download | opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.zip opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.gz opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.bz2 opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.xz |
Plumb a code path for the entity transfer module to ask a destination scene
whether or not an agent is allowed there as a root agent.
Diffstat (limited to 'OpenSim/Server/Handlers')
-rw-r--r-- | OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index 1f7e502..24ae81f 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |||
@@ -110,6 +110,11 @@ namespace OpenSim.Server.Handlers.Simulation | |||
110 | DoAgentDelete(request, responsedata, agentID, action, regionID); | 110 | DoAgentDelete(request, responsedata, agentID, action, regionID); |
111 | return responsedata; | 111 | return responsedata; |
112 | } | 112 | } |
113 | else if (method.Equals("QUERYACCESSS")) | ||
114 | { | ||
115 | DoQueryAccess(request, responsedata, agentID, regionID); | ||
116 | return responsedata; | ||
117 | } | ||
113 | else | 118 | else |
114 | { | 119 | { |
115 | m_log.InfoFormat("[AGENT HANDLER]: method {0} not supported in agent message", method); | 120 | m_log.InfoFormat("[AGENT HANDLER]: method {0} not supported in agent message", method); |
@@ -300,6 +305,27 @@ namespace OpenSim.Server.Handlers.Simulation | |||
300 | return m_SimulationService.UpdateAgent(destination, agent); | 305 | return m_SimulationService.UpdateAgent(destination, agent); |
301 | } | 306 | } |
302 | 307 | ||
308 | protected virtual void DoQueryAccess(Hashtable request, Hashtable responsedata, UUID id, UUID regionID) | ||
309 | { | ||
310 | if (m_SimulationService == null) | ||
311 | { | ||
312 | m_log.Debug("[AGENT HANDLER]: Agent QUERY called. Harmless but useless."); | ||
313 | responsedata["content_type"] = "application/json"; | ||
314 | responsedata["int_response_code"] = HttpStatusCode.NotImplemented; | ||
315 | responsedata["str_response_string"] = string.Empty; | ||
316 | |||
317 | return; | ||
318 | } | ||
319 | |||
320 | GridRegion destination = new GridRegion(); | ||
321 | destination.RegionID = regionID; | ||
322 | |||
323 | bool result = m_SimulationService.QueryAccess(destination, id); | ||
324 | |||
325 | responsedata["int_response_code"] = HttpStatusCode.OK; | ||
326 | responsedata["str_response_string"] = result.ToString(); | ||
327 | } | ||
328 | |||
303 | protected virtual void DoAgentGet(Hashtable request, Hashtable responsedata, UUID id, UUID regionID) | 329 | protected virtual void DoAgentGet(Hashtable request, Hashtable responsedata, UUID id, UUID regionID) |
304 | { | 330 | { |
305 | if (m_SimulationService == null) | 331 | if (m_SimulationService == null) |