diff options
author | Justin Clarke Casey | 2009-04-28 19:40:02 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-04-28 19:40:02 +0000 |
commit | 898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb (patch) | |
tree | 18f03a1c7eb655f3a30e902e824d4b48d44bb318 /OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |
parent | * Add preliminary code for resolving iar profile names (diff) | |
download | opensim-SC_OLD-898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb.zip opensim-SC_OLD-898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb.tar.gz opensim-SC_OLD-898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb.tar.bz2 opensim-SC_OLD-898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb.tar.xz |
* Stop oar loading barfing if the archive contains directory entries
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index efc4057..7f7986d 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -99,20 +99,22 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
99 | int successfulAssetRestores = 0; | 99 | int successfulAssetRestores = 0; |
100 | int failedAssetRestores = 0; | 100 | int failedAssetRestores = 0; |
101 | List<string> serialisedSceneObjects = new List<string>(); | 101 | List<string> serialisedSceneObjects = new List<string>(); |
102 | 102 | string filePath = "NONE"; | |
103 | |||
103 | try | 104 | try |
104 | { | 105 | { |
105 | TarArchiveReader archive = new TarArchiveReader(m_loadStream); | 106 | TarArchiveReader archive = new TarArchiveReader(m_loadStream); |
106 | 107 | ||
107 | string filePath = "ERROR"; | ||
108 | |||
109 | byte[] data; | 108 | byte[] data; |
110 | TarArchiveReader.TarEntryType entryType; | 109 | TarArchiveReader.TarEntryType entryType; |
111 | 110 | ||
112 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) | 111 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) |
113 | { | 112 | { |
114 | //m_log.DebugFormat( | 113 | m_log.DebugFormat( |
115 | // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); | 114 | "[ARCHIVER]: Successfully read {0} ({1} bytes)", filePath, data.Length); |
115 | |||
116 | if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) | ||
117 | continue; | ||
116 | 118 | ||
117 | if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) | 119 | if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) |
118 | { | 120 | { |
@@ -142,7 +144,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
142 | catch (Exception e) | 144 | catch (Exception e) |
143 | { | 145 | { |
144 | m_log.ErrorFormat( | 146 | m_log.ErrorFormat( |
145 | "[ARCHIVER]: Error loading oar file. Exception was: {0}", e); | 147 | "[ARCHIVER]: Aborting load with error in archive file {0}. {1}", filePath, e); |
146 | m_errorMessage += e.ToString(); | 148 | m_errorMessage += e.ToString(); |
147 | m_scene.EventManager.TriggerOarFileLoaded(m_requestId, m_errorMessage); | 149 | m_scene.EventManager.TriggerOarFileLoaded(m_requestId, m_errorMessage); |
148 | return; | 150 | return; |