aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs17
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs2
2 files changed, 8 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index 806aa4f..256a886 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -139,10 +139,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
139 } 139 }
140 else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) 140 else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH))
141 { 141 {
142 filePath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length);
143
144 // Trim off the file portion if we aren't already dealing with a directory path
145 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
146 filePath = filePath.Remove(filePath.LastIndexOf("/") + 1);
147
142 InventoryFolderBase foundFolder 148 InventoryFolderBase foundFolder
143 = ReplicateArchivePathToUserInventory( 149 = ReplicateArchivePathToUserInventory(
144 filePath, TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType, 150 filePath, rootDestinationFolder, foldersCreated, nodesLoaded);
145 rootDestinationFolder, foldersCreated, nodesLoaded);
146 151
147 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) 152 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
148 { 153 {
@@ -184,7 +189,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
184 /// Replicate the inventory paths in the archive to the user's inventory as necessary. 189 /// Replicate the inventory paths in the archive to the user's inventory as necessary.
185 /// </summary> 190 /// </summary>
186 /// <param name="archivePath">The item archive path to replicate</param> 191 /// <param name="archivePath">The item archive path to replicate</param>
187 /// <param name="isDir">Is the path we're dealing with a directory?</param>
188 /// <param name="rootDestinationFolder">The root folder for the inventory load</param> 192 /// <param name="rootDestinationFolder">The root folder for the inventory load</param>
189 /// <param name="foldersCreated"> 193 /// <param name="foldersCreated">
190 /// The folders created so far. This method will add more folders if necessary 194 /// The folders created so far. This method will add more folders if necessary
@@ -196,17 +200,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
196 /// <returns>The last user inventory folder created or found for the archive path</returns> 200 /// <returns>The last user inventory folder created or found for the archive path</returns>
197 public InventoryFolderBase ReplicateArchivePathToUserInventory( 201 public InventoryFolderBase ReplicateArchivePathToUserInventory(
198 string archivePath, 202 string archivePath,
199 bool isDir,
200 InventoryFolderBase rootDestFolder, 203 InventoryFolderBase rootDestFolder,
201 Dictionary <string, InventoryFolderBase> foldersCreated, 204 Dictionary <string, InventoryFolderBase> foldersCreated,
202 List<InventoryNodeBase> nodesLoaded) 205 List<InventoryNodeBase> nodesLoaded)
203 { 206 {
204 archivePath = archivePath.Substring(ArchiveConstants.INVENTORY_PATH.Length);
205
206 // Remove the file portion if we aren't already dealing with a directory path
207 if (!isDir)
208 archivePath = archivePath.Remove(archivePath.LastIndexOf("/") + 1);
209
210 string originalArchivePath = archivePath; 207 string originalArchivePath = archivePath;
211 208
212// m_log.DebugFormat( 209// m_log.DebugFormat(
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 507662f..cb6bf76 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -531,7 +531,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
531 531
532 new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) 532 new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null)
533 .ReplicateArchivePathToUserInventory( 533 .ReplicateArchivePathToUserInventory(
534 itemArchivePath, false, scene.InventoryService.GetRootFolder(ua1.PrincipalID), 534 itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID),
535 foldersCreated, nodesLoaded); 535 foldersCreated, nodesLoaded);
536 536
537 InventoryFolderBase folder1 537 InventoryFolderBase folder1