summaryrefslogtreecommitdiff
path: root/daemon/gvfsreadchannel.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-02-27 12:59:47 +0000
committerAlexander Larsson <alexl@src.gnome.org>2009-02-27 12:59:47 +0000
commit28713ed6b20cb617bce93e639b764617a118e1dd (patch)
tree8e840db7df291d1c60a55eb0aba9364ae89bde73 /daemon/gvfsreadchannel.c
parent4c1cbdac8d59b1bf53319bc9e5a165c8b11adacb (diff)
downloadgvfs-28713ed6b20cb617bce93e639b764617a118e1dd.tar.gz
Add (de)marshalling functions for GFileInfos.
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
Diffstat (limited to 'daemon/gvfsreadchannel.c')
-rw-r--r--daemon/gvfsreadchannel.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/daemon/gvfsreadchannel.c b/daemon/gvfsreadchannel.c
index c6e079b0..1f043b85 100644
--- a/daemon/gvfsreadchannel.c
+++ b/daemon/gvfsreadchannel.c
@@ -37,7 +37,9 @@
#include <gvfsdaemonutils.h>
#include <gvfsjobread.h>
#include <gvfsjobseekread.h>
+#include <gvfsjobqueryinforead.h>
#include <gvfsjobcloseread.h>
+#include <gvfsfileinfo.h>
struct _GVfsReadChannel
{
@@ -134,6 +136,7 @@ read_channel_handle_request (GVfsChannel *channel,
GVfsBackendHandle backend_handle;
GVfsBackend *backend;
GVfsReadChannel *read_channel;
+ char *attrs;
read_channel = G_VFS_READ_CHANNEL (channel);
backend_handle = g_vfs_channel_get_backend_handle (channel);
@@ -168,6 +171,16 @@ read_channel_handle_request (GVfsChannel *channel,
((goffset)arg1) | (((goffset)arg2) << 32),
backend);
break;
+
+ case G_VFS_DAEMON_SOCKET_PROTOCOL_REQUEST_QUERY_INFO:
+ attrs = g_strndup (data, data_len);
+ job = g_vfs_job_query_info_read_new (read_channel,
+ backend_handle,
+ attrs,
+ backend);
+
+ g_free (attrs);
+ break;
default:
g_set_error (error, G_IO_ERROR,