diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 33 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 4 |
2 files changed, 19 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index a3ea7d9..a3bd388 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4325,24 +4325,25 @@ namespace OpenSim.Region.Framework.Scenes | |||
4325 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); | 4325 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); |
4326 | if (childAgentUpdate != null) | 4326 | if (childAgentUpdate != null) |
4327 | { | 4327 | { |
4328 | if (childAgentUpdate.ControllingClient.SessionId == cAgentData.SessionID) | 4328 | if (childAgentUpdate.ControllingClient.SessionId != cAgentData.SessionID) |
4329 | // Only warn for now | ||
4330 | m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}. Neighbor running older version?", | ||
4331 | childAgentUpdate.UUID, cAgentData.SessionID); | ||
4332 | |||
4333 | // I can't imagine *yet* why we would get an update if the agent is a root agent.. | ||
4334 | // however to avoid a race condition crossing borders.. | ||
4335 | if (childAgentUpdate.IsChildAgent) | ||
4329 | { | 4336 | { |
4330 | // I can't imagine *yet* why we would get an update if the agent is a root agent.. | 4337 | uint rRegionX = (uint)(cAgentData.RegionHandle >> 40); |
4331 | // however to avoid a race condition crossing borders.. | 4338 | uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8); |
4332 | if (childAgentUpdate.IsChildAgent) | 4339 | uint tRegionX = RegionInfo.RegionLocX; |
4333 | { | 4340 | uint tRegionY = RegionInfo.RegionLocY; |
4334 | uint rRegionX = (uint)(cAgentData.RegionHandle >> 40); | 4341 | //Send Data to ScenePresence |
4335 | uint rRegionY = (((uint)(cAgentData.RegionHandle)) >> 8); | 4342 | childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY); |
4336 | uint tRegionX = RegionInfo.RegionLocX; | 4343 | // Not Implemented: |
4337 | uint tRegionY = RegionInfo.RegionLocY; | 4344 | //TODO: Do we need to pass the message on to one of our neighbors? |
4338 | //Send Data to ScenePresence | ||
4339 | childAgentUpdate.ChildAgentDataUpdate(cAgentData, tRegionX, tRegionY, rRegionX, rRegionY); | ||
4340 | // Not Implemented: | ||
4341 | //TODO: Do we need to pass the message on to one of our neighbors? | ||
4342 | } | ||
4343 | } | 4345 | } |
4344 | else | 4346 | |
4345 | m_log.WarnFormat("[SCENE]: Attempt at updating position of agent {0} with invalid session id {1}", childAgentUpdate.UUID, cAgentData.SessionID); | ||
4346 | return true; | 4347 | return true; |
4347 | } | 4348 | } |
4348 | 4349 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index bdcdf03..aac80f7 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -309,9 +309,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
309 | /// <summary> | 309 | /// <summary> |
310 | /// In the V1 teleport protocol, the destination simulator sends ReleaseAgent to this address. | 310 | /// In the V1 teleport protocol, the destination simulator sends ReleaseAgent to this address. |
311 | /// </summary> | 311 | /// </summary> |
312 | string m_callbackURI; | 312 | private string m_callbackURI; |
313 | 313 | ||
314 | UUID m_originRegionID; | 314 | public UUID m_originRegionID; |
315 | 315 | ||
316 | /// <summary> | 316 | /// <summary> |
317 | /// Used by the entity transfer module to signal when the presence should not be closed because a subsequent | 317 | /// Used by the entity transfer module to signal when the presence should not be closed because a subsequent |