[Telepathy-commits] [telepathy-mission-control/master] Dispatcher: call tp_proxy_add_interface_by_id() for client, whatever the method to get the interfaces (.client file or D-Bus methods)

Alban Crequy alban.crequy at collabora.co.uk
Wed Nov 19 07:01:58 PST 2008


---
 src/mcd-dispatcher.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 0eacb1c..38b7bbb 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -1840,6 +1840,21 @@ get_handler_channel_filter_cb (TpProxy *proxy,
 }
 
 static void
+client_add_interface_by_id (McdClient *client)
+{
+    tp_proxy_add_interface_by_id (client->proxy, MC_IFACE_QUARK_CLIENT);
+    if (client->interfaces & MCD_CLIENT_APPROVER)
+        tp_proxy_add_interface_by_id (client->proxy,
+                                      MC_IFACE_QUARK_CLIENT_APPROVER);
+    if (client->interfaces & MCD_CLIENT_HANDLER)
+        tp_proxy_add_interface_by_id (client->proxy,
+                                      MC_IFACE_QUARK_CLIENT_HANDLER);
+    if (client->interfaces & MCD_CLIENT_OBSERVER)
+        tp_proxy_add_interface_by_id (client->proxy,
+                                      MC_IFACE_QUARK_CLIENT_OBSERVER);
+}
+
+static void
 get_interfaces_cb (TpProxy *proxy,
                    const GValue *out_Value,
                    const GError *error,
@@ -1864,27 +1879,21 @@ get_interfaces_cb (TpProxy *proxy,
         arr++;
       }
 
-    tp_proxy_add_interface_by_id (client->proxy, MC_IFACE_QUARK_CLIENT);
+    client_add_interface_by_id (client);
     if (client->interfaces & MCD_CLIENT_APPROVER)
       {
-        tp_proxy_add_interface_by_id (client->proxy,
-                                      MC_IFACE_QUARK_CLIENT_APPROVER);
         tp_cli_dbus_properties_call_get (client->proxy, -1,
             MCD_IFACE_CLIENT_APPROVER ".DRAFT", "ApproverChannelFilter",
             get_approver_channel_filter_cb, client, NULL, G_OBJECT (self));
       }
     if (client->interfaces & MCD_CLIENT_HANDLER)
       {
-        tp_proxy_add_interface_by_id (client->proxy,
-                                      MC_IFACE_QUARK_CLIENT_HANDLER);
         tp_cli_dbus_properties_call_get (client->proxy, -1,
             MCD_IFACE_CLIENT_HANDLER ".DRAFT", "HandlerChannelFilter",
             get_handler_channel_filter_cb, client, NULL, G_OBJECT (self));
       }
     if (client->interfaces & MCD_CLIENT_OBSERVER)
       {
-        tp_proxy_add_interface_by_id (client->proxy,
-                                      MC_IFACE_QUARK_CLIENT_OBSERVER);
         tp_cli_dbus_properties_call_get (client->proxy, -1,
             MCD_IFACE_CLIENT_OBSERVER ".DRAFT", "ObserverChannelFilter",
             get_observer_channel_filter_cb, client, NULL, G_OBJECT (self));
@@ -1973,6 +1982,8 @@ parse_client_file (McdClient *client, GKeyFile *file)
     client->bypass_approver =
         g_key_file_get_boolean (file, MCD_IFACE_CLIENT_HANDLER,
                                 "BypassApprover", NULL);
+
+    client_add_interface_by_id (client);
 }
 
 static McdClient *
-- 
1.5.6.5




More information about the Telepathy-commits mailing list