| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
| |
We can't call g_cancellable_disconnect from inside the cancel signal
emission, as that deadlocks. However we know if that happens and can
use the regular disconnect.
Also, we need to grab the infos lock when calling trigger_async_done, this
was only done in some cases, now its always done.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously there were some rather big windows that allowed for races
between cancelling and calling g_simple_async_result_complete().
This code makes sure we check for cancellaton right before calling
g_simple_async_result_complete(), which gets rid of that window and
gives you the guarantee that cancelling an operation in the main thread
will indeed return a CANCELLED error.
|
| |
|
| |
|
|
|
|
|
| |
This uses the metadata library to add metadata to GFileInfo for
local files.
|
|
|
|
|
|
|
|
|
| |
This is the GVfs implementation for the new GIO API for
starting/stopping drives. See
http://bugzilla.gnome.org/show_bug.cgi?id=585591
for details.
|
|
|
|
|
|
|
|
|
|
|
| |
Send a boolean send_progress to the daemon in the case of push/pull jobs
that indicates if progress updates should be sent to the client.
Oftentimes the daemons can avoid quite a bit of work (like querying file
sizes or setting up and operating machinery required to send progress
updates) when it's not required.
Patch also includes fixes to daemons to ensure they don't call a NULL
progress_callback (previously, NULL was not a possible value).
|
| |
|
|
|
|
|
|
|
| |
In later glib versions setting the GSimpleAsyncResult gpointer data
frees the old data using the destroy notify, which can cause crashes
since we return it. So, just copy+ref the list instead of trying to steal
the asyncresult one.
|
|
|
|
| |
Update old ignore files and add new ones as needed
|
|
|
|
|
|
|
|
|
|
|
| |
2009-04-01 Hans Petter Jansson <hpj@novell.com>
* client/gvfsfusedaemon.c
(vfs_flush)
(vfs_fsync): Hold file mutex while closing stream.
svn path=/trunk/; revision=2359
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-04-01 Hans Petter Jansson <hpj@novell.com>
Related to bug #574968 - gvfs ftp backend appears to not wait for ftpd
return code on STOR.
* client/gvfsfusedaemon.c
(vfs_fsync): Implement by closing stream.
svn path=/trunk/; revision=2358
|
|
|
|
|
|
|
|
|
|
| |
2009-04-01 Hans Petter Jansson <hpj@novell.com>
* client/gvfsfusedaemon.c
(errno_from_error): Add G_IO_ERROR_WOULD_BLOCK -> EAGAIN mapping.
svn path=/trunk/; revision=2357
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-04-01 Hans Petter Jansson <hpj@novell.com>
Potential fix for bug #574968 - gvfs ftp backend appears to not wait
for ftpd return code on STOR.
* client/gvfsfusedaemon.c
(vfs_flush): Implement by closing stream.
svn path=/trunk/; revision=2356
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-31 Alexander Larsson <alexl@redhat.com>
* client/gdaemonmount.c:
(g_daemon_mount_guess_content_type):
* monitor/proxy/gproxymount.c:
(g_proxy_mount_guess_content_type):
Make sure async callbacks are sent in mainloop.
svn path=/trunk/; revision=2355
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-20 Alexander Larsson <alexl@redhat.com>
Bug 548648 – g_daemon_vfs_parse_name() fails to parse user names with '@' chars
* client/gvfsuriutils.c (g_vfs_decode_uri):
Make sure multiple @ in the authority part are put in the username.
This is an invalid uri, but we might as well handle it in the better way.
svn path=/trunk/; revision=2345
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-10 Alexander Larsson <alexl@redhat.com>
Bug 563418 – gvfs backend leaks monitors
* client/gdaemonfilemonitor.c:
(g_daemon_file_monitor_cancel):
Actually pass in object_path in unsubscribe message
svn path=/trunk/; revision=2317
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-06 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileinputstream.c:
(iterate_read_state_machine):
(iterate_close_state_machine):
(iterate_seek_state_machine):
(iterate_query_state_machine):
Don't send cancel when partial header read, as that
would throw away the part of the headers read so far.
svn path=/trunk/; revision=2295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-05 Alexander Larsson <alexl@redhat.com>
Bug 569199 – incorrectly open smb workgroup using a space
* client/gvfsuriutils.c (g_vfs_encode_uri),
(g_vfs_decode_uri):
Escape and unescape host part too. This means we handle
e.g. smb workgroups with spaces in them. Allowing
escapes in hostnames complies with RFC 3986.
* client/gdaemonvfs.c (get_mountspec_from_uri):
Fix indentation
svn path=/trunk/; revision=2288
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-04 Alexander Larsson <alexl@redhat.com>
Bug 573837 – gvfs-fuse does not support ftruncate size != 0
* client/gvfsfusedaemon.c:
Support ftruncate to the current size as a NOP.
Fixes OOo saving
svn path=/trunk/; revision=2286
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-03 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileinputstream.c:
* client/gdaemonfileoutputstream.c:
Make argument const char * as per the glib change.
svn path=/trunk/; revision=2282
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-02 Alexander Larsson <alexl@redhat.com>
Bug 547161 – http string leak
* client/httpuri.c (http_get_mount_info_for_path):
Fix leak
svn path=/trunk/; revision=2274
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-03-02 Alexander Larsson <alexl@redhat.com>
Bug 573371 – Unsafe g_htonl() macro expansion
* client/gdaemonfileoutputstream.c (append_request):
* client/gdaemonfileinputstream.c (append_request):
Don't use ++ inside macro that may evaluate twice.
svn path=/trunk/; revision=2263
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-27 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileoutputstream.c:
Support query info on output streams
* daemon/Makefile.am:
* daemon/gvfsbackend.h:
* daemon/gvfsjobqueryinfowrite.[ch]:
* daemon/gvfswritechannel.c:
Add query info write support.
* daemon/gvfsbackendtest.c:
Implement writing to files in test backend.
Implement query info on write
* test/test-query-info-stream.c:
Test g_file_output_stream_query_info().
svn path=/trunk/; revision=2260
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-27 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileoutputstream.c:
Add and use g_string_remove_in_front helper function.
svn path=/trunk/; revision=2259
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-27 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileinputstream.c:
Support async query info
* test/test-query-info-stream.c:
Test async query info
svn path=/trunk/; revision=2258
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-27 Alexander Larsson <alexl@redhat.com>
* common/Makefile.am:
* common/gvfsfileinfo.[ch]:
Add (de)marshalling functions for GFileInfos.
* common/gvfsdaemonprotocol.h:
Add protocol extensions for query info over streams
* client/gdaemonfileinputstream.c:
Support sync query_info.
* daemon/Makefile.am:
* daemon/gvfsjobqueryinforead.[ch]:
* daemon/gvfsbackend.h:
Added query info job and backend call for input streams
* daemon/gvfsbackendtest.c:
Implement query_info_on_read
* daemon/gvfschannel.[ch]:
Add g_vfs_channel_send_info
* daemon/gvfsreadchannel.c:
(read_channel_handle_request):
Handle query info
* test/Makefile.am:
* test/test-query-info-stream.c:
Add test for stream query info.
svn path=/trunk/; revision=2257
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-26 Hans Petter Jansson <hpj@novell.com>
* client/gvfsfusedaemon.c (vfs_ftruncate): Immediately close the stream
we get from g_file_replace(), so truncation becomes visible. Fixes
BRC #479199.
svn path=/trunk/; revision=2251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-24 Paolo Borelli <pborelli@katamail.com>
* test/benchmark-posix-small-files.c:
* test/benchmark-posix-big-files.c:
* daemon/trashlib/dirwatch.c:
* daemon/gvfsbackendsmbbrowse.c:
* client/gvfsfusedaemon.c:
Always use g_strerror
svn path=/trunk/; revision=2247
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-18 Alexander Larsson <alexl@redhat.com>
Bug 563623 – build dies on platforms lacking poll() implimentation
* client/gvfsdaemondbus.c:
(setup_async_fd_receive):
(_g_vfs_daemon_call_sync):
Use g_poll instead of poll.
Patch from ephraim_owns@hotmail.com
svn path=/trunk/; revision=2234
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-02-16 Christian Kellner <gicmo@gnome.org>
Bug 546256 – Crash in g_vfs_get_file_for_uri()
* client/httpuri.c: Make sure we never return a non-NULL
GVfsUriMountInfo with the path component set to NULL, since
this leads to dead kittens.
NB: This only fixes the symptom. The real problem is deep in
the uri parsing logic.
svn path=/trunk/; revision=2222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-01-13 Hans Petter Jansson <hpj@novell.com>
* client/gvfsfusedaemon.c (getattr_for_file)
(vfs_open)
(vfs_create)
(vfs_rmdir)
(vfs_access): Get only the attributes we require. This speeds up
directory listings in particular, since we don't need to probe
individual files to determine their MIME types.
svn path=/trunk/; revision=2168
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-12-01 Alexander Larsson <alexl@redhat.com>
* client/gdaemonmount.c:
* client/gdaemonvolumemonitor.c:
* monitor/proxy/Makefile.am:
* monitor/proxy/gproxydrive.c:
* monitor/proxy/gproxymount.c:
* monitor/proxy/gproxyvolume.c:
* monitor/proxy/gproxyvolume.h:
* monitor/proxy/gproxyvolumemonitor.c:
* monitor/proxy/gproxyvolumemonitor.h:
* monitor/proxy/remote-volume-monitor-module.c:
* monitor/proxy/gproxyshadowmount.[ch]:
Use the new support for shadow mounts instead
of g_volume_monitor_adopt_orphan_mount
Patch from David Zeuthen (#555332)
* programs/gvfs-mount.c:
Add support to monitor volume monitor events
svn path=/trunk/; revision=2119
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-12-01 Alexander Larsson <alexl@redhat.com>
* client/gdaemonmount.c:
* common/gmounttracker.[ch]:
* daemon/gvfsbackend.[ch]:
Make mounts/backends have a GIcon not a icon name
* daemon/gvfsbackendsftp.c:
Support /etc/favicon.png
* daemon/gvfsbackendsmbbrowse.c:
Simplify some code with the new GIcon support
Patch from David Zeuthen (#557540)
svn path=/trunk/; revision=2113
|
|
|
|
|
|
|
|
|
|
| |
2008-11-04 Tomas Bzatek <tbzatek@redhat.com>
* client/gdaemonmount.c: (g_daemon_mount_guess_content_type_sync):
Return an empty array on success when no content type matches
svn path=/trunk/; revision=2081
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-21 Alexander Larsson <alexl@redhat.com>
Patch from David Zeuthen
* common/Makefile.am:
* common/gvfsicon.[ch]:
Added GVfsIcon object for GVfs backend specific icons.
* common/gmountspec.[ch]:
Make sure to/from string works correctly to roundtrip GMountSpec:s
Make GMountSpec a boxed type
* common/gvfsdaemonprotocol.h:
Add OpenIconForRead operation
* client/Makefile.am:
* client/gvfsiconloadable.[ch]:
In gvfs client side, implement GLoadableIcon for GVfsIcon type.
* client/gdaemonvfs.c:
Make sure that we add the GLoadableIcon interface for GVfsIcon on load
* daemon/Makefile.am:
* daemon/gvfsbackend.[ch]:
* daemon/gvfsjobopeniconforread.[ch]:
Add new job type for OpenIconForRead op
* daemon/gvfsbackendgphoto2.c:
Implement OpenIconForRead for icon previews.
svn path=/trunk/; revision=2070
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-20 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileinputstream.c:
(run_sync_state_machine):
Revert debug spew from recent commit now that the core
issue is fixed (by the fuse race condition fix).
svn path=/trunk/; revision=2062
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-20 Alexander Larsson <alexl@redhat.com>
* daemon/gvfsbackendcomputer.c (try_create_dir_monitor):
Always fail the job when we don't support monitoring.
* client/gvfsfusedaemon.c (getattr_for_file):
Correct st_blocks rounding in previous commit
svn path=/trunk/; revision=2060
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-17 Hans Petter Jansson <hpj@novell.com>
Attempt to prevent potential race conditions in the FUSE backend
when file handles get closed while still in use in another thread,
if that ever happens.
* client/gvfsfusedaemon.c (file_handle_new): Insert new file
handles in global hash table of active file handles.
(file_handle_unref): Clarify the code and comments a little.
(file_handle_free): Remove file handle from global table of
active handles.
(reindex_file_handle_for_path)
(get_file_handle_for_path)
(get_or_create_file_handle_for_path): global_fh_table ->
global_path_to_fh_map.
(get_file_handle_from_info): New function that recovers our file
handle from a fuse_file_info struct, but only if it exists in
the global table of valid handles.
(vfs_getattr): Remove code that acquired and locked the file handle
for the path we operate on. No locking is required here.
(vfs_open): Assign file handle to fuse_file_info while holding lock.
Purely a formality that makes code easier to read.
(vfs_create): Ditto.
(vfs_release): Use get_file_handle_from_info () so the file handle
is validated.
(vfs_read): Hold a ref to the file handle while it's in use. If
handle is invalid, raise EINVAL.
(vfs_ftruncate): Ditto.
(vfs_write): Ditto.
(vfs_rename): Cosmetic change.
(vfs_unlink): Ditto.
(vfs_truncate): Add helpful comment.
(vfs_init): Create global table of active file handles.
svn path=/trunk/; revision=2056
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-16 Alexander Larsson <alexl@redhat.com>
* daemon/gvfsbackendftp.c:
(do_mount):
Show username in auth dialog if specified in uri (#554156)
2008-10-16 Alexander Larsson <alexl@redhat.com>
* client/gvfsfusedaemon.c (getattr_for_file):
Set st_blocks & co so that du works (#554682)
Patch from Andreas Henriksson
svn path=/trunk/; revision=2052
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-09 Alexander Larsson <alexl@redhat.com>
* client/gdaemonfileinputstream.c:
(run_sync_state_machine):
Add some debug spew and avoid crashing in case of code not properly
setting the GError, as reported on the list.
svn path=/trunk/; revision=2046
|
|
|
|
|
|
|
|
|
| |
2008-10-02 Bastien Nocera <hadess@hadess.net>
* client/test-uri-utils.c: Add a few more test URIs
svn path=/trunk/; revision=2039
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-09-23 Alexander Larsson <alexl@redhat.com>
* monitor/proxy/gproxyvolumemonitor.[ch]:
* monitor/proxy/gproxyvolumemonitor.h:
* monitor/proxy/remote-volume-monitor-module.c:
Only call the IsSupported dbus call when the class
is actually needed instead of on gio init.
Don't integrate internal session bus with mainloop
during is_support code, as that is not necessary yet, and
it caused problem if done in a thread.
This fixes the trash crash issue in bug #547568.
2008-09-23 Alexander Larsson <alexl@redhat.com>
* client/Makefile.am:
* common/Makefile.am:
* common/gmountsource.c:
* common/gmounttracker.c:
* monitor/gphoto2/Makefile.am:
* monitor/hal/Makefile.am:
* monitor/proxy/Makefile.am:
Link all modules against the installed libgvfscommon instead
of duplicating the statically linked one. This is safe wrt
namespace conflicts, because the modules are opened RTLD_LOCAL
so the dependencies will not pollute the global namespace.
* client/gdaemonvfs.c:
Make the gvfsdbus module persistant. This means we will never
unload it, and thus not unload libgvfscommon which could
be problematic. This is not a huge problem, as:
+ The gio modules will not be loaded anyway unless you use gio
+ The gvfsdbus module will be persistent anyway as soon as
the app references the GVfs object, which likely all gio apps do
+ The module load order doesn't matter wrt unload order, because
all gio modules are loaded before any one is unloaded.
svn path=/trunk/; revision=2021
|
|
|
|
| |
svn path=/trunk/; revision=1983
|
|
|
|
| |
svn path=/trunk/; revision=1977
|