diff options
author | Oren Hurvitz | 2014-04-09 08:03:25 +0300 |
---|---|---|
committer | Oren Hurvitz | 2014-04-09 09:22:20 +0100 |
commit | 06e0528d0b9929cbd8d2b360b0baa00288340d13 (patch) | |
tree | 0ffd33e5eda96badff712bdd78794ce6debbb392 /OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |
parent | Log when the presence service logs-out all the users in a region (diff) | |
download | opensim-SC-06e0528d0b9929cbd8d2b360b0baa00288340d13.zip opensim-SC-06e0528d0b9929cbd8d2b360b0baa00288340d13.tar.gz opensim-SC-06e0528d0b9929cbd8d2b360b0baa00288340d13.tar.bz2 opensim-SC-06e0528d0b9929cbd8d2b360b0baa00288340d13.tar.xz |
In teleports, pass the source region to the destination (similar to an HTTP referrer)
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index c495b60..0d7f259 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |||
@@ -307,13 +307,29 @@ namespace OpenSim.Server.Handlers.Simulation | |||
307 | return; | 307 | return; |
308 | } | 308 | } |
309 | 309 | ||
310 | GridRegion source = null; | ||
311 | |||
312 | if (args.ContainsKey("source_uuid")) | ||
313 | { | ||
314 | source = new GridRegion(); | ||
315 | source.RegionLocX = Int32.Parse(args["source_x"].AsString()); | ||
316 | source.RegionLocY = Int32.Parse(args["source_y"].AsString()); | ||
317 | source.RegionName = args["source_name"].AsString(); | ||
318 | source.RegionID = UUID.Parse(args["source_uuid"].AsString()); | ||
319 | |||
320 | if (args.ContainsKey("source_server_uri")) | ||
321 | source.RawServerURI = args["source_server_uri"].AsString(); | ||
322 | else | ||
323 | source.RawServerURI = null; | ||
324 | } | ||
325 | |||
310 | OSDMap resp = new OSDMap(2); | 326 | OSDMap resp = new OSDMap(2); |
311 | string reason = String.Empty; | 327 | string reason = String.Empty; |
312 | 328 | ||
313 | // This is the meaning of POST agent | 329 | // This is the meaning of POST agent |
314 | //m_regionClient.AdjustUserInformation(aCircuit); | 330 | //m_regionClient.AdjustUserInformation(aCircuit); |
315 | //bool result = m_SimulationService.CreateAgent(destination, aCircuit, teleportFlags, out reason); | 331 | //bool result = m_SimulationService.CreateAgent(destination, aCircuit, teleportFlags, out reason); |
316 | bool result = CreateAgent(gatekeeper, destination, aCircuit, data.flags, data.fromLogin, out reason); | 332 | bool result = CreateAgent(source, gatekeeper, destination, aCircuit, data.flags, data.fromLogin, out reason); |
317 | 333 | ||
318 | resp["reason"] = OSD.FromString(reason); | 334 | resp["reason"] = OSD.FromString(reason); |
319 | resp["success"] = OSD.FromBoolean(result); | 335 | resp["success"] = OSD.FromBoolean(result); |
@@ -387,9 +403,10 @@ namespace OpenSim.Server.Handlers.Simulation | |||
387 | } | 403 | } |
388 | 404 | ||
389 | // subclasses can override this | 405 | // subclasses can override this |
390 | protected virtual bool CreateAgent(GridRegion gatekeeper, GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, bool fromLogin, out string reason) | 406 | protected virtual bool CreateAgent(GridRegion source, GridRegion gatekeeper, GridRegion destination, |
407 | AgentCircuitData aCircuit, uint teleportFlags, bool fromLogin, out string reason) | ||
391 | { | 408 | { |
392 | return m_SimulationService.CreateAgent(destination, aCircuit, teleportFlags, out reason); | 409 | return m_SimulationService.CreateAgent(source, destination, aCircuit, teleportFlags, out reason); |
393 | } | 410 | } |
394 | } | 411 | } |
395 | 412 | ||