[tracker/configurable-bus-type: 2/2] all: Make GBusType configurable with TRACKER_BUS_TYPE
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/configurable-bus-type: 2/2] all: Make GBusType configurable with TRACKER_BUS_TYPE
- Date: Mon, 10 Mar 2014 11:15:35 +0000 (UTC)
commit cd5828870695eca6103401a5289d360315c607f9
Author: Martyn Russell <martyn lanedo com>
Date: Mon Mar 10 11:13:02 2014 +0000
all: Make GBusType configurable with TRACKER_BUS_TYPE
This works by using G_BUS_TYPE_SESSION if the env var TRACKER_BUS_TYPE is not
set and will allow for "system" to be used as a value. If it is set, the
system bus is used instead.
examples/libtracker-sparql/class-signal.c | 4 +++-
src/libtracker-common/tracker-dbus.c | 15 ++++++++++++++-
src/libtracker-common/tracker-dbus.h | 6 ++++++
src/libtracker-control/tracker-miner-manager.c | 4 ++--
src/libtracker-extract/tracker-extract-client.c | 6 ++++--
src/libtracker-miner/tracker-miner-object.c | 18 +++++++++---------
src/libtracker-miner/tracker-thumbnailer.c | 4 ++--
src/miners/fs/tracker-main.c | 3 ++-
src/miners/fs/tracker-miner-files-index.c | 2 +-
src/miners/fs/tracker-miner-files.c | 3 ++-
src/miners/fs/tracker-writeback-dispatcher.c | 2 +-
src/miners/fs/tracker-writeback-listener.c | 2 +-
src/miners/rss/tracker-miner-rss.c | 2 +-
src/plugins/evolution/tracker-evolution-plugin.c | 2 +-
src/tracker-control/tracker-control-general.c | 4 ++--
src/tracker-control/tracker-control-status.c | 2 +-
src/tracker-extract/tracker-extract-decorator.c | 2 +-
src/tracker-writeback/tracker-writeback.c | 2 +-
18 files changed, 54 insertions(+), 29 deletions(-)
---
diff --git a/examples/libtracker-sparql/class-signal.c b/examples/libtracker-sparql/class-signal.c
index 3ba2ab3..e5a9e6a 100644
--- a/examples/libtracker-sparql/class-signal.c
+++ b/examples/libtracker-sparql/class-signal.c
@@ -19,6 +19,8 @@
#include <gio/gio.h>
+#include <libtracker-common/tracker-common.h>
+
#include <libtracker-sparql/tracker-sparql.h>
static TrackerSparqlConnection *con;
@@ -87,7 +89,7 @@ main (gint argc, gchar *argv[])
loop = g_main_loop_new (NULL, FALSE);
con = tracker_sparql_connection_get (NULL, &error);
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, NULL);
signal_id = g_dbus_connection_signal_subscribe (connection,
TRACKER_DBUS_SERVICE,
diff --git a/src/libtracker-common/tracker-dbus.c b/src/libtracker-common/tracker-dbus.c
index 53da8e7..f65bb45 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_bus_type (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_BUS_TYPE, NULL, &error);
if (error) {
g_critical ("Could not connect to the D-Bus session bus, %s",
diff --git a/src/libtracker-common/tracker-dbus.h b/src/libtracker-common/tracker-dbus.h
index e7c479f..0040a69 100644
--- a/src/libtracker-common/tracker-dbus.h
+++ b/src/libtracker-common/tracker-dbus.h
@@ -28,6 +28,9 @@ G_BEGIN_DECLS
#error "only <libtracker-common/tracker-common.h> must be included directly."
#endif
+/* Allow bus type override by env var TRACKER_BUS_TYPE */
+#define TRACKER_BUS_TYPE tracker_bus_type()
+
#define TRACKER_DBUS_ERROR_DOMAIN "TrackerDBus"
#define TRACKER_DBUS_ERROR tracker_dbus_error_quark()
@@ -63,6 +66,9 @@ typedef enum {
TRACKER_DBUS_ERROR_BROKEN_PIPE
} TrackerDBusError;
+
+GBusType tracker_bus_type (void);
+
GQuark tracker_dbus_error_quark (void);
/* Utils */
diff --git a/src/libtracker-control/tracker-miner-manager.c b/src/libtracker-control/tracker-miner-manager.c
index 595c90a..69ce21f 100644
--- a/src/libtracker-control/tracker-miner-manager.c
+++ b/src/libtracker-control/tracker-miner-manager.c
@@ -404,7 +404,7 @@ miner_manager_initable_init (GInitable *initable,
manager = TRACKER_MINER_MANAGER (initable);
priv = TRACKER_MINER_MANAGER_GET_PRIVATE (manager);
- priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &inner_error);
+ priv->connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &inner_error);
if (!priv->connection) {
g_propagate_error (error, inner_error);
return FALSE;
@@ -475,7 +475,7 @@ miner_manager_initable_init (GInitable *initable,
g_hash_table_insert (priv->miner_proxies, proxy, g_strdup (data->dbus_name));
- data->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ data->watch_name_id = g_bus_watch_name (TRACKER_BUS_TYPE,
data->dbus_name,
G_BUS_NAME_WATCHER_FLAGS_NONE,
miner_appears,
diff --git a/src/libtracker-extract/tracker-extract-client.c b/src/libtracker-extract/tracker-extract-client.c
index 200fa40..ff983df 100644
--- a/src/libtracker-extract/tracker-extract-client.c
+++ b/src/libtracker-extract/tracker-extract-client.c
@@ -26,6 +26,8 @@
#include <gio/gunixfdlist.h>
#include <gio/gunixinputstream.h>
+#include <libtracker-common/tracker-dbus.h>
+
#include "tracker-extract-client.h"
/* Size of buffers used when sending data over a pipe, using DBus FD passing */
@@ -494,7 +496,7 @@ tracker_extract_client_get_metadata (GFile *file,
g_return_if_fail (callback != NULL);
if (G_UNLIKELY (!connection)) {
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, cancellable, &error);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, cancellable, &error);
if (error) {
g_simple_async_report_gerror_in_idle (G_OBJECT (file), callback, user_data, error);
@@ -556,7 +558,7 @@ tracker_extract_client_cancel_for_prefix (GFile *prefix)
if (G_UNLIKELY (!connection)) {
GError *error = NULL;
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (error) {
g_warning ("Couldn't get session bus, cannot cancel extractor tasks: '%s'",
error->message);
diff --git a/src/libtracker-miner/tracker-miner-object.c b/src/libtracker-miner/tracker-miner-object.c
index 9b460d4..695981d 100644
--- a/src/libtracker-miner/tracker-miner-object.c
+++ b/src/libtracker-miner/tracker-miner-object.c
@@ -411,7 +411,7 @@ miner_initable_init (GInitable *initable,
}
/* Try to get DBus connection... */
- miner->priv->d_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &inner_error);
+ miner->priv->d_connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &inner_error);
if (!miner->priv->d_connection) {
g_propagate_error (error, inner_error);
return FALSE;
@@ -496,13 +496,13 @@ miner_initable_init (GInitable *initable,
return FALSE;
}
- miner->priv->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
- TRACKER_SERVICE,
- G_BUS_NAME_WATCHER_FLAGS_NONE,
- on_tracker_store_appeared,
- on_tracker_store_disappeared,
- miner,
- NULL);
+ miner->priv->watch_name_id = g_bus_watch_name (TRACKER_BUS_TYPE,
+ TRACKER_SERVICE,
+ G_BUS_NAME_WATCHER_FLAGS_NONE,
+ on_tracker_store_appeared,
+ on_tracker_store_disappeared,
+ miner,
+ NULL);
return TRUE;
}
@@ -961,7 +961,7 @@ miner_pause_internal (TrackerMiner *miner,
if (calling_name) {
g_message ("Watching process with name:'%s'", calling_name);
- watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ watch_name_id = g_bus_watch_name (TRACKER_BUS_TYPE,
calling_name,
G_BUS_NAME_WATCHER_FLAGS_NONE,
NULL,
diff --git a/src/libtracker-miner/tracker-thumbnailer.c b/src/libtracker-miner/tracker-thumbnailer.c
index 58fc76a..eeb3adc 100644
--- a/src/libtracker-miner/tracker-thumbnailer.c
+++ b/src/libtracker-miner/tracker-thumbnailer.c
@@ -142,9 +142,9 @@ tracker_thumbnailer_initable_init (GInitable *initable,
private->request_id = 1;
private->service_is_available = FALSE;
- g_message ("Thumbnailer connections being set up...");
+ g_message ("Thumbnailer connections being set up... (using same bus as Tracker, i.e. session or
system)");
- private->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
+ private->connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, error);
if (!private->connection)
return FALSE;
diff --git a/src/miners/fs/tracker-main.c b/src/miners/fs/tracker-main.c
index 1204044..6c92e4e 100644
--- a/src/miners/fs/tracker-main.c
+++ b/src/miners/fs/tracker-main.c
@@ -31,6 +31,7 @@
#include <glib-object.h>
#include <glib/gi18n.h>
+#include <libtracker-common/tracker-dbus.h>
#include <libtracker-common/tracker-ioprio.h>
#include <libtracker-common/tracker-log.h>
#include <libtracker-common/tracker-ontologies.h>
@@ -768,7 +769,7 @@ store_is_available (void)
GDBusProxy *proxy;
gchar *name_owner;
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, NULL);
if (!connection) {
return FALSE;
diff --git a/src/miners/fs/tracker-miner-files-index.c b/src/miners/fs/tracker-miner-files-index.c
index 7b6a67d..733f81a 100644
--- a/src/miners/fs/tracker-miner-files-index.c
+++ b/src/miners/fs/tracker-miner-files-index.c
@@ -453,7 +453,7 @@ tracker_miner_files_index_new (TrackerMinerFiles *miner_files)
priv = TRACKER_MINER_FILES_INDEX_GET_PRIVATE (miner);
- priv->d_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ priv->d_connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (!priv->d_connection) {
g_critical ("Could not connect to the D-Bus session bus, %s",
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index dd14536..059de7d 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -34,6 +34,7 @@
#include <gio/gunixfdlist.h>
#include <gio/gunixinputstream.h>
+#include <libtracker-common/tracker-dbus.h>
#include <libtracker-common/tracker-date-time.h>
#include <libtracker-common/tracker-ontologies.h>
#include <libtracker-common/tracker-type-utils.h>
@@ -313,7 +314,7 @@ miner_files_initable_init (GInitable *initable,
}
/* Set up extractor and signals */
- mf->private->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &inner_error);
+ mf->private->connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &inner_error);
if (!mf->private->connection) {
g_propagate_error (error, inner_error);
g_prefix_error (error,
diff --git a/src/miners/fs/tracker-writeback-dispatcher.c b/src/miners/fs/tracker-writeback-dispatcher.c
index 7f7400d..c5cf42f 100644
--- a/src/miners/fs/tracker-writeback-dispatcher.c
+++ b/src/miners/fs/tracker-writeback-dispatcher.c
@@ -193,7 +193,7 @@ writeback_dispatcher_initable_init (GInitable *initable,
return FALSE;
}
- priv->d_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &internal_error);
+ priv->d_connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &internal_error);
if (internal_error) {
g_propagate_error (error, internal_error);
diff --git a/src/miners/fs/tracker-writeback-listener.c b/src/miners/fs/tracker-writeback-listener.c
index 0ccec24..ad36ff7 100644
--- a/src/miners/fs/tracker-writeback-listener.c
+++ b/src/miners/fs/tracker-writeback-listener.c
@@ -190,7 +190,7 @@ writeback_listener_initable_init (GInitable *initable,
return FALSE;
}
- priv->d_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &internal_error);
+ priv->d_connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &internal_error);
if (internal_error) {
g_propagate_error (error, internal_error);
diff --git a/src/miners/rss/tracker-miner-rss.c b/src/miners/rss/tracker-miner-rss.c
index 089ebf2..6b26131 100644
--- a/src/miners/rss/tracker-miner-rss.c
+++ b/src/miners/rss/tracker-miner-rss.c
@@ -145,7 +145,7 @@ tracker_miner_rss_init (TrackerMinerRSS *object)
priv = TRACKER_MINER_RSS_GET_PRIVATE (object);
- priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ priv->connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (!priv->connection) {
g_critical ("Could not connect to the D-Bus session bus, %s",
diff --git a/src/plugins/evolution/tracker-evolution-plugin.c
b/src/plugins/evolution/tracker-evolution-plugin.c
index db93c05..a5b3bee 100644
--- a/src/plugins/evolution/tracker-evolution-plugin.c
+++ b/src/plugins/evolution/tracker-evolution-plugin.c
@@ -2492,7 +2492,7 @@ miner_start_watching (TrackerMiner *miner)
{
TrackerMinerEvolutionPrivate *priv = TRACKER_MINER_EVOLUTION_GET_PRIVATE (miner);
- priv->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ priv->watch_name_id = g_bus_watch_name (TRACKER_BUS_TYPE,
TRACKER_SERVICE,
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_tracker_store_appeared,
diff --git a/src/tracker-control/tracker-control-general.c b/src/tracker-control/tracker-control-general.c
index 7304c77..afabf10 100644
--- a/src/tracker-control/tracker-control-general.c
+++ b/src/tracker-control/tracker-control-general.c
@@ -1262,7 +1262,7 @@ tracker_control_general_run (void)
g_print ("%s\n", _("Backing up database"));
g_print (" %s\n", uri);
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (!connection) {
g_critical ("Could not connect to the D-Bus session bus: %s",
@@ -1334,7 +1334,7 @@ tracker_control_general_run (void)
g_print ("%s\n", _("Restoring database from backup"));
g_print (" %s\n", uri);
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (!connection) {
g_critical ("Could not connect to the D-Bus session bus: %s",
diff --git a/src/tracker-control/tracker-control-status.c b/src/tracker-control/tracker-control-status.c
index bbf3227..ec56f3c 100644
--- a/src/tracker-control/tracker-control-status.c
+++ b/src/tracker-control/tracker-control-status.c
@@ -459,7 +459,7 @@ store_init (void)
return TRUE;
}
- connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &error);
if (!connection) {
g_critical ("Could not connect to the D-Bus session bus, %s",
diff --git a/src/tracker-extract/tracker-extract-decorator.c b/src/tracker-extract/tracker-extract-decorator.c
index 439b828..12acdf1 100644
--- a/src/tracker-extract/tracker-extract-decorator.c
+++ b/src/tracker-extract/tracker-extract-decorator.c
@@ -556,7 +556,7 @@ tracker_extract_decorator_initable_init (GInitable *initable,
tracker_extract_dbus_priority_set_supported_rdf_types (priv->iface,
supported_classes);
- conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
+ conn = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, error);
if (conn == NULL) {
ret = FALSE;
goto out;
diff --git a/src/tracker-writeback/tracker-writeback.c b/src/tracker-writeback/tracker-writeback.c
index 7435b0f..6c88338 100644
--- a/src/tracker-writeback/tracker-writeback.c
+++ b/src/tracker-writeback/tracker-writeback.c
@@ -728,7 +728,7 @@ tracker_controller_dbus_start (TrackerController *controller,
return FALSE;
}
- priv->d_connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &err);
+ priv->d_connection = g_bus_get_sync (TRACKER_BUS_TYPE, NULL, &err);
if (!priv->d_connection) {
g_propagate_error (error, err);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]