diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index ef0a119..c8cfd3a 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -2459,7 +2459,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
2459 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); | 2459 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); |
2460 | // rewrite session_id | 2460 | // rewrite session_id |
2461 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); | 2461 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); |
2462 | userinfo.SessionID = agent.SessionID; | 2462 | if (userinfo.SessionID != agent.SessionID) // means cache hit but outdated session ID |
2463 | { | ||
2464 | // Let's re-grab the whole user profile, because anything may have changed on the user server. | ||
2465 | CommsManager.UserProfileCacheService.RemoveUser(agent.AgentID); | ||
2466 | userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); | ||
2467 | } | ||
2463 | } | 2468 | } |
2464 | else | 2469 | else |
2465 | { | 2470 | { |