[telepathy-mission-control/master] _mcd_client_proxy_new: take the whole well-known name, not just the suffix

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Sep 22 06:00:02 PDT 2009


---
 src/mcd-client-priv.h |    2 +-
 src/mcd-client.c      |   16 +++++++++-------
 src/mcd-dispatcher.c  |    3 +--
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/mcd-client-priv.h b/src/mcd-client-priv.h
index 768d915..11c1339 100644
--- a/src/mcd-client-priv.h
+++ b/src/mcd-client-priv.h
@@ -69,7 +69,7 @@ G_GNUC_INTERNAL GType _mcd_client_proxy_get_type (void);
 
 G_GNUC_INTERNAL McdClientProxy *_mcd_client_proxy_new (
     TpDBusDaemon *dbus_daemon, TpHandleRepoIface *string_pool,
-    const gchar *name_suffix, const gchar *unique_name_if_known,
+    const gchar *well_known_name, const gchar *unique_name_if_known,
     gboolean activatable);
 
 G_GNUC_INTERNAL gboolean _mcd_client_proxy_is_ready (McdClientProxy *self);
diff --git a/src/mcd-client.c b/src/mcd-client.c
index c5ba105..b974b7d 100644
--- a/src/mcd-client.c
+++ b/src/mcd-client.c
@@ -422,21 +422,24 @@ _mcd_client_check_valid_name (const gchar *name_suffix,
 McdClientProxy *
 _mcd_client_proxy_new (TpDBusDaemon *dbus_daemon,
                        TpHandleRepoIface *string_pool,
-                       const gchar *name_suffix,
+                       const gchar *well_known_name,
                        const gchar *unique_name_if_known,
                        gboolean activatable)
 {
     McdClientProxy *self;
-    gchar *bus_name, *object_path;
+    const gchar *name_suffix;
+    gchar *object_path;
 
+    g_return_val_if_fail (g_str_has_prefix (well_known_name,
+                                            TP_CLIENT_BUS_NAME_BASE), NULL);
+    name_suffix = well_known_name + MC_CLIENT_BUS_NAME_BASE_LEN;
     g_return_val_if_fail (_mcd_client_check_valid_name (name_suffix, NULL),
                           NULL);
 
-    bus_name = g_strconcat (TP_CLIENT_BUS_NAME_BASE, name_suffix, NULL);
-    object_path = g_strconcat (TP_CLIENT_OBJECT_PATH_BASE, name_suffix, NULL);
+    object_path = g_strconcat ("/", well_known_name, NULL);
     g_strdelimit (object_path, ".", '/');
 
-    g_assert (tp_dbus_check_valid_bus_name (bus_name,
+    g_assert (tp_dbus_check_valid_bus_name (well_known_name,
                                             TP_DBUS_NAME_TYPE_WELL_KNOWN,
                                             NULL));
     g_assert (tp_dbus_check_valid_object_path (object_path, NULL));
@@ -445,13 +448,12 @@ _mcd_client_proxy_new (TpDBusDaemon *dbus_daemon,
                          "dbus-daemon", dbus_daemon,
                          "string-pool", string_pool,
                          "object-path", object_path,
-                         "bus-name", bus_name,
+                         "bus-name", well_known_name,
                          "unique-name", unique_name_if_known,
                          "activatable", activatable,
                          NULL);
 
     g_free (object_path);
-    g_free (bus_name);
 
     return self;
 }
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index a4d38fd..285c2c3 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -2498,8 +2498,7 @@ create_mcd_client (McdDispatcher *self,
 
     client = _mcd_client_proxy_new (
         self->priv->dbus_daemon, self->priv->string_pool,
-        name + MC_CLIENT_BUS_NAME_BASE_LEN,
-        owner, activatable);
+        name, owner, activatable);
 
     DEBUG ("McdClientProxy created for %s", name);
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list