summaryrefslogtreecommitdiff
path: root/daemon/gvfsbackendarchive.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove workaround for directory / folder iconswip/rishi/issue-2Debarshi Ray2018-08-141-4/+5
| | | | https://gitlab.gnome.org/GNOME/gvfs/issues/2
* Use Unicode in translatable stringsPiotr Drąg2016-10-031-5/+5
| | | | | | See https://developer.gnome.org/hig/stable/typography.html https://bugzilla.gnome.org/show_bug.cgi?id=772219
* archive: Fix display_name of root entryChristian Kellner2016-08-231-3/+4
| | | | | | | Change display-name file info property from "/ on XYZ" to "/ in XYZ", as indicated by the FIXME in the code. https://bugzilla.gnome.org/show_bug.cgi?id=770238
* daemon: Set G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE attributeOndrej Holy2016-06-281-0/+1
| | | | | | | Mark all network-based backends as remote. This is useful to remove some hardcoded lists of filesystem types in GTK+. Bump required GLib version accordingly.
* archive: Be quiet by defaultOndrej Holy2016-01-181-21/+13
| | | | | | | Since daemons' stdout and stderr goes into the journal, make it quiet by default by using the existing debug logging mechanism. https://bugzilla.gnome.org/show_bug.cgi?id=740660
* Set filesystem::type for all backendsRoss Lagerwall2015-08-041-0/+1
| | | | | | | This attribute was being set inconsistently, and is used by the file chooser. https://bugzilla.gnome.org/show_bug.cgi?id=752834
* archive: Handle ARCHIVE_FAILED errorOndrej Holy2015-08-041-8/+21
| | | | | | | | | | | | Archive backend is stucked in endless loop currently e.g. if you try to mount encrypted zip file. It is caused because ARCHIVE_FAILED error is not handled, when reading data from the archive. ARCHIVE_FAILED is handled with this patch. Mount job doesn't fail, just because of unknown file size, but open_for_read job fails if ARCHIVE_FAILED is returned. https://bugzilla.gnome.org/show_bug.cgi?id=752366
* archive: Allow reading files with '/./' in the pathRoss Lagerwall2014-09-051-25/+55
| | | | | | | | | | | | Allow reading files with a "." component in the path. This is a followup to 46bdbf1d4596 ('archive: Ignore filenames consisting of a single "."'), which allowed the archive backend to enumerate an archive with a single "." in the path. Implement this with a generic function to fixup an archive_entry path, and use this wherever archive_entry_pathname() is used. https://bugzilla.gnome.org/show_bug.cgi?id=729463
* archive: Fix some memory leaksRoss Lagerwall2014-09-051-5/+2
| | | | | | | Unfortunately, the clever trick to avoid string copying causes leaks because it inserts NULLs in the middle of a NULL-terminated array. https://bugzilla.gnome.org/show_bug.cgi?id=729463
* archive: Retry operations that return ARCHIVE_RETRYRoss Lagerwall2014-08-231-0/+6
| | | | | | | | | | | | | Retry operations that return ARCHIVE_RETRY since it indicates that the operation has failed, the archive_entry is not valid, and the operation should be retried to see if it succeeds. This fixes a segfault on a truncated archive where archive_read_next_header would return ARCHIVE_RETRY and the backend would continue to try and use the invalid archive_entry that was returned. https://bugzilla.gnome.org/show_bug.cgi?id=735120
* archive: Ignore filenames consisting of a single "."Ross Lagerwall2014-05-101-3/+2
| | | | | | | | | Don't abort if a path has a component consisting of a single ".", just ignore that component. E.g. OpenCV-2.3.1/./opencv.pc.cmake.in becomes OpenCV-2.3.1/opencv.pc.cmake.in https://bugzilla.gnome.org/show_bug.cgi?id=729463
* archive: Set filesystem size informationRoss Lagerwall2013-11-151-1/+10
| | | | | | | Set the total size and the amount used to be the total size of the files; set the amount free to 0. https://bugzilla.gnome.org/show_bug.cgi?id=711852
* archive: Set the is_hidden attribute when appropriateRoss Lagerwall2013-11-071-0/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=589157
* archive: fix wrong data typesOndrej Holy2013-11-071-2/+2
| | | | | | | Libarchive 3.0 changed public interface to use int64_t uniformly instead of off_t, ino_t, uid_t, gid_t, and dev_t. https://bugzilla.gnome.org/show_bug.cgi?id=670534
* archive: fix segfault when libarchive failsOndrej Holy2013-11-071-4/+4
| | | | | | | | When libarchive fails g_vfs_job_failed is called even as g_vfs_job_succeeded which cause segfault. Set GError instead of g_vfs_job_failed to fix that. https://bugzilla.gnome.org/show_bug.cgi?id=670534
* archive: fix reading files when size not setOndrej Holy2013-11-071-5/+46
| | | | | | | | File size can be unset in the archive therefor is set to zero. This breaks reading file content using fuse. Determine file size by reading data blocks to fix it. https://bugzilla.gnome.org/show_bug.cgi?id=670534
* archive: Handle open failureRoss Lagerwall2013-10-261-2/+6
| | | | | | | | If gvfs_archive_open fails, libarchive immediately calls gvfs_archive_close which causes a crash due to calling g_object_unref on the NULL stream. https://bugzilla.gnome.org/show_bug.cgi?id=589028
* archive: Set file executable bit from archive contentsRoss Lagerwall2013-10-251-2/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=634735
* archive: Update to libarchive new apiOndrej Holy2013-08-221-2/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=703561
* Use g_list_free_full() where applicableTomas Bzatek2013-01-171-2/+1
|
* Add symbolics support to the backendsWilliam Jon McCann2012-08-301-0/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=681458
* Update the Address of the FSFFelix Möller2012-07-301-2/+2
| | | | | | | | | | | | | | | Updating the address of the FSF. This has been done by: while read file; do sed -i 's:59 Temple Place:51 Franklin Street:' $file sed -i 's:Suite 330:Fifth Floor:' $file sed -i 's:02111-1307:02110-1301:' $file done https://bugzilla.gnome.org/show_bug.cgi?id=656598 Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
* Cleanups and fixes for compiler warningsKjartan Maraas2011-03-171-3/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=641856
* archive: Propagate entry index as inode no. for filesTomas Bzatek2011-03-171-3/+11
| | | | | | | | | | | | | | | | | This is the first step in making extraction faster. Some GIO-based file managers like Nautilus sort files by inode number and making copy/extraction faster (more linear read on disk, linear read from archive). For the archiving backend, let's give each file a number corresponding with the position the file is stored in the archive. We can't use native inode number stored in some types of archives as long as there are no guarantees it reflects actual position in the file. This change will have no effect until we make do_open_for_read() not to close archive after reading and continue from the last position. I'm afraid this concept would conflict with multiple accesses at one time though.
* archive: Skip leading "./" from pathnames if presentTomas Bzatek2011-03-171-3/+13
| | | | Happens with some archive types, such as rpm (libarchive 2.8.4).
* archive: Prevent assertion failure on duplicate mountTomas Bzatek2011-03-161-7/+19
| | | | | | | This will fix an abort when archive is to be mounted for the second time: ERROR:gvfsbackendarchive.c:240:g_vfs_backend_archive_finalize: assertion failed: (archive->file == NULL) https://bugzilla.redhat.com/show_bug.cgi?id=645630
* archive: Use archive_errno() the correct wayBenjamin Otte2010-02-261-7/+16
| | | | | | | | | Previous code was assuming that archive_errno() would report the last error that happened or SUCCESS if none. This is not true, however as the return value of archive_errno() is undefined if no error happened. This patch changes it to only call archive_errno() after errors. https://bugzilla.gnome.org/show_bug.cgi?id=611057
* Set variable to NULL after unreffingBenjamin Otte2010-01-201-0/+1
| | | | | | | Fixes an assertion that triggers later when finalizing the backend object. https://bugzilla.gnome.org/show_bug.cgi?id=555543
* Plug a leak in gvfsbackendarchive.cMatthias Clasen2009-09-111-1/+1
| | | | clang reported this leak.
* Bug 587484 – Interaction when unmounting mounts and misc fixesDavid Zeuthen2009-07-081-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Port everything to use _with_operation() variants of unmount/eject methods - Add support for g_file_poll_mountable() - new job class: GVfsJobPollMountable - Pass mount operation for unmount/eject ops on GDaemonFile and GDaemonMount - receive in the appropriate GVfsJob classes - also pass unmount flags where it was missing - port all backends to use this - Teach GMountSource and GMountOperationDBus about the new GMountOperation::show-processes signal - also provide new API - g_mount_source_is_dummy() - e.g. when the client didn't passed NULL for the GMountOperation - g_mount_source_abort() - to send the ::abort signal to the client-side GMountOperation - make the client-side of GMountSource return ::reply with NOT_HANDLED when we do an abort - Refactor the mount operation handling in GProxyVolumeMonitor - Pass mount operation for unmount/ejects in GProxyVolumeMonitor - Pass the process id of the actual reader/writer in OpenForRead and OpenForWrite daemon methods - add some private API for making the FUSE client set the pid of the POSIX client (otherwise it looks like the FUSE client is blocking) and pass the right pid. This is because the FUSE client is basically impersonating the POSIX processes. - Make the process id mentioned above available in appropriate GVfsJob classes - GVfsJobOpenForRead - GVfsJobOpenForWrite - GVfsChannel - Provide API to get a list of all blocking clients, e.g. an array of GPid - g_vfs_daemon_get_blocking_processes() - Provide convenience API to easily doing the right thing on unmount; e.g. interact with the user about blocking processes - see the gphoto2 backend for example usage - g_vfs_backend_has_blocking_processes() - g_vfs_backend_unmount_with_operation() and g_vfs_backend_unmount_with_operation_finish() - Only the gphoto2 backend supports ::show-processes right now. Support for other backends will be added shortly. - Implement support for ::show-processes in the GDU volume monitor - right now we don't support "Unmount Anyway" since it requires ABI changes in libgdu.so - this will be changed as soon as there's a new gnome-disk-utility release
* Bug 551683 – archive backend says file doesn't exist for directoriesAlexander Larsson2009-03-091-0/+19
| | | | | | | | | | | | | 2009-03-09 Alexander Larsson <alexl@redhat.com> Bug 551683 – archive backend says file doesn't exist for directories * daemon/gvfsbackendarchive.c: (do_open_for_read): Return G_IO_ERROR_IS_DIRECTORY if opening directory. svn path=/trunk/; revision=2305
* Chain up finalizePaolo Borelli2009-03-021-0/+3
| | | | | | | | | | 2009-03-02 Paolo Borelli <pborelli@katamail.com> * daemon/gvfsbackendarchive.c: Chain up finalize svn path=/trunk/; revision=2275
* Use g_set_error_literal where appropriate. Bug #539167.Christian Persch2008-08-021-4/+4
| | | | svn path=/trunk/; revision=1847
* Fix build warnings with GCC 4.3.0 (#537588).Cosimo Cecchi2008-06-101-4/+4
| | | | | | | | | | | | | | | | | | | | | 2008-06-10 Cosimo Cecchi <cosimoc@gnome.org> * daemon/gvfsbackendarchive.c: (gvfs_archive_pop_job): * daemon/gvfsbackenddav.c: (stat_location), (write_ready), (close_write_ready), (do_make_directory), (do_delete): * daemon/gvfsbackendftp.c: (ftp_connection_set_error_from_response): * daemon/gvfsbackendhttp.c: (g_vfs_job_failed_from_http_status), (open_for_read_ready), (read_ready), (try_seek_on_read), (close_read_ready): * daemon/gvfsbackendobexftp.c: (_query_file_info_helper), (error_occurred_cb), (do_delete): Fix build warnings with GCC 4.3.0 (#537588). * daemon/gvfsjob.c: (g_vfs_job_failed), (g_vfs_job_failed_literal): * daemon/gvfsjob.h: Add g_vfs_job_failed_literal (). svn path=/trunk/; revision=1802
* Improve error handling allowing to mount non-standard ISO imagesTomas Bzatek2008-05-221-2/+14
| | | | svn path=/trunk/; revision=1777
* get rid of modelines The modelines were inconsistent and caused issuesBenjamin Otte2008-04-221-1/+0
| | | | | | | | | * */*.[ch]: get rid of modelines The modelines were inconsistent and caused issues when used in different editors. svn path=/trunk/; revision=1756
* some minor fixes (#528950)David Zeuthen2008-04-201-5/+33
| | | | | | | | | 2008-04-20 David Zeuthen <davidz@redhat.com> * daemon/gvfsbackendarchive.c: some minor fixes (#528950) svn path=/trunk/; revision=1747
* Better mount icons and root display name.Alexander Larsson2008-03-251-10/+12
| | | | | | | | | | 2008-03-25 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendarchive.c (archive_file_set_info_from_entry): Better mount icons and root display name. svn path=/trunk/; revision=1677
* Added archive backend from Benjamin Otte Requires libarchiveAlexander Larsson2008-03-121-13/+31
| | | | | | | | | | | | | 2008-03-12 Alexander Larsson <alexl@redhat.com> * configure.ac: * daemon/Makefile.am: * daemon/gvfsbackendarchive.[ch]: Added archive backend from Benjamin Otte Requires libarchive svn path=/trunk/; revision=1649
* Added archive backend from Benjamin Otte Requires libarchiveAlexander Larsson2008-03-121-0/+712
2008-03-12 Alexander Larsson <alexl@redhat.com> * configure.ac: * daemon/Makefile.am: * daemon/gvfsbackendarchive.[ch]: Added archive backend from Benjamin Otte Requires libarchive svn path=/trunk/; revision=1648