[Telepathy-commits] [telepathy-gabble/master] Fix stream tube capabilities
Alban Crequy
alban.crequy at collabora.co.uk
Fri Dec 5 09:42:28 PST 2008
---
src/private-tubes-factory.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/private-tubes-factory.c b/src/private-tubes-factory.c
index b49f629..1112172 100644
--- a/src/private-tubes-factory.c
+++ b/src/private-tubes-factory.c
@@ -374,10 +374,9 @@ gabble_private_tubes_factory_get_contact_caps (GabbleChannelManager *manager,
GHashTable *fixed_properties;
GValue *channel_type_value;
GValue *target_handle_type_value;
- gchar *text_allowed_properties[] =
+ gchar *tube_allowed_properties[] =
{
TP_IFACE_CHANNEL ".TargetHandle",
- GABBLE_IFACE_CHANNEL_TYPE_STREAM_TUBE ".Service",
NULL
};
GabblePresence *presence;
@@ -389,6 +388,12 @@ gabble_private_tubes_factory_get_contact_caps (GabbleChannelManager *manager,
presence = gabble_presence_cache_get (conn->presence_cache, handle);
+ if (presence == NULL)
+ return;
+
+ if (presence->stream_tube_caps == NULL)
+ return;
+
g_hash_table_iter_init (&tube_caps_iter, presence->stream_tube_caps);
while (g_hash_table_iter_next (&tube_caps_iter, &service, &dummy))
{
@@ -411,7 +416,7 @@ gabble_private_tubes_factory_get_contact_caps (GabbleChannelManager *manager,
g_hash_table_insert (fixed_properties,
TP_IFACE_CHANNEL ".TargetHandleType", target_handle_type_value);
- target_handle_type_value = tp_g_value_slice_new (G_TYPE_UINT);
+ target_handle_type_value = tp_g_value_slice_new (G_TYPE_STRING);
g_value_set_string (target_handle_type_value, service);
g_hash_table_insert (fixed_properties,
GABBLE_IFACE_CHANNEL_TYPE_STREAM_TUBE ".Service",
@@ -420,7 +425,7 @@ gabble_private_tubes_factory_get_contact_caps (GabbleChannelManager *manager,
dbus_g_type_struct_set (&monster,
0, handle,
1, fixed_properties,
- 2, text_allowed_properties,
+ 2, tube_allowed_properties,
G_MAXUINT);
g_hash_table_destroy (fixed_properties);
--
1.5.6.5
More information about the Telepathy-commits
mailing list