summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Alfarano <cosimo.alfarano@collabora.co.uk>2010-03-18 12:42:01 +0000
committerCosimo Alfarano <cosimo.alfarano@collabora.co.uk>2010-03-18 15:13:58 +0000
commitadb3042564be24024e0472dbddf830281590c9c6 (patch)
treec376b86f778e16e389c63a65d1257914e9ff93d5
parent7b56b2e57e3c83ecbf461888dcfd62834bf949e4 (diff)
Hooking PendingMessagesRemoved only if TpChannel implements the Messages iface
-rw-r--r--telepathy-logger/channel-text.c27
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