summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2014-04-01 11:30:17 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-04-01 11:30:17 +0100
commit113926ef197e8d228bcc3a734ac9763415546347 (patch)
tree88c7793e94407e7fce7789bda2cffce052d3ae29
parentff2328c312fb630ba80c16bb8214e9e43d75f7c3 (diff)
Pass a TpClientFactory around instead of a TpDBusDaemonnext-factory
-rw-r--r--src/client-registry.c128
-rw-r--r--src/client-registry.h4
-rw-r--r--src/mcd-account-manager.c64
-rw-r--r--src/mcd-account-manager.h5
-rw-r--r--src/mcd-account.c37
-rw-r--r--src/mcd-client-priv.h2
-rw-r--r--src/mcd-client.c4
-rw-r--r--src/mcd-dispatch-operation.c9
-rw-r--r--src/mcd-dispatcher.c39
-rw-r--r--src/mcd-dispatcher.h2
-rw-r--r--src/mcd-handler-map-priv.h2
-rw-r--r--src/mcd-handler-map.c33
-rw-r--r--src/mcd-manager.c10
-rw-r--r--src/mcd-master.c37
-rw-r--r--src/mcd-master.h2
-rw-r--r--src/mcd-service.c17
-rw-r--r--src/request.c11
-rw-r--r--tests/twisted/mc-debug-server.c6
-rw-r--r--tests/twisted/mcp-plugin.c21
-rw-r--r--util/mc-tool.c16
20 files changed, 216 insertions, 233 deletions
diff --git a/src/client-registry.c b/src/client-registry.c
index cebcf4d9..d27f17aa 100644
--- a/src/client-registry.c
+++ b/src/client-registry.c
@@ -36,7 +36,7 @@ G_DEFINE_TYPE (McdClientRegistry, _mcd_client_registry, G_TYPE_OBJECT)
enum
{
PROP_0,
- PROP_DBUS_DAEMON
+ PROP_FACTORY
};
enum
@@ -54,7 +54,7 @@ struct _McdClientRegistryPrivate
* owned gchar * well_known_name -> owned McdClientProxy */
GHashTable *clients;
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
/* subscription to NameOwnerChanged */
guint noc_id;
@@ -153,7 +153,7 @@ _mcd_client_registry_found_name (McdClientRegistry *self,
DEBUG ("Registering client %s", well_known_name);
- client = _mcd_client_proxy_new (self->priv->dbus_daemon,
+ client = _mcd_client_proxy_new (self->priv->factory,
well_known_name, unique_name_if_known, activatable);
g_hash_table_insert (self->priv->clients, g_strdup (well_known_name),
client);
@@ -237,70 +237,95 @@ _mcd_client_registry_init (McdClientRegistry *self)
}
static void
-mcd_client_registry_list_activatable_names_cb (TpDBusDaemon *proxy,
- const gchar **names,
- const GError *error,
- gpointer user_data,
- GObject *weak_object)
+mcd_client_registry_list_activatable_names_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
{
- McdClientRegistry *self = MCD_CLIENT_REGISTRY (weak_object);
+ McdClientRegistry *self = MCD_CLIENT_REGISTRY (user_data);
+ GDBusConnection *conn = G_DBUS_CONNECTION (source_object);
+ GVariant *tuple;
+ GError *error = NULL;
+
+ tuple = g_dbus_connection_call_finish (conn, result, &error);
- if (error != NULL)
+ if (tuple == NULL)
{
DEBUG ("ListActivatableNames returned error, assuming none: %s %d: %s",
g_quark_to_string (error->domain), error->code, error->message);
+ g_error_free (error);
}
- else if (names != NULL)
+ else
{
- const gchar **iter = names;
+ const gchar **names = NULL;
+ const gchar **iter;
+
+ g_variant_get (tuple, "(^a&s)", &names);
DEBUG ("ListActivatableNames returned");
- while (*iter != NULL)
+ for (iter = names; iter != NULL && *iter != NULL; iter++)
{
_mcd_client_registry_found_name (self, *iter, NULL, TRUE);
- iter++;
}
+
+ g_free (names);
+ g_variant_unref (tuple);
}
/* paired with the lock taken when the McdClientRegistry was constructed */
_mcd_client_registry_dec_startup_lock (self);
+
+ g_object_unref (self);
}
static void
-mcd_client_registry_list_names_cb (TpDBusDaemon *proxy,
- const gchar **names,
- const GError *error,
- gpointer user_data,
- GObject *weak_object)
+mcd_client_registry_list_names_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
{
- McdClientRegistry *self = MCD_CLIENT_REGISTRY (weak_object);
+ McdClientRegistry *self = MCD_CLIENT_REGISTRY (user_data);
+ GDBusConnection *conn = G_DBUS_CONNECTION (source_object);
+ GVariant *tuple;
+ GError *error = NULL;
+
+ tuple = g_dbus_connection_call_finish (conn, result, &error);
- if (error != NULL)
+ if (tuple == NULL)
{
DEBUG ("ListNames returned error, assuming none: %s %d: %s",
g_quark_to_string (error->domain), error->code, error->message);
+ g_error_free (error);
}
- else if (names != NULL)
+ else
{
- const gchar **iter = names;
+ const gchar **names = NULL;
+ const gchar **iter;
+
+ g_variant_get (tuple, "(^a&s)", &names);
DEBUG ("ListNames returned");
- while (*iter != NULL)
+ for (iter = names; iter != NULL && *iter != NULL; iter++)
{
_mcd_client_registry_found_name (self, *iter, NULL, FALSE);
- iter++;
}
+
+ g_free (names);
+ g_variant_unref (tuple);
}
- tp_cli_dbus_daemon_call_list_activatable_names (proxy, -1,
- mcd_client_registry_list_activatable_names_cb,
- NULL, NULL, weak_object);
+ g_dbus_connection_call (conn,
+ "org.freedesktop.DBus", "/org/freedesktop/DBus",
+ "org.freedesktop.DBus", "ListNames",
+ NULL,
+ G_VARIANT_TYPE ("(as)"), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
+ mcd_client_registry_list_activatable_names_cb, g_object_ref (self));
/* deliberately not calling _mcd_client_registry_dec_startup_lock here -
* this function is "lock-neutral", similarly to list_names_cb (we would
* take a lock for ListActivatableNames then release the one used for
* ReloadConfig), so simplify by doing nothing */
+
+ g_object_unref (self);
}
static void
@@ -331,8 +356,8 @@ mcd_client_registry_name_owner_changed_cb (GDBusConnection *conn,
static void
watch_clients (McdClientRegistry *self)
{
- TpDBusDaemon *dbus_daemon = self->priv->dbus_daemon;
- GDBusConnection *gconn = tp_proxy_get_dbus_connection (dbus_daemon);
+ GDBusConnection *gconn = tp_client_factory_get_dbus_connection (
+ self->priv->factory);
/* for simplicity we now hard-depend on D-Bus 1.6, which is in Debian 7,
* Ubuntu LTS, etc. */
@@ -354,14 +379,19 @@ mcd_client_registry_constructed (GObject *object)
if (chain_up != NULL)
chain_up (object);
- g_return_if_fail (self->priv->dbus_daemon != NULL);
+ g_return_if_fail (self->priv->factory != NULL);
DEBUG ("Starting to look for clients");
watch_clients (self);
- tp_cli_dbus_daemon_call_list_names (self->priv->dbus_daemon, -1,
- mcd_client_registry_list_names_cb, NULL, NULL, object);
+ g_dbus_connection_call (
+ tp_client_factory_get_dbus_connection (self->priv->factory),
+ "org.freedesktop.DBus", "/org/freedesktop/DBus",
+ "org.freedesktop.DBus", "ListNames",
+ NULL,
+ G_VARIANT_TYPE ("(as)"), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
+ mcd_client_registry_list_names_cb, g_object_ref (object));
}
static void
@@ -374,9 +404,9 @@ mcd_client_registry_set_property (GObject *object,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_assert (self->priv->dbus_daemon == NULL); /* it's construct-only */
- self->priv->dbus_daemon = TP_DBUS_DAEMON (g_value_dup_object (value));
+ case PROP_FACTORY:
+ g_assert (self->priv->factory == NULL); /* it's construct-only */
+ self->priv->factory = TP_CLIENT_FACTORY (g_value_dup_object (value));
break;
default:
@@ -395,8 +425,8 @@ mcd_client_registry_get_property (GObject *object,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_value_set_object (value, self->priv->dbus_daemon);
+ case PROP_FACTORY:
+ g_value_set_object (value, self->priv->factory);
break;
default:
@@ -412,15 +442,15 @@ mcd_client_registry_dispose (GObject *object)
void (*chain_up) (GObject *) =
G_OBJECT_CLASS (_mcd_client_registry_parent_class)->dispose;
- if (self->priv->dbus_daemon != NULL && self->priv->noc_id != 0)
+ if (self->priv->factory != NULL && self->priv->noc_id != 0)
{
GDBusConnection *gconn =
- tp_proxy_get_dbus_connection (self->priv->dbus_daemon);
+ tp_client_factory_get_dbus_connection (self->priv->factory);
g_dbus_connection_signal_unsubscribe (gconn, self->priv->noc_id);
}
- tp_clear_object (&self->priv->dbus_daemon);
+ tp_clear_object (&self->priv->factory);
if (self->priv->clients != NULL)
{
@@ -447,9 +477,9 @@ _mcd_client_registry_class_init (McdClientRegistryClass *cls)
object_class->set_property = mcd_client_registry_set_property;
object_class->dispose = mcd_client_registry_dispose;
- g_object_class_install_property (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "D-Bus daemon", "D-Bus daemon",
- TP_TYPE_DBUS_DAEMON,
+ g_object_class_install_property (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
signals[S_CLIENT_ADDED] = g_signal_new ("client-added",
@@ -468,10 +498,10 @@ _mcd_client_registry_class_init (McdClientRegistryClass *cls)
}
McdClientRegistry *
-_mcd_client_registry_new (TpDBusDaemon *dbus_daemon)
+_mcd_client_registry_new (TpClientFactory *factory)
{
return g_object_new (MCD_TYPE_CLIENT_REGISTRY,
- "dbus-daemon", dbus_daemon,
+ "factory", factory,
NULL);
}
@@ -677,9 +707,9 @@ _mcd_client_registry_list_possible_handlers (McdClientRegistry *self,
return handlers;
}
-TpDBusDaemon *
-_mcd_client_registry_get_dbus_daemon (McdClientRegistry *self)
+TpClientFactory *
+_mcd_client_registry_get_factory (McdClientRegistry *self)
{
g_return_val_if_fail (MCD_IS_CLIENT_REGISTRY (self), NULL);
- return self->priv->dbus_daemon;
+ return self->priv->factory;
}
diff --git a/src/client-registry.h b/src/client-registry.h
index fb81f6d4..2a6275a2 100644
--- a/src/client-registry.h
+++ b/src/client-registry.h
@@ -64,9 +64,9 @@ GType _mcd_client_registry_get_type (void);
McdClientRegistryClass))
G_GNUC_INTERNAL McdClientRegistry *_mcd_client_registry_new (
- TpDBusDaemon *dbus_daemon);
+ TpClientFactory *factory);
-TpDBusDaemon *_mcd_client_registry_get_dbus_daemon (McdClientRegistry *self);
+TpClientFactory *_mcd_client_registry_get_factory (McdClientRegistry *self);
G_GNUC_INTERNAL McdClientProxy *_mcd_client_registry_lookup (
McdClientRegistry *self, const gchar *well_known_name);
diff --git a/src/mcd-account-manager.c b/src/mcd-account-manager.c
index 97e25452..9c267592 100644
--- a/src/mcd-account-manager.c
+++ b/src/mcd-account-manager.c
@@ -79,7 +79,6 @@ G_DEFINE_TYPE_WITH_CODE (McdAccountManager, mcd_account_manager, G_TYPE_OBJECT,
struct _McdAccountManagerPrivate
{
- TpDBusDaemon *dbus_daemon;
TpClientFactory *client_factory;
McdConnectivityMonitor *minotaur;
@@ -129,7 +128,6 @@ typedef struct
enum
{
PROP_0,
- PROP_DBUS_DAEMON,
PROP_CLIENT_FACTORY
};
@@ -1416,7 +1414,8 @@ _mcd_account_manager_setup (McdAccountManager *account_manager)
priv->setup_lock = 1; /* will be released at the end of this function */
- g_dbus_connection_call (tp_proxy_get_dbus_connection (priv->dbus_daemon),
+ g_dbus_connection_call (
+ tp_client_factory_get_dbus_connection (priv->client_factory),
"org.freedesktop.DBus", "/org/freedesktop/DBus",
"org.freedesktop.DBus", "ListNames",
NULL,
@@ -1520,13 +1519,13 @@ register_dbus_service (McdAccountManager *account_manager)
if (priv->dbus_registered)
return;
- tp_dbus_daemon_register_object (priv->dbus_daemon,
- TP_ACCOUNT_MANAGER_OBJECT_PATH,
- account_manager);
+ tp_dbus_connection_register_object (
+ tp_client_factory_get_dbus_connection (priv->client_factory),
+ TP_ACCOUNT_MANAGER_OBJECT_PATH, account_manager);
- if (!tp_dbus_daemon_request_name (priv->dbus_daemon,
- TP_ACCOUNT_MANAGER_BUS_NAME,
- TRUE /* idempotent */, &error))
+ if (!tp_dbus_connection_request_name (
+ tp_client_factory_get_dbus_connection (priv->client_factory),
+ TP_ACCOUNT_MANAGER_BUS_NAME, TRUE /* idempotent */, &error))
{
/* FIXME: put in proper error handling when MC gains the ability to
* be the AM or the CD but not both */
@@ -1551,9 +1550,6 @@ set_property (GObject *obj, guint prop_id,
case PROP_CLIENT_FACTORY:
g_assert (priv->client_factory == NULL); /* construct-only */
priv->client_factory = TP_CLIENT_FACTORY (g_value_dup_object (val));
- priv->dbus_daemon =
- tp_client_factory_get_dbus_daemon (priv->client_factory);
- g_object_ref (priv->dbus_daemon);
break;
default:
@@ -1563,23 +1559,6 @@ set_property (GObject *obj, guint prop_id,
}
static void
-get_property (GObject *obj, guint prop_id,
- GValue *val, GParamSpec *pspec)
-{
- McdAccountManagerPrivate *priv = MCD_ACCOUNT_MANAGER_PRIV (obj);
-
- switch (prop_id)
- {
- case PROP_DBUS_DAEMON:
- g_value_set_object (val, priv->dbus_daemon);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
_mcd_account_manager_finalize (GObject *object)
{
McdAccountManagerPrivate *priv = MCD_ACCOUNT_MANAGER_PRIV (object);
@@ -1599,7 +1578,6 @@ _mcd_account_manager_dispose (GObject *object)
{
McdAccountManagerPrivate *priv = MCD_ACCOUNT_MANAGER_PRIV (object);
- tp_clear_object (&priv->dbus_daemon);
tp_clear_object (&priv->client_factory);
tp_clear_object (&priv->minotaur);
@@ -1615,16 +1593,9 @@ mcd_account_manager_class_init (McdAccountManagerClass *klass)
object_class->dispose = _mcd_account_manager_dispose;
object_class->finalize = _mcd_account_manager_finalize;
object_class->set_property = set_property;
- object_class->get_property = get_property;
object_class->constructed = _mcd_account_manager_constructed;
g_object_class_install_property
- (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
- TP_TYPE_DBUS_DAEMON,
- G_PARAM_READABLE));
-
- g_object_class_install_property
(object_class, PROP_CLIENT_FACTORY,
g_param_spec_object ("client-factory",
"Client factory",
@@ -1699,20 +1670,6 @@ mcd_account_manager_new (TpClientFactory *client_factory)
return MCD_ACCOUNT_MANAGER (obj);
}
-/**
- * mcd_account_manager_get_dbus_daemon:
- * @account_manager: the #McdAccountManager.
- *
- * Returns: the #TpDBusDaemon.
- */
-TpDBusDaemon *
-mcd_account_manager_get_dbus_daemon (McdAccountManager *account_manager)
-{
- g_return_val_if_fail (MCD_IS_ACCOUNT_MANAGER (account_manager), NULL);
-
- return account_manager->priv->dbus_daemon;
-}
-
McdConnectivityMonitor *
mcd_account_manager_get_connectivity_monitor (McdAccountManager *self)
{
@@ -1803,3 +1760,8 @@ mcd_account_manager_get_storage (McdAccountManager *account_manager)
return account_manager->priv->storage;
}
+TpClientFactory *
+mcd_account_manager_get_factory (McdAccountManager *account_manager)
+{
+ return account_manager->priv->client_factory;
+}
diff --git a/src/mcd-account-manager.h b/src/mcd-account-manager.h
index 847fef5f..7438191c 100644
--- a/src/mcd-account-manager.h
+++ b/src/mcd-account-manager.h
@@ -63,9 +63,6 @@ GType mcd_account_manager_get_type (void);
McdAccountManager *mcd_account_manager_new (
TpClientFactory *client_factory);
-TpDBusDaemon *mcd_account_manager_get_dbus_daemon
- (McdAccountManager *account_manager);
-
McdAccount *mcd_account_manager_lookup_account (McdAccountManager *account_manager,
const gchar *name);
McdAccount *mcd_account_manager_lookup_account_by_path (McdAccountManager *account_manager,
@@ -76,6 +73,8 @@ McdStorage *mcd_account_manager_get_storage (McdAccountManager *manager);
McdConnectivityMonitor *mcd_account_manager_get_connectivity_monitor (
McdAccountManager *self);
+TpClientFactory *mcd_account_manager_get_factory (McdAccountManager *self);
+
G_END_DECLS
#endif
diff --git a/src/mcd-account.c b/src/mcd-account.c
index 6716e108..8644be25 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -106,7 +106,7 @@ struct _McdAccountPrivate
McdManager *manager;
McdStorage *storage;
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
McdConnectivityMonitor *connectivity;
McdAccountConnectionContext *connection_context;
@@ -170,7 +170,7 @@ struct _McdAccountPrivate
enum
{
PROP_0,
- PROP_DBUS_DAEMON,
+ PROP_FACTORY,
PROP_CONNECTIVITY_MONITOR,
PROP_STORAGE,
PROP_STORAGE_PLUGIN,
@@ -2733,8 +2733,6 @@ register_dbus_service (McdAccount *self,
const GError *error,
gpointer unused G_GNUC_UNUSED)
{
- TpDBusDaemon *dbus_daemon;
-
if (error != NULL)
{
/* due to some tangled error handling, the McdAccount might already
@@ -2752,11 +2750,9 @@ register_dbus_service (McdAccount *self,
g_assert (self->priv->storage != NULL);
g_assert (self->priv->object_path != NULL);
- dbus_daemon = self->priv->dbus_daemon;
- g_return_if_fail (dbus_daemon != NULL);
-
- tp_dbus_daemon_register_object (dbus_daemon, self->priv->object_path,
- self);
+ tp_dbus_connection_register_object (
+ tp_client_factory_get_dbus_connection (self->priv->factory),
+ self->priv->object_path, self);
}
/*
@@ -3114,9 +3110,9 @@ set_property (GObject *obj, guint prop_id,
priv->storage_plugin = g_value_dup_object (val);
break;
- case PROP_DBUS_DAEMON:
- g_assert (priv->dbus_daemon == NULL);
- priv->dbus_daemon = g_value_dup_object (val);
+ case PROP_FACTORY:
+ g_assert (priv->factory == NULL);
+ priv->factory = g_value_dup_object (val);
break;
case PROP_CONNECTIVITY_MONITOR:
@@ -3143,8 +3139,8 @@ get_property (GObject *obj, guint prop_id,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_value_set_object (val, priv->dbus_daemon);
+ case PROP_FACTORY:
+ g_value_set_object (val, priv->factory);
break;
case PROP_CONNECTIVITY_MONITOR:
@@ -3229,7 +3225,7 @@ _mcd_account_dispose (GObject *object)
tp_clear_object (&priv->manager);
tp_clear_object (&priv->storage_plugin);
tp_clear_object (&priv->storage);
- tp_clear_object (&priv->dbus_daemon);
+ tp_clear_object (&priv->factory);
tp_clear_object (&priv->self_contact);
tp_clear_object (&priv->connectivity);
@@ -3352,9 +3348,9 @@ mcd_account_class_init (McdAccountClass * klass)
klass->check_request = _mcd_account_check_request_real;
g_object_class_install_property
- (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
- TP_TYPE_DBUS_DAEMON,
+ (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property
@@ -3455,12 +3451,13 @@ mcd_account_new (McdAccountManager *account_manager,
{
gpointer *obj;
McdStorage *storage = mcd_account_manager_get_storage (account_manager);
- TpDBusDaemon *dbus = mcd_account_manager_get_dbus_daemon (account_manager);
+ TpClientFactory *factory = mcd_account_manager_get_factory (
+ account_manager);
obj = g_object_new (MCD_TYPE_ACCOUNT,
"storage", storage,
"storage-plugin", storage_plugin,
- "dbus-daemon", dbus,
+ "factory", factory,
"connectivity-monitor", connectivity,
"name", name,
NULL);
diff --git a/src/mcd-client-priv.h b/src/mcd-client-priv.h
index 8e9bbc78..f8a68ff1 100644
--- a/src/mcd-client-priv.h
+++ b/src/mcd-client-priv.h
@@ -70,7 +70,7 @@ G_GNUC_INTERNAL GType _mcd_client_proxy_get_type (void);
McdClientProxyClass))
G_GNUC_INTERNAL McdClientProxy *_mcd_client_proxy_new (
- TpDBusDaemon *dbus_daemon,
+ TpClientFactory *factory,
const gchar *well_known_name,
const gchar *unique_name_if_known,
gboolean activatable);
diff --git a/src/mcd-client.c b/src/mcd-client.c
index 1cc006fa..ff3ea1e4 100644
--- a/src/mcd-client.c
+++ b/src/mcd-client.c
@@ -1215,7 +1215,7 @@ _mcd_client_check_valid_name (const gchar *name_suffix,
}
McdClientProxy *
-_mcd_client_proxy_new (TpDBusDaemon *dbus_daemon,
+_mcd_client_proxy_new (TpClientFactory *factory,
const gchar *well_known_name,
const gchar *unique_name_if_known,
gboolean activatable)
@@ -1239,7 +1239,7 @@ _mcd_client_proxy_new (TpDBusDaemon *dbus_daemon,
g_assert (tp_dbus_check_valid_object_path (object_path, NULL));
self = g_object_new (MCD_TYPE_CLIENT_PROXY,
- "dbus-daemon", dbus_daemon,
+ "factory", factory,
"object-path", object_path,
"bus-name", well_known_name,
"unique-name", unique_name_if_known,
diff --git a/src/mcd-dispatch-operation.c b/src/mcd-dispatch-operation.c
index afe4cda3..db74e5dc 100644
--- a/src/mcd-dispatch-operation.c
+++ b/src/mcd-dispatch-operation.c
@@ -1107,15 +1107,16 @@ mcd_dispatch_operation_constructor (GType type, guint n_params,
* don't run) */
if (priv->needs_approval)
{
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
g_object_get (priv->client_registry,
- "dbus-daemon", &dbus_daemon,
+ "factory", &factory,
NULL);
- tp_dbus_daemon_register_object (dbus_daemon, priv->object_path,
+ tp_dbus_connection_register_object (
+ tp_client_factory_get_dbus_connection (factory), priv->object_path,
object);
- g_object_unref (dbus_daemon);
+ g_object_unref (factory);
}
priv->plugin_api = _mcd_plugin_dispatch_operation_new (operation);
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 58aef9dc..92592411 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -112,7 +112,7 @@ struct _McdDispatcherPrivate
/* Channel dispatch operations */
GList *operations;
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
/* hash table containing clients
* char *bus_name -> McdClientProxy */
@@ -144,7 +144,7 @@ struct cancel_call_data
enum
{
PROP_0,
- PROP_DBUS_DAEMON,
+ PROP_FACTORY,
PROP_MCD_MASTER,
PROP_INTERFACES,
PROP_SUPPORTS_REQUEST_HINTS,
@@ -331,9 +331,9 @@ _mcd_dispatcher_set_property (GObject * obj, guint prop_id,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- tp_clear_object (&priv->dbus_daemon);
- priv->dbus_daemon = TP_DBUS_DAEMON (g_value_dup_object (val));
+ case PROP_FACTORY:
+ tp_clear_object (&priv->factory);
+ priv->factory = TP_CLIENT_FACTORY (g_value_dup_object (val));
break;
case PROP_MCD_MASTER:
master = g_value_get_object (val);
@@ -366,8 +366,8 @@ _mcd_dispatcher_get_property (GObject * obj, guint prop_id,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_value_set_object (val, priv->dbus_daemon);
+ case PROP_FACTORY:
+ g_value_set_object (val, priv->factory);
break;
case PROP_MCD_MASTER:
@@ -739,7 +739,7 @@ _mcd_dispatcher_dispose (GObject * object)
tp_clear_pointer (&priv->connections, g_hash_table_unref);
tp_clear_object (&priv->master);
- tp_clear_object (&priv->dbus_daemon);
+ tp_clear_object (&priv->factory);
G_OBJECT_CLASS (mcd_dispatcher_parent_class)->dispose (object);
}
@@ -783,21 +783,22 @@ mcd_dispatcher_constructed (GObject *object)
McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (object);
GError *error = NULL;
- priv->handler_map = _mcd_handler_map_new (priv->dbus_daemon);
+ priv->handler_map = _mcd_handler_map_new (priv->factory);
- priv->clients = _mcd_client_registry_new (priv->dbus_daemon);
+ priv->clients = _mcd_client_registry_new (priv->factory);
g_signal_connect (priv->clients, "client-added",
G_CALLBACK (mcd_dispatcher_client_added_cb), object);
g_signal_connect (priv->clients, "ready",
G_CALLBACK (mcd_dispatcher_client_registry_ready_cb),
object);
- tp_dbus_daemon_register_object (priv->dbus_daemon,
+ tp_dbus_connection_register_object (
+ tp_client_factory_get_dbus_connection (priv->factory),
TP_CHANNEL_DISPATCHER_OBJECT_PATH, object);
- if (!tp_dbus_daemon_request_name (priv->dbus_daemon,
- TP_CHANNEL_DISPATCHER_BUS_NAME,
- TRUE /* idempotent */, &error))
+ if (!tp_dbus_connection_request_name (
+ tp_client_factory_get_dbus_connection (priv->factory),
+ TP_CHANNEL_DISPATCHER_BUS_NAME, TRUE /* idempotent */, &error))
{
/* FIXME: put in proper error handling when MC gains the ability to
* be the AM or the CD but not both */
@@ -843,9 +844,9 @@ mcd_dispatcher_class_init (McdDispatcherClass * klass)
/* Properties */
g_object_class_install_property
- (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
- TP_TYPE_DBUS_DAEMON,
+ (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property
(object_class, PROP_MCD_MASTER,
@@ -890,11 +891,11 @@ mcd_dispatcher_init (McdDispatcher * dispatcher)
}
McdDispatcher *
-mcd_dispatcher_new (TpDBusDaemon *dbus_daemon, McdMaster *master)
+mcd_dispatcher_new (TpClientFactory *factory, McdMaster *master)
{
McdDispatcher *obj;
obj = MCD_DISPATCHER (g_object_new (MCD_TYPE_DISPATCHER,
- "dbus-daemon", dbus_daemon,
+ "factory", factory,
"mcd-master", master,
NULL));
return obj;
diff --git a/src/mcd-dispatcher.h b/src/mcd-dispatcher.h
index 461254d5..fcb33c92 100644
--- a/src/mcd-dispatcher.h
+++ b/src/mcd-dispatcher.h
@@ -62,7 +62,7 @@ struct _McdDispatcherClass
GType mcd_dispatcher_get_type (void);
-McdDispatcher *mcd_dispatcher_new (TpDBusDaemon *dbus_daemon,
+McdDispatcher *mcd_dispatcher_new (TpClientFactory *factory,
McdMaster * master);
G_END_DECLS
diff --git a/src/mcd-handler-map-priv.h b/src/mcd-handler-map-priv.h
index cc7109f7..6389317a 100644
--- a/src/mcd-handler-map-priv.h
+++ b/src/mcd-handler-map-priv.h
@@ -63,7 +63,7 @@ struct _McdHandlerMapClass
GObjectClass parent_class;
};
-McdHandlerMap *_mcd_handler_map_new (TpDBusDaemon *dbus_daemon);
+McdHandlerMap *_mcd_handler_map_new (TpClientFactory *factory);
const gchar *_mcd_handler_map_get_handler (McdHandlerMap *self,
const gchar *channel_path,
diff --git a/src/mcd-handler-map.c b/src/mcd-handler-map.c
index 2487d10d..e88582cb 100644
--- a/src/mcd-handler-map.c
+++ b/src/mcd-handler-map.c
@@ -40,7 +40,7 @@ typedef struct {
struct _McdHandlerMapPrivate
{
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
/* The handler for each channel currently being handled
* owned gchar *object_path => owned gchar *unique_name */
GHashTable *channel_processes;
@@ -57,7 +57,7 @@ struct _McdHandlerMapPrivate
enum {
PROP_0,
- PROP_DBUS_DAEMON
+ PROP_FACTORY
};
static void
@@ -109,8 +109,8 @@ _mcd_handler_map_get_property (GObject *object,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_value_set_object (value, self->priv->dbus_daemon);
+ case PROP_FACTORY:
+ g_value_set_object (value, self->priv->factory);
break;
default:
@@ -128,10 +128,10 @@ _mcd_handler_map_set_property (GObject *object,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_assert (self->priv->dbus_daemon == NULL); /* construct-only */
- self->priv->dbus_daemon =
- TP_DBUS_DAEMON (g_value_dup_object (value));
+ case PROP_FACTORY:
+ g_assert (self->priv->factory == NULL); /* construct-only */
+ self->priv->factory =
+ TP_CLIENT_FACTORY (g_value_dup_object (value));
break;
default:
@@ -151,7 +151,7 @@ _mcd_handler_map_dispose (GObject *object)
tp_clear_pointer (&self->priv->handled_channels, g_hash_table_unref);
tp_clear_pointer (&self->priv->handler_processes, g_hash_table_unref);
- tp_clear_object (&self->priv->dbus_daemon);
+ tp_clear_object (&self->priv->factory);
G_OBJECT_CLASS (_mcd_handler_map_parent_class)->dispose (object);
}
@@ -179,18 +179,18 @@ _mcd_handler_map_class_init (McdHandlerMapClass *klass)
object_class->set_property = _mcd_handler_map_set_property;
object_class->finalize = _mcd_handler_map_finalize;
- g_object_class_install_property (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "D-Bus daemon", "D-Bus daemon",
- TP_TYPE_DBUS_DAEMON,
+ g_object_class_install_property (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
}
McdHandlerMap *
-_mcd_handler_map_new (TpDBusDaemon *dbus_daemon)
+_mcd_handler_map_new (TpClientFactory *factory)
{
return g_object_new (MCD_TYPE_HANDLER_MAP,
- "dbus-daemon", dbus_daemon,
+ "factory", factory,
NULL);
}
@@ -281,7 +281,7 @@ _mcd_handler_map_set_path_handled (McdHandlerMap *self,
g_hash_table_insert (self->priv->handler_processes,
g_strdup (unique_name), hp);
hp->watch = g_bus_watch_name_on_connection (
- tp_proxy_get_dbus_connection (self->priv->dbus_daemon),
+ tp_client_factory_get_dbus_connection (self->priv->factory),
unique_name, G_BUS_NAME_WATCHER_FLAGS_NONE,
NULL, mcd_handler_map_name_vanished_cb, self, NULL);
}
@@ -471,6 +471,7 @@ _mcd_handler_map_set_channel_handled_internally (McdHandlerMap *self,
const gchar *account_path)
{
_mcd_handler_map_set_channel_handled (self, channel,
- tp_dbus_daemon_get_unique_name (self->priv->dbus_daemon),
+ g_dbus_connection_get_unique_name (
+ tp_client_factory_get_dbus_connection (self->priv->factory)),
NULL, account_path);
}
diff --git a/src/mcd-manager.c b/src/mcd-manager.c
index 49d8008f..7319801b 100644
--- a/src/mcd-manager.c
+++ b/src/mcd-manager.c
@@ -57,7 +57,6 @@ G_DEFINE_TYPE (McdManager, mcd_manager, MCD_TYPE_OPERATION);
struct _McdManagerPrivate
{
gchar *name;
- TpDBusDaemon *dbus_daemon;
TpClientFactory *client_factory;
McdDispatcher *dispatcher;
@@ -124,7 +123,6 @@ _mcd_manager_dispose (GObject * object)
tp_clear_object (&priv->dispatcher);
tp_clear_object (&priv->tp_conn_mgr);
tp_clear_object (&priv->client_factory);
- tp_clear_object (&priv->dbus_daemon);
tp_clear_object (&priv->slacker);
G_OBJECT_CLASS (mcd_manager_parent_class)->dispose (object);
@@ -166,9 +164,9 @@ mcd_manager_setup (McdManager *manager)
priv->slacker = mcd_slacker_new ();
- priv->tp_conn_mgr =
- tp_connection_manager_new (priv->dbus_daemon, priv->name,
- NULL, &error);
+ priv->tp_conn_mgr = tp_client_factory_ensure_connection_manager (
+ priv->client_factory, priv->name, NULL, &error);
+
if (error)
{
g_warning ("%s, cannot create manager %s: %s", G_STRFUNC,
@@ -235,8 +233,6 @@ _mcd_manager_set_property (GObject * obj, guint prop_id,
case PROP_CLIENT_FACTORY:
g_assert (priv->client_factory == NULL); /* construct-only */
priv->client_factory = g_value_dup_object (val);
- priv->dbus_daemon = g_object_ref (
- tp_client_factory_get_dbus_daemon (priv->client_factory));
break;
default:
diff --git a/src/mcd-master.c b/src/mcd-master.c
index 2dbfe611..24b03df3 100644
--- a/src/mcd-master.c
+++ b/src/mcd-master.c
@@ -88,7 +88,6 @@ struct _McdMasterPrivate
McdDispatcher *dispatcher;
/* We create these for our member objects */
- TpDBusDaemon *dbus_daemon;
TpClientFactory *client_factory;
/* Current pending sleep timer */
@@ -104,7 +103,7 @@ enum
PROP_0,
PROP_PRESENCE_FRAME,
PROP_DBUS_CONNECTION,
- PROP_DBUS_DAEMON,
+ PROP_FACTORY,
PROP_DISPATCHER,
PROP_ACCOUNT_MANAGER,
};
@@ -126,12 +125,12 @@ _mcd_master_get_property (GObject * obj, guint prop_id,
case PROP_DISPATCHER:
g_value_set_object (val, priv->dispatcher);
break;
- case PROP_DBUS_DAEMON:
- g_value_set_object (val, priv->dbus_daemon);
+ case PROP_FACTORY:
+ g_value_set_object (val, priv->client_factory);
break;
case PROP_DBUS_CONNECTION:
- g_value_set_pointer (val, tp_proxy_get_dbus_connection (
- TP_PROXY (priv->dbus_daemon)));
+ g_value_set_pointer (val, tp_client_factory_get_dbus_connection (
+ priv->client_factory));
break;
case PROP_ACCOUNT_MANAGER:
g_value_set_object (val, priv->account_manager);
@@ -150,9 +149,9 @@ _mcd_master_set_property (GObject *obj, guint prop_id,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- g_assert (priv->dbus_daemon == NULL);
- priv->dbus_daemon = g_value_dup_object (val);
+ case PROP_FACTORY:
+ g_assert (priv->client_factory == NULL);
+ priv->client_factory = g_value_dup_object (val);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -172,7 +171,6 @@ _mcd_master_dispose (GObject * object)
priv->is_disposed = TRUE;
tp_clear_object (&priv->account_manager);
- tp_clear_object (&priv->dbus_daemon);
tp_clear_object (&priv->dispatcher);
tp_clear_object (&priv->client_factory);
@@ -202,10 +200,9 @@ mcd_master_constructor (GType type, guint n_params,
umask (0077);
#endif
- priv->client_factory = tp_client_factory_new (priv->dbus_daemon);
priv->account_manager = mcd_account_manager_new (priv->client_factory);
- priv->dispatcher = mcd_dispatcher_new (priv->dbus_daemon, master);
+ priv->dispatcher = mcd_dispatcher_new (priv->client_factory, master);
g_assert (MCD_IS_DISPATCHER (priv->dispatcher));
_mcd_account_manager_setup (priv->account_manager);
@@ -234,9 +231,9 @@ mcd_master_class_init (McdMasterClass * klass)
G_PARAM_READABLE));
g_object_class_install_property
- (object_class, PROP_DBUS_DAEMON,
- g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
- TP_TYPE_DBUS_DAEMON,
+ (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property
@@ -320,16 +317,16 @@ _mcd_master_lookup_manager (McdMaster *master,
}
/**
- * mcd_master_get_dbus_daemon:
+ * mcd_master_get_factory:
* @master: the #McdMaster.
*
- * Returns: the #TpDBusDaemon.
+ * Returns: the #TpClientFactory.
*/
-TpDBusDaemon *
-mcd_master_get_dbus_daemon (McdMaster *master)
+TpClientFactory *
+mcd_master_get_factory (McdMaster *master)
{
g_return_val_if_fail (MCD_IS_MASTER (master), NULL);
- return master->priv->dbus_daemon;
+ return master->priv->client_factory;
}
/* Milliseconds to wait for Connectivity coming back up before exiting MC */
diff --git a/src/mcd-master.h b/src/mcd-master.h
index 185b7604..f727ca9b 100644
--- a/src/mcd-master.h
+++ b/src/mcd-master.h
@@ -58,7 +58,7 @@ struct _McdMasterClass
GType mcd_master_get_type (void);
McdMaster *mcd_master_get_default (void);
-TpDBusDaemon *mcd_master_get_dbus_daemon (McdMaster *master);
+TpClientFactory *mcd_master_get_factory (McdMaster *master);
void mcd_master_shutdown (McdMaster *self, const gchar *reason);
G_END_DECLS
diff --git a/src/mcd-service.c b/src/mcd-service.c
index 3e68861b..e761fc9b 100644
--- a/src/mcd-service.c
+++ b/src/mcd-service.c
@@ -82,9 +82,10 @@ mcd_service_obtain_bus_name (McdService * obj)
DEBUG ("Requesting MC dbus service");
- if (!tp_dbus_daemon_request_name (mcd_master_get_dbus_daemon (master),
- MISSION_CONTROL_DBUS_SERVICE,
- TRUE /* idempotent */, &error))
+ if (!tp_dbus_connection_request_name (
+ tp_client_factory_get_dbus_connection (
+ mcd_master_get_factory (master)),
+ MISSION_CONTROL_DBUS_SERVICE, TRUE /* idempotent */, &error))
{
g_warning ("Failed registering '%s' service: %s",
MISSION_CONTROL_DBUS_SERVICE, error->message);
@@ -170,21 +171,21 @@ McdService *
mcd_service_new (void)
{
McdService *obj;
- TpDBusDaemon *dbus_daemon;
GError *error = NULL;
+ TpClientFactory *client_factory;
/* Initialize DBus connection */
- dbus_daemon = tp_dbus_daemon_dup (&error);
- if (dbus_daemon == NULL)
+ client_factory = tp_client_factory_dup (&error);
+ if (client_factory == NULL)
{
g_printerr ("Failed to open connection to bus: %s", error->message);
g_error_free (error);
return NULL;
}
obj = g_object_new (MCD_TYPE_SERVICE,
- "dbus-daemon", dbus_daemon,
+ "factory", client_factory,
NULL);
- g_object_unref (dbus_daemon);
+ g_object_unref (client_factory);
return obj;
}
diff --git a/src/request.c b/src/request.c
index 02d7198b..f022fac1 100644
--- a/src/request.c
+++ b/src/request.c
@@ -57,7 +57,7 @@ struct _McdRequest {
gboolean use_existing;
McdClientRegistry *clients;
- TpDBusDaemon *dbus_daemon;
+ TpClientFactory *factory;
McdAccount *account;
GHashTable *properties;
gint64 user_action_time;
@@ -132,8 +132,10 @@ _mcd_request_constructed (GObject *object)
g_return_if_fail (self->account != NULL);
g_return_if_fail (self->clients != NULL);
- self->dbus_daemon = _mcd_client_registry_get_dbus_daemon (self->clients);
- tp_dbus_daemon_register_object (self->dbus_daemon, self->object_path, self);
+ self->factory = _mcd_client_registry_get_factory (self->clients);
+ tp_dbus_connection_register_object (
+ tp_client_factory_get_dbus_connection (self->factory),
+ self->object_path, self);
}
static void
@@ -798,7 +800,8 @@ static void
_mcd_request_clean_up (McdRequest *self)
{
tp_clear_object (&self->predicted_handler);
- tp_dbus_daemon_unregister_object (self->dbus_daemon, self);
+ tp_dbus_connection_unregister_object (
+ tp_client_factory_get_dbus_connection (self->factory), self);
}
void
diff --git a/tests/twisted/mc-debug-server.c b/tests/twisted/mc-debug-server.c
index 8497c02c..644dd400 100644
--- a/tests/twisted/mc-debug-server.c
+++ b/tests/twisted/mc-debug-server.c
@@ -37,7 +37,6 @@
#include "mcd-service.h"
-TpDBusDaemon *bus_daemon = NULL;
static McdService *mcd = NULL;
static void
@@ -216,10 +215,6 @@ main (int argc, char **argv)
g_signal_connect (gdbus_system, "closed", G_CALLBACK (bus_closed),
"system");
- bus_daemon = tp_dbus_daemon_dup (&error);
- g_assert_no_error (error);
- g_assert (bus_daemon != NULL);
-
test_interface_id = g_dbus_connection_register_object (gdbus,
TP_ACCOUNT_MANAGER_OBJECT_PATH, &test_interface,
&test_interface_vtable, NULL, NULL, &error);
@@ -259,7 +254,6 @@ main (int argc, char **argv)
tp_clear_object (&gdbus);
tp_clear_object (&gdbus_system);
- tp_clear_object (&bus_daemon);
g_message ("Exiting with %d", ret);
tp_clear_object (&debug_sender);
diff --git a/tests/twisted/mcp-plugin.c b/tests/twisted/mcp-plugin.c
index 99430405..d93aa11f 100644
--- a/tests/twisted/mcp-plugin.c
+++ b/tests/twisted/mcp-plugin.c
@@ -182,15 +182,18 @@ test_permission_plugin_check_cdo (McpDispatchOperationPolicy *policy,
TP_IFACE_CHANNEL ".TargetID"),
"policy@example.net"))
{
- TpDBusDaemon *dbus_daemon = tp_dbus_daemon_dup (NULL);
+ GError *error = NULL;
+ GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
PermissionContext *ctx;
+ g_assert_no_error (error);
+
ctx = g_slice_new0 (PermissionContext);
ctx->dispatch_operation = g_object_ref (dispatch_operation);
ctx->dispatch_operation_delay = mcp_dispatch_operation_start_delay (
dispatch_operation);
- g_dbus_connection_call (tp_proxy_get_dbus_connection (dbus_daemon),
+ g_dbus_connection_call (bus,
"com.example.Policy", "/com/example/Policy", "com.example.Policy",
"RequestPermission",
/* in a real policy-mechanism you'd give some details, like the
@@ -200,6 +203,7 @@ test_permission_plugin_check_cdo (McpDispatchOperationPolicy *policy,
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, permission_cb, ctx);
DEBUG ("Waiting for permission");
+ g_object_unref (bus);
}
g_hash_table_unref (properties);
@@ -233,7 +237,7 @@ handler_is_suitable_async (McpDispatchOperationPolicy *self,
"policy@example.net"))
{
GError *error = NULL;
- TpDBusDaemon *dbus_daemon = tp_dbus_daemon_dup (&error);
+ GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
PermissionContext *ctx;
g_assert_no_error (error);
@@ -244,7 +248,7 @@ handler_is_suitable_async (McpDispatchOperationPolicy *self,
/* take ownership */
simple = NULL;
- g_dbus_connection_call (tp_proxy_get_dbus_connection (dbus_daemon),
+ g_dbus_connection_call (bus,
"com.example.Policy", "/com/example/Policy", "com.example.Policy",
"CheckHandler",
/* in a real policy-mechanism you'd give some details, like the
@@ -252,6 +256,7 @@ handler_is_suitable_async (McpDispatchOperationPolicy *self,
* handler */
NULL,
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, permission_cb, ctx);
+ g_object_unref (bus);
}
finally:
@@ -286,16 +291,19 @@ test_permission_plugin_check_request (McpRequestPolicy *policy,
0, g_quark_from_static_string ("com.example.QuestionableChannel"),
NULL, NULL))
{
- TpDBusDaemon *dbus_daemon = tp_dbus_daemon_dup (NULL);
+ GError *error = NULL;
+ GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
PermissionContext *ctx;
+ g_assert_no_error (error);
+
DEBUG ("Questionable channel detected, asking for permission");
ctx = g_slice_new0 (PermissionContext);
ctx->request = g_object_ref (request);
ctx->request_delay = mcp_request_start_delay (request);
- g_dbus_connection_call (tp_proxy_get_dbus_connection (dbus_daemon),
+ g_dbus_connection_call (bus,
"com.example.Policy", "/com/example/Policy", "com.example.Policy",
"RequestRequest",
/* in a real policy-mechanism you'd give some details, like the
@@ -303,6 +311,7 @@ test_permission_plugin_check_request (McpRequestPolicy *policy,
* regression test so we don't bother */
NULL,
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, permission_cb, ctx);
+ g_object_unref (bus);
}
g_hash_table_unref (properties);
diff --git a/util/mc-tool.c b/util/mc-tool.c
index f642fe97..9fa3faea 100644
--- a/util/mc-tool.c
+++ b/util/mc-tool.c
@@ -1471,7 +1471,6 @@ main (int argc, char **argv)
{
TpAccountManager *am = NULL;
TpAccount *a = NULL;
- TpDBusDaemon *dbus = NULL;
TpClientFactory *client_factory = NULL;
GError *error = NULL;
const GQuark features[] = { TP_ACCOUNT_FEATURE_CORE,
@@ -1485,7 +1484,8 @@ main (int argc, char **argv)
command.common.ret = 1;
- dbus = tp_dbus_daemon_dup (&error);
+ client_factory = tp_client_factory_dup (&error);
+
if (error != NULL)
{
fprintf (stderr, "%s %s: Failed to connect to D-Bus: %s\n",
@@ -1493,17 +1493,10 @@ main (int argc, char **argv)
goto out;
}
- client_factory = tp_client_factory_new (dbus);
-
if (command.common.account == NULL)
{
- TpClientFactory *factory;
-
- am = tp_account_manager_new (dbus);
- factory = tp_proxy_get_factory (am);
-
- tp_client_factory_add_account_features (factory, features);
-
+ tp_client_factory_add_account_features (client_factory, features);
+ am = tp_client_factory_ensure_account_manager (client_factory);
tp_proxy_prepare_async (am, NULL, manager_ready, NULL);
}
else
@@ -1528,7 +1521,6 @@ main (int argc, char **argv)
out:
g_clear_error (&error);
tp_clear_object (&client_factory);
- tp_clear_object (&dbus);
tp_clear_object (&am);
tp_clear_object (&a);
tp_clear_pointer (&main_loop, g_main_loop_unref);