diff options
-rw-r--r-- | client/gdaemonfile.c | 13 | ||||
-rw-r--r-- | client/gdaemonfilemonitor.c | 15 | ||||
-rw-r--r-- | client/gvfsiconloadable.c | 13 |
3 files changed, 30 insertions, 11 deletions
diff --git a/client/gdaemonfile.c b/client/gdaemonfile.c index f0716b1d..3148eef8 100644 --- a/client/gdaemonfile.c +++ b/client/gdaemonfile.c @@ -440,12 +440,17 @@ create_proxy_for_file2 (GFile *file1, connection = _g_dbus_connection_get_sync (mount_info1->dbus_id, cancellable, &local_error); if (connection == NULL) { - g_warning ("The peer-to-peer connection failed: %s. Your application is " - "probably missing --filesystem=xdg-run/gvfsd privileges.", - local_error->message); - goto out; + g_warning ("The peer-to-peer connection failed: %s. Falling back to the " + "session bus. Your application is probably missing " + "--filesystem=xdg-run/gvfsd privileges.", local_error->message); + g_clear_error (&local_error); + + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, cancellable, &local_error); } + if (connection == NULL) + goto out; + proxy = gvfs_dbus_mount_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, mount_info1->dbus_id, diff --git a/client/gdaemonfilemonitor.c b/client/gdaemonfilemonitor.c index 17dd75d9..1dadd617 100644 --- a/client/gdaemonfilemonitor.c +++ b/client/gdaemonfilemonitor.c @@ -180,9 +180,18 @@ g_daemon_file_monitor_new (const char *remote_id, connection = _g_dbus_connection_get_sync (daemon_monitor->remote_id, NULL, &error); if (connection == NULL) { - g_warning ("The peer-to-peer connection failed: %s. Your application is " - "probably missing --filesystem=xdg-run/gvfsd privileges.", - error->message); + g_warning ("The peer-to-peer connection failed: %s. Falling back to the " + "session bus. Your application is probably missing " + "--filesystem=xdg-run/gvfsd privileges.", error->message); + g_clear_error (&error); + + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + } + + if (connection == NULL) + { + g_printerr ("Error getting connection for monitoring: %s (%s, %d)\n", + error->message, g_quark_to_string (error->domain), error->code); g_error_free (error); } else diff --git a/client/gvfsiconloadable.c b/client/gvfsiconloadable.c index 2c001210..a10a2fe9 100644 --- a/client/gvfsiconloadable.c +++ b/client/gvfsiconloadable.c @@ -60,12 +60,17 @@ create_proxy_for_icon (GVfsIcon *vfs_icon, connection = _g_dbus_connection_get_sync (mount_info->dbus_id, cancellable, &local_error); if (connection == NULL) { - g_warning ("The peer-to-peer connection failed: %s. Your application is " - "probably missing --filesystem=xdg-run/gvfsd privileges.", - local_error->message); - goto out; + g_warning ("The peer-to-peer connection failed: %s. Falling back to the " + "session bus. Your application is probably missing " + "--filesystem=xdg-run/gvfsd privileges.", local_error->message); + g_clear_error (&local_error); + + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, cancellable, &local_error); } + if (connection == NULL) + goto out; + proxy = gvfs_dbus_mount_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, mount_info->dbus_id, |