diff options
author | Ondrej Holy <oholy@redhat.com> | 2020-09-25 16:00:49 +0200 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2020-09-25 16:00:49 +0200 |
commit | df89add947a3ae69b516e27b1f98028cc63710a8 (patch) | |
tree | 8d3e3a38e0b94e8e2c07a665e5c7e4b606f5ecbe | |
parent | e3f3d77b465b11adde7ef8d257b980286d11331d (diff) | |
download | gvfs-df89add947a3ae69b516e27b1f98028cc63710a8.tar.gz |
client: Show warning when peer-to-peer connection failed
When peer-to-peer connection fails, the session bus is silently used
instead by the asynchronous API. Let's add warnings to make it more
obvious and mention that --filesystem=xdg-run/gvfsd is probably
missing.
-rw-r--r-- | client/gdaemonfile.c | 13 | ||||
-rw-r--r-- | client/gdaemonfilemonitor.c | 5 | ||||
-rw-r--r-- | client/gdaemonmount.c | 6 | ||||
-rw-r--r-- | client/gvfsiconloadable.c | 11 |
4 files changed, 27 insertions, 8 deletions
diff --git a/client/gdaemonfile.c b/client/gdaemonfile.c index 2a8c1511..f0716b1d 100644 --- a/client/gdaemonfile.c +++ b/client/gdaemonfile.c @@ -439,7 +439,12 @@ create_proxy_for_file2 (GFile *file1, connection = _g_dbus_connection_get_sync (mount_info1->dbus_id, cancellable, &local_error); if (connection == NULL) - goto out; + { + g_warning ("The peer-to-peer connection failed: %s. Your application is " + "probably missing --filesystem=xdg-run/gvfsd privileges.", + local_error->message); + 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, @@ -613,8 +618,10 @@ async_got_connection_cb (GDBusConnection *connection, if (connection == NULL) { - /* TODO: we should probably test if we really want a session bus; - * for now, this code is on par with the old dbus code */ + 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.", io_error->message); + g_bus_get (G_BUS_TYPE_SESSION, g_task_get_cancellable (data->task), bus_get_cb, diff --git a/client/gdaemonfilemonitor.c b/client/gdaemonfilemonitor.c index 2d9f958f..17dd75d9 100644 --- a/client/gdaemonfilemonitor.c +++ b/client/gdaemonfilemonitor.c @@ -180,8 +180,9 @@ 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_printerr ("Error getting connection for monitoring: %s (%s, %d)\n", - error->message, g_quark_to_string (error->domain), error->code); + g_warning ("The peer-to-peer connection failed: %s. Your application is " + "probably missing --filesystem=xdg-run/gvfsd privileges.", + error->message); g_error_free (error); } else diff --git a/client/gdaemonmount.c b/client/gdaemonmount.c index d49fad89..41277cb6 100644 --- a/client/gdaemonmount.c +++ b/client/gdaemonmount.c @@ -315,8 +315,10 @@ async_got_connection_cb (GDBusConnection *connection, if (connection == NULL) { - /* TODO: we should probably test if we really want a session bus; - * for now, this code is on par with the old dbus code */ + 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.", io_error->message); + g_bus_get (G_BUS_TYPE_SESSION, g_task_get_cancellable (task), bus_get_cb, diff --git a/client/gvfsiconloadable.c b/client/gvfsiconloadable.c index 5050cfbe..2c001210 100644 --- a/client/gvfsiconloadable.c +++ b/client/gvfsiconloadable.c @@ -59,7 +59,12 @@ create_proxy_for_icon (GVfsIcon *vfs_icon, connection = _g_dbus_connection_get_sync (mount_info->dbus_id, cancellable, &local_error); if (connection == NULL) - goto out; + { + g_warning ("The peer-to-peer connection failed: %s. Your application is " + "probably missing --filesystem=xdg-run/gvfsd privileges.", + local_error->message); + 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, @@ -242,6 +247,10 @@ async_got_connection_cb (GDBusConnection *connection, if (connection == NULL) { + 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.", io_error->message); + g_bus_get (G_BUS_TYPE_SESSION, g_task_get_cancellable (data->task), bus_get_cb, |