[telepathy-gabble/master] bytestream-factory.c: use node iteration wrappers

Dafydd Harries daf at rhydd.org
Mon Jun 29 06:58:37 PDT 2009


---
 src/bytestream-factory.c |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/src/bytestream-factory.c b/src/bytestream-factory.c
index ec5f486..e2de613 100644
--- a/src/bytestream-factory.c
+++ b/src/bytestream-factory.c
@@ -662,7 +662,8 @@ streaminit_parse_request (LmMessage *message,
                           gboolean *multiple)
 {
   LmMessageNode *iq = message->node;
-  LmMessageNode *feature, *x, *field, *stream_method, *si_multiple;
+  LmMessageNode *feature, *x, *si_multiple;
+  NodeIter i, j;
 
   *stream_init_id = lm_message_node_get_attribute (iq, "id");
 
@@ -709,8 +710,10 @@ streaminit_parse_request (LmMessage *message,
       return FALSE;
     }
 
-  for (field = x->children; field; field = field->next)
+  for (i = node_iter (x); i; i = node_iter_next (i))
     {
+      LmMessageNode *field = node_iter_data (i);
+
       if (tp_strdiff (lm_message_node_get_attribute (field, "var"),
             "stream-method"))
         /* some future field, ignore it */
@@ -726,9 +729,9 @@ streaminit_parse_request (LmMessage *message,
 
       /* Get the stream methods offered */
       *stream_methods = NULL;
-      for (stream_method = field->children; stream_method;
-          stream_method = stream_method->next)
+      for (j = node_iter (field); j; j = node_iter_next (j))
         {
+          LmMessageNode *stream_method = node_iter_data (j);
           LmMessageNode *value;
           const gchar *stream_method_str;
 
@@ -1383,9 +1386,9 @@ handle_socks5_query_iq (GabbleBytestreamFactory *self,
     GABBLE_BYTESTREAM_FACTORY_GET_PRIVATE (self);
   GabbleBytestreamSocks5 *bytestream;
   LmMessageNode *query_node;
-  LmMessageNode *child_node;
   ConstBytestreamIdentifier bsid = { NULL, NULL };
   const gchar *tmp;
+  NodeIter i;
 
   if (lm_message_get_sub_type (msg) != LM_MESSAGE_SUB_TYPE_SET)
     return FALSE;
@@ -1435,13 +1438,12 @@ handle_socks5_query_iq (GabbleBytestreamFactory *self,
       return TRUE;
     }
 
-  child_node = query_node->children;
-  while (child_node)
+  for (i = node_iter (query_node); i; i = node_iter_next (i))
     {
+      LmMessageNode *child_node = node_iter_data (i);
+
       if (!tp_strdiff (child_node->name, "streamhost"))
         gabble_bytestream_socks5_add_streamhost (bytestream, child_node);
-
-      child_node = child_node->next;
     }
 
   gabble_bytestream_socks5_connect_to_streamhost (bytestream, msg);
@@ -1685,9 +1687,10 @@ streaminit_get_multiple_bytestream (GabbleBytestreamFactory *self,
 {
   /* If the other client supports si-multiple we have directly a list of
    * supported methods inside <value/> tags */
-  LmMessageNode *si_multi, *value;
+  LmMessageNode *si_multi;
   const gchar *stream_method;
   GabbleBytestreamMultiple *bytestream = NULL;
+  NodeIter i;
 
   si_multi = lm_message_node_get_child_with_namespace (si, "si-multiple",
       NS_SI_MULTIPLE);
@@ -1698,8 +1701,10 @@ streaminit_get_multiple_bytestream (GabbleBytestreamFactory *self,
       stream_id, NULL, peer_resource, self_jid,
       GABBLE_BYTESTREAM_STATE_INITIATING);
 
-  for (value = si_multi->children; value; value = value->next)
+  for (i = node_iter (si_multi); i; i = node_iter_next (i))
     {
+      LmMessageNode *value = node_iter_data (i);
+
       if (tp_strdiff (value->name, "value"))
         continue;
 
@@ -1726,9 +1731,10 @@ streaminit_get_bytestream (GabbleBytestreamFactory *self,
                            const gchar *peer_resource,
                            const gchar *self_jid)
 {
-  LmMessageNode *feature, *x, *field, *value;
+  LmMessageNode *feature, *x, *value;
   GabbleBytestreamIface *bytestream = NULL;
   const gchar *stream_method;
+  NodeIter i;
 
   feature = lm_message_node_get_child_with_namespace (si, "feature",
       NS_FEATURENEG);
@@ -1746,8 +1752,10 @@ streaminit_get_bytestream (GabbleBytestreamFactory *self,
       return NULL;
     }
 
-  for (field = x->children; field; field = field->next)
+  for (i = node_iter (x); i; i = node_iter_next (i))
     {
+      LmMessageNode *field = node_iter_data (i);
+
       if (tp_strdiff (lm_message_node_get_attribute (field, "var"),
             "stream-method"))
         /* some future field, ignore it */
-- 
1.5.6.5




More information about the telepathy-commits mailing list