diff options
author | Cosimo Alfarano <cosimo.alfarano@collabora.co.uk> | 2010-03-18 12:42:01 +0000 |
---|---|---|
committer | Cosimo Alfarano <cosimo.alfarano@collabora.co.uk> | 2010-03-18 15:13:58 +0000 |
commit | adb3042564be24024e0472dbddf830281590c9c6 (patch) | |
tree | c376b86f778e16e389c63a65d1257914e9ff93d5 | |
parent | 7b56b2e57e3c83ecbf461888dcfd62834bf949e4 (diff) |
Hooking PendingMessagesRemoved only if TpChannel implements the Messages iface
-rw-r--r-- | telepathy-logger/channel-text.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/telepathy-logger/channel-text.c b/telepathy-logger/channel-text.c index d8b189653..704ca0a35 100644 --- a/telepathy-logger/channel-text.c +++ b/telepathy-logger/channel-text.c @@ -633,7 +633,10 @@ got_message_pending_messages_cb (TpProxy *proxy, GError *loc_error = NULL; guint i; - if (!TPL_IS_CHANNEL (proxy)) + if (!TPL_IS_CHANNEL_TEXT (proxy)) + goto out; + + if (!TPL_IS_CHANNEL_TEXT (weak_object)) goto out; if (error != NULL) @@ -937,19 +940,21 @@ pendingproc_connect_signals (TplActionChain *ctx, is_error = TRUE; } - tp_cli_channel_interface_messages_connect_to_pending_messages_removed ( - channel, on_pending_messages_removed_cb, NULL, NULL, - G_OBJECT (tpl_text), &error); - if (error != NULL) + if (tp_proxy_has_interface_by_id (tpl_text, + TP_IFACE_QUARK_CHANNEL_INTERFACE_MESSAGES)) { - PATH_DEBUG (tpl_text, "'PendingMessagesRemoved' signal connect: %s", - error->message); - g_clear_error (&error); - is_error = TRUE; + tp_cli_channel_interface_messages_connect_to_pending_messages_removed ( + channel, on_pending_messages_removed_cb, NULL, NULL, + G_OBJECT (tpl_text), &error); + if (error != NULL) + { + PATH_DEBUG (tpl_text, "'PendingMessagesRemoved' signal connect: %s", + error->message); + g_clear_error (&error); + is_error = TRUE; + } } - /* TODO connect to TpContacts' notify::presence-type */ - if (is_error) tpl_actionchain_terminate (ctx); else |