diff options
Diffstat (limited to 'src/libtracker-common/tracker-dbus.c')
-rw-r--r-- | src/libtracker-common/tracker-dbus.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/libtracker-common/tracker-dbus.c b/src/libtracker-common/tracker-dbus.c index 53da8e782..06b487125 100644 --- a/src/libtracker-common/tracker-dbus.c +++ b/src/libtracker-common/tracker-dbus.c @@ -63,11 +63,24 @@ static GDBusConnection *connection; static void client_data_free (gpointer data); static gboolean client_clean_up_cb (gpointer data); +inline GBusType +tracker_ipc_bus (void) +{ + const gchar *bus = g_getenv ("TRACKER_BUS_TYPE"); + + if (G_UNLIKELY (bus != NULL && + g_ascii_strcasecmp (bus, "system") == 0)) { + return G_BUS_TYPE_SYSTEM; + } + + return G_BUS_TYPE_SESSION; +} + static gboolean clients_init (void) { GError *error = NULL; - connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + connection = g_bus_get_sync (TRACKER_IPC_BUS, NULL, &error); if (error) { g_critical ("Could not connect to the D-Bus session bus, %s", |