From 69585a4824a7814bbe543d624de6c3627e0b927b Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Sun, 1 Nov 2015 19:11:14 +0100
Subject: More plumbing of the EntityTransferContext (not yet complete)
---
.../Connectors/Hypergrid/UserAgentServiceConnector.cs | 3 ++-
.../SimianGrid/SimianAvatarServiceConnector.cs | 2 +-
.../Connectors/Simulation/SimulationServiceConnector.cs | 17 +++++++++--------
OpenSim/Services/HypergridService/GatekeeperService.cs | 2 +-
OpenSim/Services/HypergridService/UserAgentService.cs | 4 +++-
OpenSim/Services/Interfaces/IAvatarService.cs | 3 ++-
OpenSim/Services/Interfaces/ISimulationService.cs | 4 ++--
OpenSim/Services/LLLoginService/LLLoginService.cs | 2 +-
8 files changed, 21 insertions(+), 16 deletions(-)
(limited to 'OpenSim/Services')
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 8abd046..1dcc82a 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -138,7 +138,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
Console.WriteLine(" >>> LoginAgentToGrid <<< " + home.ServerURI);
uint flags = fromLogin ? (uint)TeleportFlags.ViaLogin : (uint)TeleportFlags.ViaHome;
- return CreateAgent(source, home, aCircuit, flags, out reason);
+ EntityTransferContext ctx = new EntityTransferContext();
+ return CreateAgent(source, home, aCircuit, flags, ctx, out reason);
}
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
index a397740..d355eab 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
@@ -152,7 +152,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
//
public bool SetAppearance(UUID userID, AvatarAppearance appearance)
{
- OSDMap map = appearance.Pack();
+ OSDMap map = appearance.Pack(-1);
if (map == null)
{
m_log.WarnFormat("[SIMIAN AVATAR CONNECTOR]: Failed to encode appearance for {0}",userID);
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index 3bf03cf..bb47e6b 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -98,13 +98,13 @@ namespace OpenSim.Services.Connectors.Simulation
args["teleport_flags"] = OSD.FromString(flags.ToString());
}
- public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason)
+ public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, EntityTransferContext ctx, out string reason)
{
string tmp = String.Empty;
- return CreateAgent(source, destination, aCircuit, flags, out tmp, out reason);
+ return CreateAgent(source, destination, aCircuit, flags, ctx, out tmp, out reason);
}
- public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string myipaddress, out string reason)
+ public bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, EntityTransferContext ctx, out string myipaddress, out string reason)
{
m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: Creating agent at {0}", destination.ServerURI);
reason = String.Empty;
@@ -121,7 +121,7 @@ namespace OpenSim.Services.Connectors.Simulation
try
{
- OSDMap args = aCircuit.PackAgentCircuitData();
+ OSDMap args = aCircuit.PackAgentCircuitData(-1);
PackData(args, source, aCircuit, destination, flags);
OSDMap result = WebUtil.PostToServiceCompressed(uri, args, 30000);
@@ -172,9 +172,9 @@ namespace OpenSim.Services.Connectors.Simulation
///
/// Send complete data about an agent in this region to a neighbor
///
- public bool UpdateAgent(GridRegion destination, AgentData data)
+ public bool UpdateAgent(GridRegion destination, AgentData data, EntityTransferContext ctx)
{
- return UpdateAgent(destination, (IAgentData)data, 200000); // yes, 200 seconds
+ return UpdateAgent(destination, (IAgentData)data, ctx, 200000); // yes, 200 seconds
}
private ExpiringCache _failedSims = new ExpiringCache();
@@ -235,7 +235,8 @@ namespace OpenSim.Services.Connectors.Simulation
}
}
- success = UpdateAgent(destination, (IAgentData)pos, 10000);
+ EntityTransferContext ctx = new EntityTransferContext(); // Dummy, not needed for position
+ success = UpdateAgent(destination, (IAgentData)pos, ctx, 10000);
}
// we get here iff success == false
// blacklist sim for 2 minutes
@@ -250,7 +251,7 @@ namespace OpenSim.Services.Connectors.Simulation
///
/// This is the worker function to send AgentData to a neighbor region
///
- private bool UpdateAgent(GridRegion destination, IAgentData cAgentData, int timeout)
+ private bool UpdateAgent(GridRegion destination, IAgentData cAgentData, EntityTransferContext ctx, int timeout)
{
// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: UpdateAgent in {0}", destination.ServerURI);
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index 8e10125..9643a8b 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -459,7 +459,7 @@ namespace OpenSim.Services.HypergridService
true, aCircuit.startpos, new List(), ctx, out reason))
return false;
- return m_SimulationService.CreateAgent(source, destination, aCircuit, (uint)loginFlag, out reason);
+ return m_SimulationService.CreateAgent(source, destination, aCircuit, (uint)loginFlag, ctx, out reason);
}
protected bool Authenticate(AgentCircuitData aCircuit)
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index c65122a..317d006 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -281,7 +281,9 @@ namespace OpenSim.Services.HypergridService
}
else
{
- success = m_GatekeeperConnector.CreateAgent(source, region, agentCircuit, (uint)Constants.TeleportFlags.ViaLogin, out myExternalIP, out reason);
+ //TODO: Should there not be a call to QueryAccess here?
+ EntityTransferContext ctx = new EntityTransferContext();
+ success = m_GatekeeperConnector.CreateAgent(source, region, agentCircuit, (uint)Constants.TeleportFlags.ViaLogin, ctx, out myExternalIP, out reason);
}
if (!success)
diff --git a/OpenSim/Services/Interfaces/IAvatarService.cs b/OpenSim/Services/Interfaces/IAvatarService.cs
index bd66dad..99b71b9 100644
--- a/OpenSim/Services/Interfaces/IAvatarService.cs
+++ b/OpenSim/Services/Interfaces/IAvatarService.cs
@@ -150,7 +150,8 @@ namespace OpenSim.Services.Interfaces
// Wearables
Data["AvatarHeight"] = appearance.AvatarHeight.ToString();
- for (int i = 0 ; i < AvatarWearable.MAX_WEARABLES ; i++)
+ // TODO: With COF, is this even needed?
+ for (int i = 0 ; i < AvatarWearable.LEGACY_VERSION_MAX_WEARABLES ; i++)
{
for (int j = 0 ; j < appearance.Wearables[i].Count ; j++)
{
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs
index 3f6b009..4496a9f 100644
--- a/OpenSim/Services/Interfaces/ISimulationService.cs
+++ b/OpenSim/Services/Interfaces/ISimulationService.cs
@@ -74,7 +74,7 @@ namespace OpenSim.Services.Interfaces
///
///
/// Reason message in the event of a failure.
- bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason);
+ bool CreateAgent(GridRegion source, GridRegion destination, AgentCircuitData aCircuit, uint flags, EntityTransferContext ctx, out string reason);
///
/// Full child agent update.
@@ -82,7 +82,7 @@ namespace OpenSim.Services.Interfaces
///
///
///
- bool UpdateAgent(GridRegion destination, AgentData data);
+ bool UpdateAgent(GridRegion destination, AgentData data, EntityTransferContext ctx);
///
/// Short child agent update, mostly for position.
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index 619a527..6681f1a 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -999,7 +999,7 @@ namespace OpenSim.Services.LLLoginService
region, aCircuit.AgentID, null, true, aCircuit.startpos, new List(), ctx, out reason))
return false;
- return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason);
+ return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, ctx, out reason);
}
private bool LaunchAgentIndirectly(GridRegion gatekeeper, GridRegion destination, AgentCircuitData aCircuit, IPEndPoint clientIP, out string reason)
--
cgit v1.1