* Rig up enough infrastructure to actually perform a successful 'standalone' teleport unit test with checks that the scene presence disappeared from sceneA and appeared in
sceneB * However, I'm not convinced that the actual process in the test completely reflects reality, and a lot of stuff had to be rigged up (which should get resolved over time)0.6.2-post-fixes
parent
bee9efa30e
commit
eca6442bae
|
@ -179,7 +179,7 @@ namespace OpenSim.Framework
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.Info("[CONFIG]: Calling Configuration Load Function...");
|
//m_log.Debug("[CONFIG]: Calling Configuration Load Function...");
|
||||||
loadFunction();
|
loadFunction();
|
||||||
|
|
||||||
if (configurationOptions.Count <= 0)
|
if (configurationOptions.Count <= 0)
|
||||||
|
|
|
@ -814,7 +814,12 @@ namespace OpenSim.Framework
|
||||||
void SendWindData(Vector2[] windSpeeds);
|
void SendWindData(Vector2[] windSpeeds);
|
||||||
|
|
||||||
void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look);
|
void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look);
|
||||||
void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint);
|
void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return circuit information for this client.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
AgentCircuitData RequestClientInfo();
|
AgentCircuitData RequestClientInfo();
|
||||||
|
|
||||||
void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint,
|
void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint,
|
||||||
|
|
|
@ -1366,10 +1366,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
OutPacket(enablesimpacket, ThrottleOutPacketType.Task);
|
OutPacket(enablesimpacket, ThrottleOutPacketType.Task);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public AgentCircuitData RequestClientInfo()
|
public AgentCircuitData RequestClientInfo()
|
||||||
{
|
{
|
||||||
AgentCircuitData agentData = new AgentCircuitData();
|
AgentCircuitData agentData = new AgentCircuitData();
|
||||||
|
|
|
@ -64,9 +64,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
|
||||||
TestLLUDPServer testLLUDPServer;
|
TestLLUDPServer testLLUDPServer;
|
||||||
TestLLPacketServer testLLPacketServer;
|
TestLLPacketServer testLLPacketServer;
|
||||||
AgentCircuitManager acm;
|
AgentCircuitManager acm;
|
||||||
SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm);
|
IScene scene = new MockScene();
|
||||||
|
SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm);
|
||||||
|
|
||||||
TestClient testClient = new TestClient(agent);
|
TestClient testClient = new TestClient(agent, scene);
|
||||||
|
|
||||||
ILLPacketHandler packetHandler
|
ILLPacketHandler packetHandler
|
||||||
= new LLPacketHandler(testClient, testLLPacketServer, new ClientStackUserSettings());
|
= new LLPacketHandler(testClient, testLLPacketServer, new ClientStackUserSettings());
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender
|
||||||
agent.InventoryFolder = UUID.Zero;
|
agent.InventoryFolder = UUID.Zero;
|
||||||
agent.startpos = Vector3.Zero;
|
agent.startpos = Vector3.Zero;
|
||||||
agent.CapsPath = "http://wibble.com";
|
agent.CapsPath = "http://wibble.com";
|
||||||
client = new TestClient(agent);
|
client = new TestClient(agent, null);
|
||||||
ts = new TextureSender(client, 0, 0);
|
ts = new TextureSender(client, 0, 0);
|
||||||
testsize = random.Next(5000,15000);
|
testsize = random.Next(5000,15000);
|
||||||
npackets = CalculateNumPackets(testsize);
|
npackets = CalculateNumPackets(testsize);
|
||||||
|
|
|
@ -128,6 +128,7 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// m_log.DebugFormat("[LOCAL COMMS]: Did not find region {0} for SendCreateChildAgent", regionHandle);
|
// m_log.DebugFormat("[LOCAL COMMS]: Did not find region {0} for SendCreateChildAgent", regionHandle);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -138,12 +139,16 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local
|
||||||
{
|
{
|
||||||
if (s.RegionInfo.RegionHandle == regionHandle)
|
if (s.RegionInfo.RegionHandle == regionHandle)
|
||||||
{
|
{
|
||||||
//m_log.Debug("[LOCAL COMMS]: Found region to send ChildAgentUpdate");
|
//m_log.DebugFormat(
|
||||||
|
// "[LOCAL COMMS]: Found region {0} {1} to send ChildAgentUpdate",
|
||||||
|
// s.RegionInfo.RegionName, regionHandle);
|
||||||
|
|
||||||
s.IncomingChildAgentDataUpdate(cAgentData);
|
s.IncomingChildAgentDataUpdate(cAgentData);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//m_log.Debug("[LOCAL COMMS]: region not found for ChildAgentUpdate");
|
|
||||||
|
// m_log.DebugFormat("[LOCAL COMMS]: Did not find region {0} for ChildAgentUpdate", regionHandle);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2777,7 +2777,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
// Don't disable this log message - it's too helpful
|
// Don't disable this log message - it's too helpful
|
||||||
m_log.DebugFormat(
|
m_log.DebugFormat(
|
||||||
"[CONNECTION BEGIN]: Scene {0} told of incoming client {1} {2} {3} (circuit code {4})",
|
"[CONNECTION BEGIN]: Region {0} told of incoming client {1} {2} {3} (circuit code {4})",
|
||||||
RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode);
|
RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode);
|
||||||
|
|
||||||
if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
|
if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
|
||||||
|
@ -2977,13 +2977,16 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public virtual bool IncomingChildAgentDataUpdate(AgentData cAgentData)
|
public virtual bool IncomingChildAgentDataUpdate(AgentData cAgentData)
|
||||||
{
|
{
|
||||||
//Console.WriteLine(" XXX Scene IncomingChildAgentDataUpdate FULL in " + RegionInfo.RegionName);
|
// m_log.DebugFormat(
|
||||||
|
// "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName);
|
||||||
|
|
||||||
ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID);
|
ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID);
|
||||||
if (childAgentUpdate != null)
|
if (childAgentUpdate != null)
|
||||||
{
|
{
|
||||||
childAgentUpdate.ChildAgentDataUpdate(cAgentData);
|
childAgentUpdate.ChildAgentDataUpdate(cAgentData);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3030,6 +3033,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// <param name="agentID"></param>
|
/// <param name="agentID"></param>
|
||||||
public bool IncomingCloseAgent(UUID agentID)
|
public bool IncomingCloseAgent(UUID agentID)
|
||||||
{
|
{
|
||||||
|
//m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID);
|
||||||
|
|
||||||
ScenePresence presence = m_sceneGraph.GetScenePresence(agentID);
|
ScenePresence presence = m_sceneGraph.GetScenePresence(agentID);
|
||||||
if (presence != null)
|
if (presence != null)
|
||||||
{
|
{
|
||||||
|
@ -3056,9 +3061,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
else
|
else
|
||||||
presence.ControllingClient.SendShutdownConnectionNotice();
|
presence.ControllingClient.SendShutdownConnectionNotice();
|
||||||
}
|
}
|
||||||
|
|
||||||
presence.ControllingClient.Close(true);
|
presence.ControllingClient.Close(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Agent not here
|
// Agent not here
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -758,6 +758,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
// both regions
|
// both regions
|
||||||
if (avatar.ParentID != (uint)0)
|
if (avatar.ParentID != (uint)0)
|
||||||
avatar.StandUp();
|
avatar.StandUp();
|
||||||
|
|
||||||
if (!avatar.ValidateAttachments())
|
if (!avatar.ValidateAttachments())
|
||||||
{
|
{
|
||||||
avatar.ControllingClient.SendTeleportFailed("Inconsistent attachment state");
|
avatar.ControllingClient.SendTeleportFailed("Inconsistent attachment state");
|
||||||
|
@ -772,13 +773,13 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
// once we reach here...
|
// once we reach here...
|
||||||
//avatar.Scene.RemoveCapsHandler(avatar.UUID);
|
//avatar.Scene.RemoveCapsHandler(avatar.UUID);
|
||||||
|
|
||||||
|
|
||||||
string capsPath = String.Empty;
|
string capsPath = String.Empty;
|
||||||
AgentCircuitData agentCircuit = avatar.ControllingClient.RequestClientInfo();
|
AgentCircuitData agentCircuit = avatar.ControllingClient.RequestClientInfo();
|
||||||
agentCircuit.BaseFolder = UUID.Zero;
|
agentCircuit.BaseFolder = UUID.Zero;
|
||||||
agentCircuit.InventoryFolder = UUID.Zero;
|
agentCircuit.InventoryFolder = UUID.Zero;
|
||||||
agentCircuit.startpos = position;
|
agentCircuit.startpos = position;
|
||||||
agentCircuit.child = true;
|
agentCircuit.child = true;
|
||||||
|
|
||||||
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
|
||||||
{
|
{
|
||||||
// brand new agent, let's create a new caps seed
|
// brand new agent, let's create a new caps seed
|
||||||
|
@ -871,7 +872,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
teleportFlags, capsPath);
|
teleportFlags, capsPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which
|
// TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which
|
||||||
// trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation
|
// trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation
|
||||||
// that the client contacted the destination before we send the attachments and close things here.
|
// that the client contacted the destination before we send the attachments and close things here.
|
||||||
|
|
|
@ -1017,9 +1017,12 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
if ((m_callbackURI != null) && !m_callbackURI.Equals(""))
|
if ((m_callbackURI != null) && !m_callbackURI.Equals(""))
|
||||||
{
|
{
|
||||||
|
//m_log.DebugFormat("Found callback URI {0}", m_callbackURI);
|
||||||
Scene.SendReleaseAgent(m_rootRegionHandle, UUID, m_callbackURI);
|
Scene.SendReleaseAgent(m_rootRegionHandle, UUID, m_callbackURI);
|
||||||
m_callbackURI = null;
|
m_callbackURI = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//m_log.DebugFormat("Completed movement");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2594,7 +2597,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ChildAgentDataUpdate(AgentPosition cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
|
public void ChildAgentDataUpdate(AgentPosition cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
|
||||||
{
|
{
|
||||||
//
|
|
||||||
if (!IsChildAgent)
|
if (!IsChildAgent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -2615,7 +2617,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0)
|
if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0)
|
||||||
ControllingClient.SetChildAgentThrottle(cAgentData.Throttles);
|
ControllingClient.SetChildAgentThrottle(cAgentData.Throttles);
|
||||||
|
|
||||||
|
|
||||||
// Sends out the objects in the user's draw distance if m_sendTasksToChild is true.
|
// Sends out the objects in the user's draw distance if m_sendTasksToChild is true.
|
||||||
if (m_scene.m_seeIntoRegionFromNeighbor)
|
if (m_scene.m_seeIntoRegionFromNeighbor)
|
||||||
m_pendingObjects = null;
|
m_pendingObjects = null;
|
||||||
|
@ -2662,7 +2663,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
|
cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cAgent.GodLevel = (byte)m_godlevel;
|
cAgent.GodLevel = (byte)m_godlevel;
|
||||||
cAgent.AlwaysRun = m_setAlwaysRun;
|
cAgent.AlwaysRun = m_setAlwaysRun;
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace OpenSim.Region.Environment.Scenes.Tests
|
||||||
agent.CapsPath = "http://wibble.com";
|
agent.CapsPath = "http://wibble.com";
|
||||||
|
|
||||||
scene.NewUserConnection(agent);
|
scene.NewUserConnection(agent);
|
||||||
scene.AddNewClient(new TestClient(agent));
|
scene.AddNewClient(new TestClient(agent, scene));
|
||||||
|
|
||||||
ScenePresence presence = scene.GetScenePresence(agentId);
|
ScenePresence presence = scene.GetScenePresence(agentId);
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ namespace OpenSim.Region.Environment.Scenes.Tests
|
||||||
scene.NewUserConnection(agent);
|
scene.NewUserConnection(agent);
|
||||||
|
|
||||||
// Stage 2: add the new client as a child agent to the scene
|
// Stage 2: add the new client as a child agent to the scene
|
||||||
TestClient client = new TestClient(agent);
|
TestClient client = new TestClient(agent, scene);
|
||||||
scene.AddNewClient(client);
|
scene.AddNewClient(client);
|
||||||
|
|
||||||
// Stage 3: Invoke agent crossing, which converts the child agent into a root agent (with appearance,
|
// Stage 3: Invoke agent crossing, which converts the child agent into a root agent (with appearance,
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
using Nini.Config;
|
using Nini.Config;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using NUnit.Framework.SyntaxHelpers;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
using OpenSim.Framework.Communications;
|
using OpenSim.Framework.Communications;
|
||||||
|
@ -77,9 +78,14 @@ namespace OpenSim.Region.Environment.Scenes.Tests
|
||||||
|
|
||||||
TestClient client = SceneTestUtils.AddRootAgent(sceneA, agentId);
|
TestClient client = SceneTestUtils.AddRootAgent(sceneA, agentId);
|
||||||
|
|
||||||
client.Teleport(sceneB.RegionInfo.RegionHandle, new Vector3(100, 100, 100), new Vector3(40, 40, 40));
|
// FIXME: This is a hack to get the test working - really the normal OpenSim mechanisms should be used.
|
||||||
|
client.TeleportTargetScene = sceneB;
|
||||||
|
|
||||||
// TODO: Check that everything is as it should be
|
client.Teleport(sceneB.RegionInfo.RegionHandle, new Vector3(100, 100, 100), new Vector3(40, 40, 40));
|
||||||
|
Assert.That(sceneB.GetScenePresence(agentId), Is.Not.Null, "Client does not have an agent in sceneB");
|
||||||
|
Assert.That(sceneA.GetScenePresence(agentId), Is.Null, "Client still had an agent in sceneA");
|
||||||
|
|
||||||
|
// TODO: Check that more of everything is as it should be
|
||||||
|
|
||||||
// TODO: test what happens if we try to teleport to a region that doesn't exist
|
// TODO: test what happens if we try to teleport to a region that doesn't exist
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Reflection;
|
||||||
|
using log4net;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
using OpenMetaverse.Packets;
|
using OpenMetaverse.Packets;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
@ -37,11 +39,18 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
{
|
{
|
||||||
public class TestClient : IClientAPI
|
public class TestClient : IClientAPI
|
||||||
{
|
{
|
||||||
private Scene m_scene;
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
// Mock testing variables
|
// Mock testing variables
|
||||||
public List<ImageDataPacket> sentdatapkt = new List<ImageDataPacket>();
|
public List<ImageDataPacket> sentdatapkt = new List<ImageDataPacket>();
|
||||||
public List<ImagePacketPacket> sentpktpkt = new List<ImagePacketPacket>();
|
public List<ImagePacketPacket> sentpktpkt = new List<ImagePacketPacket>();
|
||||||
|
|
||||||
|
// TODO: This is a really nasty (and temporary) means of telling the test client which scene to invoke setup
|
||||||
|
// methods on when a teleport is requested
|
||||||
|
public Scene TeleportTargetScene;
|
||||||
|
private TestClient TeleportSceneClient;
|
||||||
|
|
||||||
|
private IScene m_scene;
|
||||||
|
|
||||||
// disable warning: public events, part of the public API
|
// disable warning: public events, part of the public API
|
||||||
#pragma warning disable 67
|
#pragma warning disable 67
|
||||||
|
@ -259,7 +268,7 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
/// <value>
|
/// <value>
|
||||||
/// This agent's UUID
|
/// This agent's UUID
|
||||||
/// </value>
|
/// </value>
|
||||||
private UUID myID;
|
private UUID m_agentId;
|
||||||
|
|
||||||
private Vector3 startPos = new Vector3(128, 128, 2);
|
private Vector3 startPos = new Vector3(128, 128, 2);
|
||||||
|
|
||||||
|
@ -271,7 +280,7 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
|
|
||||||
public virtual UUID AgentId
|
public virtual UUID AgentId
|
||||||
{
|
{
|
||||||
get { return myID; }
|
get { return m_agentId; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public UUID SessionId
|
public UUID SessionId
|
||||||
|
@ -359,11 +368,14 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="agentData"></param>
|
/// <param name="agentData"></param>
|
||||||
public TestClient(AgentCircuitData agentData)
|
/// <param name="scene"></param>
|
||||||
|
public TestClient(AgentCircuitData agentData, IScene scene)
|
||||||
{
|
{
|
||||||
myID = agentData.AgentID;
|
m_agentId = agentData.AgentID;
|
||||||
m_firstName = agentData.firstname;
|
m_firstName = agentData.firstname;
|
||||||
m_lastName = agentData.lastname;
|
m_lastName = agentData.lastname;
|
||||||
|
m_circuitCode = agentData.circuitcode;
|
||||||
|
m_scene = scene;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -376,6 +388,11 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
{
|
{
|
||||||
OnTeleportLocationRequest(this, regionHandle, position, lookAt, 16);
|
OnTeleportLocationRequest(this, regionHandle, position, lookAt, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CompleteMovement()
|
||||||
|
{
|
||||||
|
OnCompleteMovementToRegion();
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void ActivateGesture(UUID assetId, UUID gestureId)
|
public virtual void ActivateGesture(UUID assetId, UUID gestureId)
|
||||||
{
|
{
|
||||||
|
@ -465,14 +482,48 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual AgentCircuitData RequestClientInfo()
|
public virtual AgentCircuitData RequestClientInfo()
|
||||||
{
|
{
|
||||||
return new AgentCircuitData();
|
AgentCircuitData agentData = new AgentCircuitData();
|
||||||
|
agentData.AgentID = AgentId;
|
||||||
|
agentData.SessionID = UUID.Zero;
|
||||||
|
agentData.SecureSessionID = UUID.Zero;
|
||||||
|
agentData.circuitcode = m_circuitCode;
|
||||||
|
agentData.child = false;
|
||||||
|
agentData.firstname = m_firstName;
|
||||||
|
agentData.lastname = m_lastName;
|
||||||
|
agentData.CapsPath = m_scene.GetCapsPath(m_agentId);
|
||||||
|
agentData.ChildrenCapSeeds = new Dictionary<ulong,string>(m_scene.GetChildrenSeeds(m_agentId));
|
||||||
|
|
||||||
|
return agentData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint)
|
||||||
|
{
|
||||||
|
m_log.DebugFormat("[TEST CLIENT]: Processing inform client of neighbour");
|
||||||
|
|
||||||
|
// In response to this message, we are going to make a teleport to the scene we've previous been told
|
||||||
|
// about by test code (this needs to be improved).
|
||||||
|
AgentCircuitData newAgent = RequestClientInfo();
|
||||||
|
|
||||||
|
// Stage 2: add the new client as a child agent to the scene
|
||||||
|
TeleportSceneClient = new TestClient(newAgent, TeleportTargetScene);
|
||||||
|
TeleportTargetScene.AddNewClient(TeleportSceneClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint,
|
||||||
|
uint locationID, uint flags, string capsURL)
|
||||||
|
{
|
||||||
|
m_log.DebugFormat("[TEST CLIENT]: Received SendRegionTeleport");
|
||||||
|
|
||||||
|
TeleportSceneClient.CompleteMovement();
|
||||||
|
//TeleportTargetScene.AgentCrossing(newAgent.AgentID, new Vector3(90, 90, 90), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void SendTeleportFailed(string reason)
|
||||||
|
{
|
||||||
|
m_log.DebugFormat("[TEST CLIENT]: Teleport failed with reason {0}", reason);
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt,
|
public virtual void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt,
|
||||||
IPEndPoint newRegionExternalEndPoint, string capsURL)
|
IPEndPoint newRegionExternalEndPoint, string capsURL)
|
||||||
|
@ -487,15 +538,6 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint,
|
|
||||||
uint locationID, uint flags, string capsURL)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void SendTeleportFailed(string reason)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void SendTeleportLocationStart()
|
public virtual void SendTeleportLocationStart()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -788,6 +830,7 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
|
|
||||||
public void Close(bool ShutdownCircuit)
|
public void Close(bool ShutdownCircuit)
|
||||||
{
|
{
|
||||||
|
m_scene.RemoveClient(AgentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
|
|
|
@ -2461,6 +2461,7 @@
|
||||||
<Reference name="System.Drawing"/>
|
<Reference name="System.Drawing"/>
|
||||||
<Reference name="System.Xml"/>
|
<Reference name="System.Xml"/>
|
||||||
<Reference name="System.Data"/>
|
<Reference name="System.Data"/>
|
||||||
|
<Reference name="log4net.dll"/>
|
||||||
<Reference name="Nini.dll" />
|
<Reference name="Nini.dll" />
|
||||||
<Reference name="nunit.framework.dll" />
|
<Reference name="nunit.framework.dll" />
|
||||||
<Reference name="OpenMetaverse.dll"/>
|
<Reference name="OpenMetaverse.dll"/>
|
||||||
|
|
Loading…
Reference in New Issue