summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--daemon/gvfsbackendarchive.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d17693e2..f5a7421e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-22 Tomas Bzatek <tbzatek@redhat.com>
+
+ * daemon/gvfsbackendarchive.c:
+ Improve error handling allowing to mount non-standard ISO images
+
2008-05-22 Hans Petter Jansson <hpj@novell.com>
* client/gvfsfusedaemon.c (shutown_on_idle)
diff --git a/daemon/gvfsbackendarchive.c b/daemon/gvfsbackendarchive.c
index a1ebe064..0334d232 100644
--- a/daemon/gvfsbackendarchive.c
+++ b/daemon/gvfsbackendarchive.c
@@ -457,8 +457,14 @@ create_file_tree (GVfsBackendArchive *ba, GVfsJob *job)
do
{
result = archive_read_next_header (archive->archive, &entry);
- if (result == ARCHIVE_OK)
+ if (result >= ARCHIVE_WARN && result <= ARCHIVE_OK)
{
+ if (result < ARCHIVE_OK) {
+ DEBUG ("archive_read_next_header: result = %d, error = '%s'\n", result, archive_error_string (archive->archive));
+ archive_set_error (archive->archive, ARCHIVE_OK, "No error");
+ archive_clear_error (archive->archive);
+ }
+
ArchiveFile *file = archive_file_get_from_path (ba->files,
archive_entry_pathname (entry),
TRUE);
@@ -600,8 +606,14 @@ do_open_for_read (GVfsBackend * backend,
do
{
result = archive_read_next_header (archive->archive, &entry);
- if (result == ARCHIVE_OK)
+ if (result >= ARCHIVE_WARN && result <= ARCHIVE_OK)
{
+ if (result < ARCHIVE_OK) {
+ DEBUG ("do_open_for_read: result = %d, error = '%s'\n", result, archive_error_string (archive->archive));
+ archive_set_error (archive->archive, ARCHIVE_OK, "No error");
+ archive_clear_error (archive->archive);
+ }
+
if (g_str_equal (archive_entry_pathname (entry), filename + 1))
{
/* SUCCESS */