diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | 32 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs | 42 |
2 files changed, 50 insertions, 24 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 7b4a9eb..c6ebb24 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -118,6 +118,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
118 | 118 | ||
119 | protected void ReceivedAllAssets(ICollection<UUID> assetsFoundUuids, ICollection<UUID> assetsNotFoundUuids) | 119 | protected void ReceivedAllAssets(ICollection<UUID> assetsFoundUuids, ICollection<UUID> assetsNotFoundUuids) |
120 | { | 120 | { |
121 | // We're almost done. Just need to write out the control file now | ||
122 | m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile()); | ||
123 | m_log.InfoFormat("[ARCHIVER]: Added control file to archive."); | ||
124 | |||
121 | Exception reportedException = null; | 125 | Exception reportedException = null; |
122 | bool succeeded = true; | 126 | bool succeeded = true; |
123 | 127 | ||
@@ -320,7 +324,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
320 | SaveInvFolder(inventoryFolder, ArchiveConstants.INVENTORY_PATH, !foundStar); | 324 | SaveInvFolder(inventoryFolder, ArchiveConstants.INVENTORY_PATH, !foundStar); |
321 | } | 325 | } |
322 | 326 | ||
323 | SaveUsers(); | 327 | // Don't put all this profile information into the archive right now. |
328 | //SaveUsers(); | ||
329 | |||
324 | new AssetsRequest( | 330 | new AssetsRequest( |
325 | new AssetsArchiver(m_archiveWriter), m_assetUuids.Keys, | 331 | new AssetsArchiver(m_archiveWriter), m_assetUuids.Keys, |
326 | m_scene.AssetService, ReceivedAllAssets).Execute(); | 332 | m_scene.AssetService, ReceivedAllAssets).Execute(); |
@@ -409,5 +415,29 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
409 | ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR, | 415 | ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR, |
410 | id); | 416 | id); |
411 | } | 417 | } |
418 | |||
419 | /// <summary> | ||
420 | /// Create the control file for a 0.1 version archive | ||
421 | /// </summary> | ||
422 | /// <returns></returns> | ||
423 | public static string Create0p1ControlFile() | ||
424 | { | ||
425 | StringWriter sw = new StringWriter(); | ||
426 | XmlTextWriter xtw = new XmlTextWriter(sw); | ||
427 | xtw.Formatting = Formatting.Indented; | ||
428 | xtw.WriteStartDocument(); | ||
429 | xtw.WriteStartElement("archive"); | ||
430 | xtw.WriteAttributeString("major_version", "0"); | ||
431 | xtw.WriteAttributeString("minor_version", "1"); | ||
432 | xtw.WriteEndElement(); | ||
433 | |||
434 | xtw.Flush(); | ||
435 | xtw.Close(); | ||
436 | |||
437 | String s = sw.ToString(); | ||
438 | sw.Close(); | ||
439 | |||
440 | return s; | ||
441 | } | ||
412 | } | 442 | } |
413 | } \ No newline at end of file | 443 | } \ No newline at end of file |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs index 196205c..55dce05 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs | |||
@@ -322,7 +322,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
322 | /// <param name="pass">User password</param> | 322 | /// <param name="pass">User password</param> |
323 | /// <returns></returns> | 323 | /// <returns></returns> |
324 | protected CachedUserInfo GetUserInfo(string firstName, string lastName, string pass) | 324 | protected CachedUserInfo GetUserInfo(string firstName, string lastName, string pass) |
325 | { | 325 | { |
326 | CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); | 326 | CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); |
327 | //m_aScene.CommsManager.UserService.GetUserProfile(firstName, lastName); | 327 | //m_aScene.CommsManager.UserService.GetUserProfile(firstName, lastName); |
328 | if (null == userInfo) | 328 | if (null == userInfo) |
@@ -333,29 +333,25 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
333 | return null; | 333 | return null; |
334 | } | 334 | } |
335 | 335 | ||
336 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | 336 | try |
337 | 337 | { | |
338 | if (userInfo.UserProfile.PasswordHash == null || userInfo.UserProfile.PasswordHash == String.Empty) | 338 | if (m_aScene.CommsManager.UserService.AuthenticateUserByPassword(userInfo.UserProfile.ID, pass)) |
339 | { | 339 | { |
340 | m_log.ErrorFormat( | 340 | return userInfo; |
341 | "[INVENTORY ARCHIVER]: Sorry, the grid mode service is not providing password hash details for the check. This will be fixed in an OpenSim git revision soon"); | 341 | } |
342 | 342 | else | |
343 | return null; | 343 | { |
344 | m_log.ErrorFormat( | ||
345 | "[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.", | ||
346 | firstName, lastName); | ||
347 | return null; | ||
348 | } | ||
344 | } | 349 | } |
345 | 350 | catch (Exception e) | |
346 | // m_log.DebugFormat( | ||
347 | // "[INVENTORY ARCHIVER]: received salt {0}, hash {1}, supplied hash {2}", | ||
348 | // userInfo.UserProfile.PasswordSalt, userInfo.UserProfile.PasswordHash, md5PasswdHash); | ||
349 | |||
350 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
351 | { | 351 | { |
352 | m_log.ErrorFormat( | 352 | m_log.ErrorFormat("[INVENTORY ARCHIVER]: Could not authenticate password, {0}", e.Message); |
353 | "[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.", | ||
354 | firstName, lastName); | ||
355 | return null; | 353 | return null; |
356 | } | 354 | } |
357 | |||
358 | return userInfo; | ||
359 | } | 355 | } |
360 | 356 | ||
361 | /// <summary> | 357 | /// <summary> |
@@ -375,9 +371,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
375 | { | 371 | { |
376 | foreach (InventoryNodeBase node in loadedNodes) | 372 | foreach (InventoryNodeBase node in loadedNodes) |
377 | { | 373 | { |
378 | m_log.DebugFormat( | 374 | // m_log.DebugFormat( |
379 | "[INVENTORY ARCHIVER]: Notifying {0} of loaded inventory node {1}", | 375 | // "[INVENTORY ARCHIVER]: Notifying {0} of loaded inventory node {1}", |
380 | user.Name, node.Name); | 376 | // user.Name, node.Name); |
381 | 377 | ||
382 | user.ControllingClient.SendBulkUpdateInventory(node); | 378 | user.ControllingClient.SendBulkUpdateInventory(node); |
383 | } | 379 | } |