From 898326b5e9e3f4fe509a1e880dbdc58d6c1b9ecb Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Tue, 28 Apr 2009 19:40:02 +0000 Subject: * Stop oar loading barfing if the archive contains directory entries --- .../CoreModules/World/Archiver/ArchiveReadRequest.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs') 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 int successfulAssetRestores = 0; int failedAssetRestores = 0; List serialisedSceneObjects = new List(); - + string filePath = "NONE"; + try { TarArchiveReader archive = new TarArchiveReader(m_loadStream); - - string filePath = "ERROR"; - + byte[] data; TarArchiveReader.TarEntryType entryType; while ((data = archive.ReadEntry(out filePath, out entryType)) != null) - { - //m_log.DebugFormat( - // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); + { + m_log.DebugFormat( + "[ARCHIVER]: Successfully read {0} ({1} bytes)", filePath, data.Length); + + if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) + continue; if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) { @@ -142,7 +144,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver catch (Exception e) { m_log.ErrorFormat( - "[ARCHIVER]: Error loading oar file. Exception was: {0}", e); + "[ARCHIVER]: Aborting load with error in archive file {0}. {1}", filePath, e); m_errorMessage += e.ToString(); m_scene.EventManager.TriggerOarFileLoaded(m_requestId, m_errorMessage); return; -- cgit v1.1