diff options
Diffstat (limited to 'OpenSim/Server/Handlers/Simulation/AgentHandlers.cs')
-rw-r--r-- | OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index e7544b5..30418be 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |||
@@ -448,7 +448,25 @@ namespace OpenSim.Server.Handlers.Simulation | |||
448 | protected virtual bool CreateAgent(GridRegion source, GridRegion gatekeeper, GridRegion destination, | 448 | protected virtual bool CreateAgent(GridRegion source, GridRegion gatekeeper, GridRegion destination, |
449 | AgentCircuitData aCircuit, uint teleportFlags, bool fromLogin, out string reason) | 449 | AgentCircuitData aCircuit, uint teleportFlags, bool fromLogin, out string reason) |
450 | { | 450 | { |
451 | return m_SimulationService.CreateAgent(source, destination, aCircuit, teleportFlags, out reason); | 451 | reason = String.Empty; |
452 | if ((teleportFlags & (uint)TeleportFlags.ViaLogin) == 0) | ||
453 | { | ||
454 | Util.FireAndForget(x => | ||
455 | { | ||
456 | string r; | ||
457 | m_SimulationService.CreateAgent(source, destination, aCircuit, teleportFlags, out r); | ||
458 | m_log.DebugFormat("[AGENT HANDLER]: ASYNC CreateAgent {0}", r); | ||
459 | }); | ||
460 | |||
461 | return true; | ||
462 | } | ||
463 | else | ||
464 | { | ||
465 | |||
466 | bool ret = m_SimulationService.CreateAgent(source, destination, aCircuit, teleportFlags, out reason); | ||
467 | m_log.DebugFormat("[AGENT HANDLER]: SYNC CreateAgent {0} {1}", ret.ToString(), reason); | ||
468 | return ret; | ||
469 | } | ||
452 | } | 470 | } |
453 | } | 471 | } |
454 | 472 | ||