aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-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 503b81a..1633e07 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4267,24 +4267,25 @@ namespace OpenSim.Region.Framework.Scenes
4267 ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); 4267 ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID);
4268 if (childAgentUpdate != null) 4268 if (childAgentUpdate != null)
4269 { 4269 {
4270 if (childAgentUpdate.ControllingClient.SessionId == cAgentData.SessionID) 4270 if (childAgentUpdate.ControllingClient.SessionId != cAgentData.SessionID)
4271 // Only warn for now
4272 m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}. Neighbor running older version?",
4273 childAgentUpdate.UUID, cAgentData.SessionID);
4274
4275 // I can't imagine *yet* why we would get an update if the agent is a root agent..
4276 // however to avoid a race condition crossing borders..
4277 if (childAgentUpdate.IsChildAgent)
4271 { 4278 {
4272 // I can't imagine *yet* why we would get an update if the agent is a root agent.. 4279 uint rRegionX = (uint)(cAgentData.RegionHandle >> 40);
4273 // however to avoid a race condition crossing borders.. 4280 uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8);
4274 if (childAgentUpdate.IsChildAgent) 4281 uint tRegionX = RegionInfo.RegionLocX;
4275 { 4282 uint tRegionY = RegionInfo.RegionLocY;
4276 uint rRegionX = (uint)(cAgentData.RegionHandle >> 40); 4283 //Send Data to ScenePresence
4277 uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8); 4284 childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY);
4278 uint tRegionX = RegionInfo.RegionLocX; 4285 // Not Implemented:
4279 uint tRegionY = RegionInfo.RegionLocY; 4286 //TODO: Do we need to pass the message on to one of our neighbors?
4280 //Send Data to ScenePresence
4281 childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY);
4282 // Not Implemented:
4283 //TODO: Do we need to pass the message on to one of our neighbors?
4284 }
4285 } 4287 }
4286 else 4288
4287 m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}", childAgentUpdate.UUID, cAgentData.SessionID);
4288 return true; 4289 return true;
4289 } 4290 }
4290 4291