[telepathy-gabble/master] gabble_muc_factory_foreach_channel: include tube channels as well

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Wed Apr 15 09:28:42 PDT 2009


---
 src/muc-factory.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/src/muc-factory.c b/src/muc-factory.c
index 47f1144..e7b581b 100644
--- a/src/muc-factory.c
+++ b/src/muc-factory.c
@@ -1252,12 +1252,27 @@ gabble_muc_factory_foreach_channel (TpChannelManager *manager,
   GabbleMucFactory *fac = GABBLE_MUC_FACTORY (manager);
   GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
   struct _ForeachData data;
+  GHashTableIter iter;
+  gpointer value;
 
   data.user_data = user_data;
   data.foreach = foreach;
 
   g_hash_table_foreach (priv->text_channels, _foreach_slave, &data);
-  g_hash_table_foreach (priv->tubes_channels, _foreach_slave, &data);
+
+  g_hash_table_iter_init (&iter, priv->tubes_channels);
+  while (g_hash_table_iter_next (&iter, NULL, &value))
+  {
+    TpExportableChannel *chan = TP_EXPORTABLE_CHANNEL (value);
+
+    /* Add channels of type Channel.Type.Tubes */
+    foreach (chan, user_data);
+
+    /* Add channels of type Channel.Type.{Stream|DBus}Tube which live in the
+     * SalutTubesChannel object */
+    gabble_tubes_channel_foreach (GABBLE_TUBES_CHANNEL (chan), foreach,
+        user_data);
+  }
 }
 
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list