gvfs/gvfs-1.5.1-obexftp-dbus-private-connection.patch
Tomas Bzatek e9af85216f - Don't leak mount job operation (#552842)
- Recognize gphoto2 cameras which don't implement get storageinfo (#552856)
- ObexFTP: Use a private D-Bus connection for obex-data-server (#539347)
2010-01-12 15:12:56 +00:00

48 lines
1.6 KiB
Diff

From 56c3b9cf90bfd53a699b5951677fee9f83b26c2f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 07 Jan 2010 18:08:00 +0000
Subject: [obexftp] Use a private D-Bus connection for obex-data-server
So as to avoid gvfs and our backend fighting over the session
bus connection, and causing crashers.
https://bugzilla.gnome.org/show_bug.cgi?id=570366
https://bugzilla.redhat.com/show_bug.cgi?id=539347
---
diff --git a/daemon/gvfsbackendobexftp.c b/daemon/gvfsbackendobexftp.c
index eb1b43b..8dc8bdf 100644
--- a/daemon/gvfsbackendobexftp.c
+++ b/daemon/gvfsbackendobexftp.c
@@ -502,9 +502,28 @@ g_vfs_backend_obexftp_finalize (GObject *object)
static void
g_vfs_backend_obexftp_init (GVfsBackendObexftp *backend)
{
+ DBusConnection *conn;
+ DBusGConnection *connection;
+ DBusError error;
GError *err = NULL;
- backend->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &err);
+ /* Otherwise dbus-glib doesn't setup it value types */
+ connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
+
+ if (connection != NULL)
+ dbus_g_connection_unref (connection);
+
+ /* Connect to the session bus via a private connection */
+ dbus_error_init (&error);
+ conn = dbus_bus_get_private (DBUS_BUS_SESSION, &error);
+ if (conn == NULL) {
+ g_printerr ("Connecting to session bus failed: %s\n", err->message);
+ dbus_error_free (&error);
+ return;
+ }
+ dbus_connection_setup_with_g_main (conn, NULL);
+
+ backend->connection = dbus_connection_get_g_connection (conn);
if (backend->connection == NULL) {
g_printerr ("Connecting to session bus failed: %s\n", err->message);
g_error_free (err);
--
cgit v0.8.3.1