diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 33 |
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 | ||