diff options
Diffstat (limited to 'OpenSim')
-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 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 | ||