[telepathy-gabble/master] jingle-session: use node iteration wrappers
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu Jun 25 08:19:54 PDT 2009
---
src/jingle-session.c | 34 ++++++++++++++++++++--------------
1 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/src/jingle-session.c b/src/jingle-session.c
index b5fbc6e..f2bf713 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -679,12 +679,12 @@ _foreach_content (GabbleJingleSession *sess,
GError **error)
{
GabbleJingleContent *c;
- LmMessageNode *content_node;
+ NodeIter i;
- for (content_node = node->children;
- NULL != content_node;
- content_node = content_node->next)
+ for (i = node_iter (node); i; i = node_iter_next (i))
{
+ LmMessageNode *content_node = node_iter_data (i);
+
if (tp_strdiff (lm_message_node_get_name (content_node), "content"))
continue;
@@ -1204,16 +1204,17 @@ on_session_info (GabbleJingleSession *sess,
{
gboolean understood_a_payload = FALSE;
gboolean hit_an_error = FALSE;
- LmMessageNode *n = node->children;
+ NodeIter i;
/* if this is a ping, just ack it. */
- if (n == NULL)
+ if (node_iter (node) == NULL)
return;
- for (n = node->children; n != NULL; n = n->next)
+ for (i = node_iter (node); i; i = node_iter_next (i))
{
gboolean handled;
GError *e = NULL;
+ LmMessageNode *n = node_iter_data (i);
if (handle_payload (sess, n, &handled, &e))
{
@@ -1276,6 +1277,7 @@ on_session_terminate (GabbleJingleSession *sess, LmMessageNode *node,
TpChannelGroupChangeReason reason = TP_CHANNEL_GROUP_CHANGE_REASON_NONE;
LmMessageNode *n = lm_message_node_get_child (node, "reason");
ReasonMapping *m = NULL;
+ NodeIter i;
/* If the session-terminate stanza has a <reason> child, then iterate across
* its children, looking for a child whose name we recognise as a
@@ -1285,13 +1287,17 @@ on_session_terminate (GabbleJingleSession *sess, LmMessageNode *node,
* we recognise, break out of both loops.
*/
if (n != NULL)
- for (n = n->children; n != NULL; n = n->next)
- for (m = reasons; m->element != NULL; m++)
- if (!tp_strdiff (m->element, lm_message_node_get_name (n)))
- {
- reason = m->reason;
- goto pub;
- }
+ for (i = node_iter (n); i; i = node_iter_next (i))
+ {
+ n = node_iter_data (i);
+
+ for (m = reasons; m->element != NULL; m++)
+ if (!tp_strdiff (m->element, lm_message_node_get_name (n)))
+ {
+ reason = m->reason;
+ goto pub;
+ }
+ }
pub:
DEBUG ("remote end terminated the session with reason %s (%u)",
--
1.5.6.5
More information about the telepathy-commits
mailing list