mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 01:06:30 +08:00
In teleports, pass the source region to the destination (similar to an HTTP referrer)
This commit is contained in:
@@ -79,22 +79,32 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
return "agent/";
|
||||
}
|
||||
|
||||
protected virtual void PackData(OSDMap args, AgentCircuitData aCircuit, GridRegion destination, uint flags)
|
||||
protected virtual void PackData(OSDMap args, GridRegion source, AgentCircuitData aCircuit, GridRegion destination, uint flags)
|
||||
{
|
||||
args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString());
|
||||
args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
|
||||
args["destination_name"] = OSD.FromString(destination.RegionName);
|
||||
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
|
||||
args["teleport_flags"] = OSD.FromString(flags.ToString());
|
||||
if (source != null)
|
||||
{
|
||||
args["source_x"] = OSD.FromString(source.RegionLocX.ToString());
|
||||
args["source_y"] = OSD.FromString(source.RegionLocY.ToString());
|
||||
args["source_name"] = OSD.FromString(source.RegionName);
|
||||
args["source_uuid"] = OSD.FromString(source.RegionID.ToString());
|
||||
if (!String.IsNullOrEmpty(source.RawServerURI))
|
||||
args["source_server_uri"] = OSD.FromString(source.RawServerURI);
|
||||
}
|
||||
|
||||
args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString());
|
||||
args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
|
||||
args["destination_name"] = OSD.FromString(destination.RegionName);
|
||||
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
|
||||
args["teleport_flags"] = OSD.FromString(flags.ToString());
|
||||
}
|
||||
|
||||
public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason)
|
||||
public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason)
|
||||
{
|
||||
string tmp = String.Empty;
|
||||
return CreateAgent(destination, aCircuit, flags, out tmp, out reason);
|
||||
return CreateAgent(source, destination, aCircuit, flags, out tmp, out reason);
|
||||
}
|
||||
|
||||
public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint flags, out string myipaddress, out string reason)
|
||||
public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string myipaddress, out string reason)
|
||||
{
|
||||
m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: Creating agent at {0}", destination.ServerURI);
|
||||
reason = String.Empty;
|
||||
@@ -111,7 +121,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
try
|
||||
{
|
||||
OSDMap args = aCircuit.PackAgentCircuitData();
|
||||
PackData(args, aCircuit, destination, flags);
|
||||
PackData(args, source, aCircuit, destination, flags);
|
||||
|
||||
OSDMap result = WebUtil.PostToServiceCompressed(uri, args, 30000);
|
||||
bool success = result["success"].AsBoolean();
|
||||
|
||||
Reference in New Issue
Block a user