mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 02:36:00 +08:00
In teleports, pass the source region to the destination (similar to an HTTP referrer)
This commit is contained in:
@@ -205,7 +205,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||
* Agent-related communications
|
||||
*/
|
||||
|
||||
public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
|
||||
public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
|
||||
{
|
||||
if (destination == null)
|
||||
{
|
||||
@@ -217,7 +217,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||
if (m_scenes.ContainsKey(destination.RegionID))
|
||||
{
|
||||
// m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Found region {0} to send SendCreateChildAgent", destination.RegionName);
|
||||
return m_scenes[destination.RegionID].NewUserConnection(aCircuit, teleportFlags, out reason);
|
||||
return m_scenes[destination.RegionID].NewUserConnection(aCircuit, teleportFlags, source, out reason);
|
||||
}
|
||||
|
||||
reason = "Did not find region " + destination.RegionName;
|
||||
|
||||
@@ -162,7 +162,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||
* Agent-related communications
|
||||
*/
|
||||
|
||||
public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
|
||||
public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
|
||||
{
|
||||
if (destination == null)
|
||||
{
|
||||
@@ -172,13 +172,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||
}
|
||||
|
||||
// Try local first
|
||||
if (m_localBackend.CreateAgent(destination, aCircuit, teleportFlags, out reason))
|
||||
if (m_localBackend.CreateAgent(source, destination, aCircuit, teleportFlags, out reason))
|
||||
return true;
|
||||
|
||||
// else do the remote thing
|
||||
if (!m_localBackend.IsLocalRegion(destination.RegionID))
|
||||
{
|
||||
return m_remoteConnector.CreateAgent(destination, aCircuit, teleportFlags, out reason);
|
||||
return m_remoteConnector.CreateAgent(source, destination, aCircuit, teleportFlags, out reason);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user