summaryrefslogtreecommitdiff
path: root/daemon/gvfsjobenumerate.c
diff options
context:
space:
mode:
authorRoss Lagerwall <rosslagerwall@gmail.com>2013-12-17 13:21:39 +0200
committerRoss Lagerwall <rosslagerwall@gmail.com>2014-01-23 10:20:25 +0200
commit31129df79b1f86ccd8fa1a01936fdfa6bc98e83b (patch)
treec5d704ff65a0751ce9cf8eab51fe76feb948bf83 /daemon/gvfsjobenumerate.c
parent5de780f7d7ca5ef3d930c050fa6f57c8d3f0ebdf (diff)
downloadgvfs-31129df79b1f86ccd8fa1a01936fdfa6bc98e83b.tar.gz
daemon: Set infinite timeout for enumerate response
Set an infinite timeout for responses to enumerate() otherwise it can timeout when enumerating large, slow directories. https://bugzilla.gnome.org/show_bug.cgi?id=598092
Diffstat (limited to 'daemon/gvfsjobenumerate.c')
-rw-r--r--daemon/gvfsjobenumerate.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/daemon/gvfsjobenumerate.c b/daemon/gvfsjobenumerate.c
index 9411e1ee..c6516eb9 100644
--- a/daemon/gvfsjobenumerate.c
+++ b/daemon/gvfsjobenumerate.c
@@ -117,16 +117,21 @@ create_enumerator_proxy (GVfsJobEnumerate *job)
{
GDBusConnection *connection;
const gchar *sender;
+ GVfsDBusEnumerator *proxy;
connection = g_dbus_method_invocation_get_connection (G_VFS_JOB_DBUS (job)->invocation);
sender = g_dbus_method_invocation_get_sender (G_VFS_JOB_DBUS (job)->invocation);
- return gvfs_dbus_enumerator_proxy_new_sync (connection,
- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
- sender,
- job->object_path,
- NULL,
- NULL);
+ proxy = gvfs_dbus_enumerator_proxy_new_sync (connection,
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
+ sender,
+ job->object_path,
+ NULL,
+ NULL);
+ g_assert (proxy != NULL);
+ g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (proxy), G_MAXINT);
+
+ return proxy;
}
static void
@@ -151,7 +156,6 @@ send_infos (GVfsJobEnumerate *job)
GVfsDBusEnumerator *proxy;
proxy = create_enumerator_proxy (job);
- g_assert (proxy != NULL);
gvfs_dbus_enumerator_call_got_info (proxy,
g_variant_builder_end (job->building_infos),
@@ -245,7 +249,6 @@ g_vfs_job_enumerate_done (GVfsJobEnumerate *job)
send_infos (job);
proxy = create_enumerator_proxy (job);
- g_assert (proxy != NULL);
gvfs_dbus_enumerator_call_done (proxy,
NULL,