aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
diff options
context:
space:
mode:
authorMike Mazur2008-08-12 06:21:02 +0000
committerMike Mazur2008-08-12 06:21:02 +0000
commit8ea92c0669de17f4967540ecc1350860aa346f06 (patch)
treefb3502211612e8b34e1102ba39880a2fd77f2e5c /OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
parentRemove "static" from the AsyncCommand Manager to make it work properly (diff)
downloadopensim-SC_OLD-8ea92c0669de17f4967540ecc1350860aa346f06.zip
opensim-SC_OLD-8ea92c0669de17f4967540ecc1350860aa346f06.tar.gz
opensim-SC_OLD-8ea92c0669de17f4967540ecc1350860aa346f06.tar.bz2
opensim-SC_OLD-8ea92c0669de17f4967540ecc1350860aa346f06.tar.xz
Thanks, lulurun, for a patch that addresses inventory problems that occur
occasionally, but are fixed on restart (issue 1919). This patch introduces the following changes: 1. when a user teleports out of Region A, remove that user's profile from the Region A user profile cache 2. when a user crosses between regions out of Region A, remove that user's profile from the Region A user profile cache 3. the user profile cache's session ID member can now be set (written), and is updated each time a connection with a new avatar is established (ie: a new avatar enters the region) 4. when a region server looks up a user profile and a cache miss occurs, fetch the user profile from the user server first instead of immediately returning null
Diffstat (limited to 'OpenSim/Framework/Communications/Cache/CachedUserInfo.cs')
-rw-r--r--OpenSim/Framework/Communications/Cache/CachedUserInfo.cs23
1 files changed, 6 insertions, 17 deletions
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
index d85eda0..57f5e76 100644
--- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
+++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
@@ -85,8 +85,12 @@ namespace OpenSim.Framework.Communications.Cache
85 /// </summary> 85 /// </summary>
86 private IDictionary<LLUUID, IList<InventoryFolderImpl>> pendingCategorizationFolders 86 private IDictionary<LLUUID, IList<InventoryFolderImpl>> pendingCategorizationFolders
87 = new Dictionary<LLUUID, IList<InventoryFolderImpl>>(); 87 = new Dictionary<LLUUID, IList<InventoryFolderImpl>>();
88 88
89 public LLUUID SessionID { get { return m_session_id; } } 89 public LLUUID SessionID
90 {
91 get { return m_session_id; }
92 set { m_session_id = value; }
93 }
90 private LLUUID m_session_id = LLUUID.Zero; 94 private LLUUID m_session_id = LLUUID.Zero;
91 95
92 /// <summary> 96 /// <summary>
@@ -101,21 +105,6 @@ namespace OpenSim.Framework.Communications.Cache
101 } 105 }
102 106
103 /// <summary> 107 /// <summary>
104 /// Constructor
105 /// </summary>
106 /// <param name="commsManager"></param>
107 /// <param name="userProfile"></param>
108 /// <param name="sessionId">
109 /// Session id of the user. This is used in subsequent security checks.
110 /// </param>
111 public CachedUserInfo(CommunicationsManager commsManager, UserProfileData userProfile, LLUUID sessionId)
112 {
113 m_commsManager = commsManager;
114 m_userProfile = userProfile;
115 m_session_id = sessionId;
116 }
117
118 /// <summary>
119 /// This allows a request to be added to be processed once we receive a user's inventory 108 /// This allows a request to be added to be processed once we receive a user's inventory
120 /// from the inventory service. If we already have the inventory, the request 109 /// from the inventory service. If we already have the inventory, the request
121 /// is executed immediately instead. 110 /// is executed immediately instead.