summaryrefslogtreecommitdiff
path: root/src/im-channel-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/im-channel-factory.c')
-rw-r--r--src/im-channel-factory.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/im-channel-factory.c b/src/im-channel-factory.c
index 31823ce..7508b25 100644
--- a/src/im-channel-factory.c
+++ b/src/im-channel-factory.c
@@ -264,29 +264,24 @@ new_im_channel (HazeImChannelFactory *self,
TpHandle initiator,
gpointer request_token)
{
- TpBaseConnection *conn;
HazeIMChannel *chan;
- char *object_path;
GSList *requests = NULL;
g_assert (HAZE_IS_IM_CHANNEL_FACTORY (self));
- conn = (TpBaseConnection *) self->priv->conn;
-
g_assert (!g_hash_table_lookup (self->priv->channels,
GINT_TO_POINTER (handle)));
- object_path = g_strdup_printf ("%s/ImChannel%u",
- tp_base_connection_get_object_path (conn), handle);
-
chan = g_object_new (HAZE_TYPE_IM_CHANNEL,
"connection", self->priv->conn,
- "object-path", object_path,
"handle", handle,
"initiator-handle", initiator,
+ "requested", (handle != initiator),
NULL);
+ tp_base_channel_register (TP_BASE_CHANNEL (chan));
- DEBUG ("Created IM channel with object path %s", object_path);
+ DEBUG ("Created IM channel with object path %s",
+ tp_base_channel_get_object_path (TP_BASE_CHANNEL (chan)));
g_signal_connect (chan, "closed", G_CALLBACK (im_channel_closed_cb), self);
@@ -301,8 +296,6 @@ new_im_channel (HazeImChannelFactory *self,
TP_EXPORTABLE_CHANNEL (chan), requests);
g_slist_free (requests);
- g_free (object_path);
-
return chan;
}