aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs47
1 files changed, 14 insertions, 33 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
index da4785b..622ba86 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
@@ -48,8 +48,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
48 protected CommunicationsManager commsManager; 48 protected CommunicationsManager commsManager;
49 protected Dictionary<UUID, int> assetUuids = new Dictionary<UUID, int>(); 49 protected Dictionary<UUID, int> assetUuids = new Dictionary<UUID, int>();
50 50
51 private string m_firstName; 51 private CachedUserInfo m_userInfo;
52 private string m_lastName;
53 private string m_invPath; 52 private string m_invPath;
54 53
55 /// <value> 54 /// <value>
@@ -61,13 +60,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
61 /// Constructor 60 /// Constructor
62 /// </summary> 61 /// </summary>
63 public InventoryArchiveWriteRequest( 62 public InventoryArchiveWriteRequest(
64 string firstName, string lastName, string invPath, string savePath, CommunicationsManager commsManager) 63 CachedUserInfo userInfo, string invPath, string savePath, CommunicationsManager commsManager)
65 : this( 64 : this(
66 firstName, 65 userInfo,
67 lastName, 66 invPath,
68 invPath, 67 new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress),
69 new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress), 68 commsManager)
70 commsManager)
71 { 69 {
72 } 70 }
73 71
@@ -75,10 +73,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
75 /// Constructor 73 /// Constructor
76 /// </summary> 74 /// </summary>
77 public InventoryArchiveWriteRequest( 75 public InventoryArchiveWriteRequest(
78 string firstName, string lastName, string invPath, Stream saveStream, CommunicationsManager commsManager) 76 CachedUserInfo userInfo, string invPath, Stream saveStream, CommunicationsManager commsManager)
79 { 77 {
80 m_firstName = firstName; 78 m_userInfo = userInfo;
81 m_lastName = lastName;
82 m_invPath = invPath; 79 m_invPath = invPath;
83 m_saveStream = saveStream; 80 m_saveStream = saveStream;
84 this.commsManager = commsManager; 81 this.commsManager = commsManager;
@@ -183,26 +180,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
183 180
184 public void Execute() 181 public void Execute()
185 { 182 {
186 UserProfileData userProfile = commsManager.UserService.GetUserProfile(m_firstName, m_lastName);
187 if (null == userProfile)
188 {
189 m_log.ErrorFormat("[INVENTORY ARCHIVER]: Failed to find user {0} {1}", m_firstName, m_lastName);
190 return;
191 }
192
193 CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userProfile.ID);
194 if (null == userInfo)
195 {
196 m_log.ErrorFormat(
197 "[INVENTORY ARCHIVER]: Failed to find user info for {0} {1} {2}",
198 m_firstName, m_lastName, userProfile.ID);
199 return;
200 }
201
202 InventoryFolderImpl inventoryFolder = null; 183 InventoryFolderImpl inventoryFolder = null;
203 InventoryItemBase inventoryItem = null; 184 InventoryItemBase inventoryItem = null;
204 185
205 if (userInfo.HasReceivedInventory) 186 if (m_userInfo.HasReceivedInventory)
206 { 187 {
207 // Eliminate double slashes and any leading / on the path. This might be better done within InventoryFolderImpl 188 // Eliminate double slashes and any leading / on the path. This might be better done within InventoryFolderImpl
208 // itself (possibly at a small loss in efficiency). 189 // itself (possibly at a small loss in efficiency).
@@ -218,25 +199,25 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
218 // Therefore if we still start with a / after the split, then we need the root folder 199 // Therefore if we still start with a / after the split, then we need the root folder
219 if (m_invPath.Length == 0) 200 if (m_invPath.Length == 0)
220 { 201 {
221 inventoryFolder = userInfo.RootFolder; 202 inventoryFolder = m_userInfo.RootFolder;
222 } 203 }
223 else 204 else
224 { 205 {
225 m_invPath = m_invPath.Remove(m_invPath.LastIndexOf(InventoryFolderImpl.PATH_DELIMITER)); 206 m_invPath = m_invPath.Remove(m_invPath.LastIndexOf(InventoryFolderImpl.PATH_DELIMITER));
226 inventoryFolder = userInfo.RootFolder.FindFolderByPath(m_invPath); 207 inventoryFolder = m_userInfo.RootFolder.FindFolderByPath(m_invPath);
227 } 208 }
228 209
229 // The path may point to an item instead 210 // The path may point to an item instead
230 if (inventoryFolder == null) 211 if (inventoryFolder == null)
231 { 212 {
232 inventoryItem = userInfo.RootFolder.FindItemByPath(m_invPath); 213 inventoryItem = m_userInfo.RootFolder.FindItemByPath(m_invPath);
233 } 214 }
234 } 215 }
235 else 216 else
236 { 217 {
237 m_log.ErrorFormat( 218 m_log.ErrorFormat(
238 "[INVENTORY ARCHIVER]: Have not yet received inventory info for user {0} {1} {2}", 219 "[INVENTORY ARCHIVER]: Have not yet received inventory info for user {0} {1}",
239 m_firstName, m_lastName, userProfile.ID); 220 m_userInfo.UserProfile.Name, m_userInfo.UserProfile.ID);
240 return; 221 return;
241 } 222 }
242 223