aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs33
1 files changed, 17 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 56cd57e..b97a0f6 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4273,24 +4273,25 @@ namespace OpenSim.Region.Framework.Scenes
4273 ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); 4273 ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID);
4274 if (childAgentUpdate != null) 4274 if (childAgentUpdate != null)
4275 { 4275 {
4276 if (childAgentUpdate.ControllingClient.SessionId == cAgentData.SessionID) 4276 if (childAgentUpdate.ControllingClient.SessionId != cAgentData.SessionID)
4277 // Only warn for now
4278 m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}. Neighbor running older version?",
4279 childAgentUpdate.UUID, cAgentData.SessionID);
4280
4281 // I can't imagine *yet* why we would get an update if the agent is a root agent..
4282 // however to avoid a race condition crossing borders..
4283 if (childAgentUpdate.IsChildAgent)
4277 { 4284 {
4278 // I can't imagine *yet* why we would get an update if the agent is a root agent.. 4285 uint rRegionX = (uint)(cAgentData.RegionHandle >> 40);
4279 // however to avoid a race condition crossing borders.. 4286 uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8);
4280 if (childAgentUpdate.IsChildAgent) 4287 uint tRegionX = RegionInfo.RegionLocX;
4281 { 4288 uint tRegionY = RegionInfo.RegionLocY;
4282 uint rRegionX = (uint)(cAgentData.RegionHandle >> 40); 4289 //Send Data to ScenePresence
4283 uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8); 4290 childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY);
4284 uint tRegionX = RegionInfo.RegionLocX; 4291 // Not Implemented:
4285 uint tRegionY = RegionInfo.RegionLocY; 4292 //TODO: Do we need to pass the message on to one of our neighbors?
4286 //Send Data to ScenePresence
4287 childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY);
4288 // Not Implemented:
4289 //TODO: Do we need to pass the message on to one of our neighbors?
4290 }
4291 } 4293 }
4292 else 4294
4293 m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}", childAgentUpdate.UUID, cAgentData.SessionID);
4294 return true; 4295 return true;
4295 } 4296 }
4296 4297