| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The `g_spawn_check_exit_status` function is deprecated now and
`g_spawn_check_wait_status` should be used instead. Let's make that
change and bump the glib dependency accordingly.
|
|
|
|
|
|
|
|
|
| |
Currently, the mount operation for the admin backend can hang when the
authentication dialog is dismissed for example. This is because `pkexec`
exits before spawning the `gvfsd-admin` daemon. Let's catch that case
and return the "Permission denied" error.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/-/issues/565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A new daemon is always spawned if MountLocation method (or LookupMount for
automounted) is called and the respective mount isn't registered yet. This
is not usually an issue, because the redundant daemons are consequently
terminated. However, this is a problem if mount operations hang for some reason.
This may happen e.g. with trash backend due to stale NFS mounts. Consequently,
new and new daemons are spawned which may lead to system failures due to lack
of system resources. See the following downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1632960
Let's fix that behavior simply by preventing spawning of new daemons if
respective outgoing mount operations exist.
https://gitlab.gnome.org/GNOME/gvfs/merge_requests/19
|
|
|
|
|
|
|
|
|
| |
pkexec fails on some systems with "Refusing to render service to dead
parents.", which is caused by double forking when spawning the process.
Let's prevent this by G_SPAWN_DO_NOT_REAP_CHILD flag and clean up
manually using g_child_watch_add.
https://bugzilla.gnome.org/show_bug.cgi?id=793445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The admin backend is pretty special, because it can't use GMountOperation
for authorization and polkit prompt is shown for each client. This leads
to unwanted behavior because the admin prompt might be shown unexpectedly
(e.g. when obtaining info for recently used files).
Let's require mounting explicitly for each client. So each client gets
G_IO_ERROR_NOT_MOUNTED if it hasn't called g_file_mountable_mount before.
It works nicely for most of the apps which I tested (e.g. with Nautilus,
GEdit, Totem, Evince, GIMP, LibreOffice). However, this requires changes
for some applications, which expects that the file is already mounted
(e.g. EOG).
Unfortunatelly, it breaks utils like "gio list" because it fails with
"The specified location is not mounted" error and "gio mount admin:///"
doesn't help, because it has different PID.
This isn't ideal, but it is better than the unexpected password prompts...
https://bugzilla.gnome.org/show_bug.cgi?id=771285
|
|
|
|
|
|
|
|
|
|
|
| |
g_volume_monitor_get() might be really slow if there is too many
mounts, because the list of the mounts is send over D-Bus. It can
simply happen due to user invisible mounts, e.g. http. User invisible
mounts are ignored by the volume monitor, so it is useless to send
them over D-Bus. Improve the D-Bus API and don't send the user
invisible mounts if it is not needed.
https://bugzilla.gnome.org/show_bug.cgi?id=775600
|
|
|
|
|
|
|
| |
Unfortunately, g_debug uses custom handler in GVfs which requires
additional new line character. Commit a7b0a65 and commit 1d67090
changed g_warning to g_debug, but forgot to add additional new line
characters.
|
|
|
|
|
|
|
|
|
|
| |
The following warning is printed if mount failed from whatever reason:
dbus_mount_reply: Error from org.gtk.vfs.Mountable.mount(): ...
It is expected that mount may fail for various reasons and it is not
definitely anything critical what needs to be always printed. It
happens regularly with smbbrowse, whenf we are not in smb environment,
or the workgroup is misconfigured. Let's use g_debug instead of g_warning.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow controlling whether backends spawned from the main daemon start
with debug output enabled by adding a --debug command-line parameter and
responding to the SIGUSR2 signal. Note that sending SIGUSR2 to the main
daemon does not affect any already spawned backends.
E.g. to capture the login debugging from the sftp backend without having
to restart the main daemon:
$ pkill -x -USR2 gvfsd
$ gvfs-mount sftp://...
$ journalctl -n 40
If --debug is given on the command-line, debug output is enabled for
spawned daemons by default. Sending SIGUSR2 will then turn it off.
https://bugzilla.gnome.org/show_bug.cgi?id=740660
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=591228
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A proper unmount method was missing from the daemon interface as it was
basically not needed. The mount tracker was watching mounts on the bus
and if child disappeared, that event was treated as unmount.
With recent introduction of gvfs test suite we started using
man-in-the-middle program for connecting to private SMB server. However,
certain libsmbclient versions are forking gvfs backends (gvfsd-smb in
this case) which makes d-bus confused and name owner tracking doesn't
work as expected.
Moreover the forked process got stuck due to internal samba LIBSMB_PROG
handling after the original process did its job and unmount was triggered
from user side. The original process exited just fine but the forked one
was blocking the name on the bus probably and gvfs mount tracker was fooled.
Eventually the stuck libsmbclient call times out and exits gracefully.
This happens with samba-3.6.9
This patch adds proper unmount call to indicate the backend is going away
so even if there are leftovers, user is indicated a proper unmount.
https://bugzilla.gnome.org/show_bug.cgi?id=691568
|
| |
|
|
|
|
|
| |
This will be used by the test framework to run tests against
the in-tree build.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=682878
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=681458
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=682384
|
|
|
|
|
|
|
|
| |
Whenever we get ALREADY_MOUNTED during a mount we just treat
it as a success.
This fixes for instance multiple parallel calls to automounted
mounts like http.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Use G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS and G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES
flags where applicable.
|
|
|
|
| |
This allows clients to react on GVfs mounts appearing and disappearing.
|
|
|
|
|
|
|
|
|
|
| |
A fallout of port away from convenient G_DBUS_TYPE_CSTRING type and
_g_dbus_message_append_args() + _g_dbus_message_iter_get_args() functions
that masked NULL strings as non-NULL empty strings ("") for transferring
over d-bus and on the other side reconstructed the original value.
Portions of other code treat non-NULL strings differently even if they
were empty. This fixes e.g. opening http URLs via gvfs-open.
|
|
|
|
|
|
|
|
|
|
| |
...and fix wrong typecast due to using an object we haven't reff'ed. The
failure we're making silent were coming from a failed d-bus call to mount
tracker.
Also turned out the org.gtk.vfs.MountTracker.unregisterMount() has never
been implemented, daemon mounttracker is watching for clients disconnects
anyway.
|
| |
|
|
|
|
| |
This makes http backend working again.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Port of most of the gvfs core, few bits still missing. Lot of debug prints around,
will be removed in further commits. Same amount of TODOs and FIXMEs.
Notes:
* kill serials?
* get rid of mainloops where applicable (copy/move progress callback, enumerator)
* fix keyring integration
* use gdbus builtin fd passing within gvfsdaemon.c, kill the extra_fd stuff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
If runtime dir is not specifically set we don't fall back to
~/.cache/gvfs, as that unnecessarily invalidates all existing
documentation and scripts using ~/.gvfs.
However, if it is set, we still use it.
|
|
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=646391
Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
|
|
|
|
| |
This is going away with GDBus port, but still...
|
| |
|
|
|
|
|
| |
We're missing a lot of dbus_message_unref after sending
messages, add them.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=641856
|
|
|
|
| |
This makes gvfs build with recent glib again, see bug #619537
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The "default location" of the given mount is a path that reflects
the main entry point for the user (e.g. the home directory, or the
root of the volume).
Backends can use g_vfs_backend_set_default_location () to set the
default location (before registering the mount).
https://bugzilla.gnome.org/show_bug.cgi?id=561998
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-06 Alexander Larsson <alexl@redhat.com>
* daemon/daemon-main.c:
* daemon/gvfsbackend.c:
* daemon/gvfsbackendburn.c:
* daemon/gvfsbackenddav.c:
* daemon/gvfsbackendhttp.c:
* daemon/gvfsbackendobexftp.c:
* daemon/gvfsbackendtrash.c:
* daemon/gvfsdaemon.c:
* daemon/gvfsjobcloseread.c:
* daemon/gvfsjobclosewrite.c:
* daemon/gvfsjobcopy.c:
* daemon/gvfsjobdbus.c:
* daemon/gvfsjobenumerate.c:
* daemon/gvfsjobmount.c:
* daemon/gvfsjobmove.c:
* daemon/gvfsjobpull.c:
* daemon/gvfsjobpush.c:
* daemon/gvfsjobread.c:
* daemon/gvfsjobseekread.c:
* daemon/gvfsjobseekwrite.c:
* daemon/gvfsjobunmount.c:
* daemon/gvfsjobwrite.c:
* daemon/mount.c:
Convert all spew to g_debug()
svn path=/trunk/; revision=2297
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-05 Bastien Nocera <hadess@hadess.net>
Bug 563788 – GNOME Goal: Clean up GLib and GTK+ includes
* client/gvfsuriutils.h:
* daemon/gvfsbackendburn.c:
* daemon/gvfsbackendcomputer.c:
* daemon/gvfsbackenddnssd.c:
* daemon/gvfsbackendnetwork.c:
* daemon/gvfsdaemonutils.c:
* daemon/mount.c: Fix build for single GTK+ include, patch
from Luis Menina <liberforce@freeside.fr> (Closes: #563788)
svn path=/trunk/; revision=2201
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-09-26 Alexander Larsson <alexl@redhat.com>
* client/gdaemonvfs.[ch]:
* common/gvfsdaemonprotocol.h:
* daemon/mount.c:
Reverse map fuse paths to gvfs uris in
g_file_new_for_path().
svn path=/trunk/; revision=2031
|
|
|
|
| |
svn path=/trunk/; revision=1847
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-07-29 David Zeuthen <davidz@redhat.com>
* client/gdaemonmount.c:
* common/gmounttracker.c:
* common/gmounttracker.h:
* daemon/gvfsbackend.c:
* daemon/gvfsbackend.h:
* daemon/gvfsbackendcdda.c:
* daemon/gvfsbackendgphoto2.c:
* daemon/mount.c:
Add x-content/* support to daemon mounts. Right now a backend
can only set the x-content/* type ahead of time. We might want
to add support dynamically obtaining it too (e.g. support
force_rescan).
* monitor/hal/ghalmount.c:
* monitor/hal/ghalvolume.c:
* monitor/hal/ghalvolumemonitor.c:
* monitor/hal/hal-utils.c:
* monitor/hal/hal-utils.h:
Add x-content/* support to the HAL volume monitor.
* monitor/proxy/gproxymount.c:
* monitor/proxy/gproxymount.h:
* monitor/proxy/gproxyvolumemonitor.c:
* monitor/proxy/gproxyvolumemonitor.h:
* monitor/proxy/gvfsproxyvolumemonitordaemon.c:
Add x-content/* support to proxy volume monitor. Also fix
a number of bugs the initial implementation had.
* programs/gvfs-mount.c:
Print out x-content-types.
svn path=/trunk/; revision=1845
|
|
|
|
|
|
|
|
|
| |
2008-03-03 Carlos Garcia Campos <carlosgc@gnome.org>
* daemon/mount.c: (read_mountable_config):
Fix memory leak.
svn path=/trunk/; revision=1513
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-03-03 Alexander Larsson <alexl@redhat.com>
* common/gdbusutils.[ch]:
Add _g_dbus_message_iter_append_args_valist and
_g_dbus_message_iter_append_args.
* common/gvfsdaemonprotocol.h:
Add G_VFS_DBUS_MOUNTTRACKER_OP_LIST_MOUNTABLE_INFO
* client/Makefile.am:
* client/gdaemonvfs.c:
Use listMountableInfo to get supported uri schemes
and information for default uri handling.
Handle default port in uris and if host_is_inet normalize hostnames,
including removing ipv6 brackets.
* client/sftpuri.c:
Removed, as the previous work replaces it
* daemon/gvfsdaemonutils.c:
(gvfs_file_info_populate_content_types):
Fix uninitialized variable warning.
* daemon/mount.c:
Read new mountfile info and implement
list_mountable_info.
* daemon/sftp.mount.in:
Add info for sftp
svn path=/trunk/; revision=1508
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-02-11 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfile.c:
* client/gdaemonfileinputstream.c:
* client/gdaemonfileoutputstream.c:
* common/gsysutils.c:
* common/gvfsdaemonprotocol.c:
* daemon/gvfsbackendburn.c:
* daemon/gvfsbackendcdda.c:
* daemon/gvfsbackenddav.c:
* daemon/gvfsbackendsftp.c:
* daemon/gvfsbackendsmb.c:
* daemon/gvfsbackendsmbbrowse.c:
* daemon/gvfsbackendtest.c:
* daemon/gvfsdaemonutils.c:
* daemon/gvfsjob.c:
* daemon/mount.c:
* daemon/pty_open.c:
Save errno befor making other calls.
Be safe when calling g_set_error()
Patch from Christian Persch (#514822)
svn path=/trunk/; revision=1254
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-01-21 Alexander Larsson <alexl@redhat.com>
* NEWS:
Update for release
* daemon/Makefile.am:
* daemon/main.c:
Autospawn fuse on daemon start.
* daemon/mount.c:
(read_mountable_config):
Remove debug spew
svn path=/trunk/; revision=1158
|
|
|
|
|
|
|
|
|
|
| |
2008-01-21 Alexander Larsson <alexl@redhat.com>
* daemon/mount.c:
Reload the list of mountables on SIGUSR1
svn path=/trunk/; revision=1156
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2007-12-19 David Zeuthen <davidz@redhat.com>
Add the cdda:// backend for Compact Disc Digital Audio discs.
Allow a backend to specify the fuse name directly instead of
using the display name
Make GDaemonVolumeMonitor and GDaemonMount use the new
adopt_orphan_mount() function on GVolumeMonitor in gio. Also,
since a GMount now can be associated with a GVolume, implement
eject().
Add a new gvfs-less program.
Make gvfs-mount capable of unmounting as well.
HAL backend changes: attempt to unmount all mounts from
enclosing volumes and fail the ejection if one of the unmount
operations fails. Use new adopt_orphan_mount() from gio to
adopt cdda:// volumes for audio discs. Emit the 'eject-button'
signal on GDrive. Various other fixes.
* client/gdaemonfile.c: (g_daemon_file_find_enclosing_mount):
* client/gdaemonmount.c: (g_daemon_mount_finalize),
(g_daemon_mount_new), (g_daemon_mount_get_volume),
(g_daemon_mount_get_drive), (g_daemon_mount_can_eject),
(foreign_volume_removed), (g_daemon_mount_set_foreign_volume),
(eject_wrapper_callback), (g_daemon_mount_eject),
(g_daemon_mount_eject_finish), (g_daemon_mount_mount_iface_init):
* client/gdaemonmount.h:
* client/gdaemonvolumemonitor.c: (mount_added), (mount_removed),
(g_daemon_volume_monitor_init):
* client/gvfsfusedaemon.c: (file_handle_close_stream),
(free_file_handle_for_path), (mount_record_new):
* common/gmounttracker.c: (g_mount_info_dup), (g_mount_info_unref),
(g_mount_info_from_dbus):
* common/gmounttracker.h:
* configure.ac:
* daemon/Makefile.am:
* daemon/gvfsbackend.c: (g_vfs_backend_finalize),
(g_vfs_backend_init), (g_vfs_backend_set_fuse_name),
(g_vfs_backend_get_fuse_name), (g_vfs_backend_register_mount):
* daemon/gvfsbackend.h:
* daemon/gvfsjobunmount.c: (unregister_mount_callback),
(send_reply):
* daemon/mount.c: (vfs_mount_free), (vfs_mount_to_dbus),
(register_mount), (list_mounts):
* hal/ghaldrive.c: (g_hal_drive_finalize), (hal_condition),
(g_hal_drive_new), (spawn_cb), (g_hal_drive_eject_do),
(free_unmount_mounts_op), (_eject_unmount_mounts_cb),
(_eject_unmount_mounts), (g_hal_drive_eject):
* hal/ghalmount.c: (g_hal_mount_finalize), (unmount_cb),
(unmount_read_error), (unmount_do), (g_hal_mount_unmount),
(eject_wrapper_callback), (g_hal_mount_eject),
(g_hal_mount_eject_finish):
* hal/ghalvolume.c: (g_hal_volume_finalize), (do_update_from_hal),
(g_hal_volume_new), (g_hal_volume_get_mount),
(foreign_mount_unmounted), (g_hal_volume_adopt_foreign_mount),
(g_hal_volume_has_foreign_mount_root), (spawn_cb),
(mount_foreign_callback), (g_hal_volume_mount),
(g_hal_volume_mount_finish), (eject_wrapper_callback),
(g_hal_volume_eject), (g_hal_volume_eject_finish):
* hal/ghalvolume.h:
* hal/ghalvolumemonitor.c: (adopt_orphan_mount),
(g_hal_volume_monitor_class_init), (update_volumes),
(update_mounts), (update_discs):
* hal/hal-device.c: (hal_device_class_init),
(_hal_device_hal_condition):
* hal/hal-device.h:
* hal/hal-marshal.list:
* hal/hal-pool.c: (hal_pool_class_init), (_hal_condition),
(hal_pool_new):
* hal/hal-pool.h:
* programs/Makefile.am:
* programs/gvfs-mount.c: (unmount_done_cb), (unmount), (main):
svn path=/trunk/; revision=1052
|