# HG changeset patch # User Marcus Lundblad # Date 1284402789 0 # Node ID 1d55c7e1006ee233483cd629fa8f4a3459f0202d # Parent 277451b942885304cba765091cef5393b1d1661e jabber: actually look at the correct description on an incoming Google session diff -r 277451b94288 -r 1d55c7e1006e libpurple/protocols/jabber/google/google_session.c --- a/libpurple/protocols/jabber/google/google_session.c Mon Sep 13 09:22:59 2010 +0000 +++ b/libpurple/protocols/jabber/google/google_session.c Mon Sep 13 18:33:09 2010 +0000 @@ -60,6 +60,9 @@ if (session_data->remote_video_candidates) purple_media_candidate_list_free(session_data->remote_video_candidates); + if (session->description) + xmlnode_free(session->description); + g_free(session->session_data); g_free(session); } @@ -453,7 +456,6 @@ guint num_params; JabberStream *js = session->js; xmlnode *codec_element; - xmlnode *desc_element; const gchar *xmlns; PurpleMediaCodec *codec; GList *video_codecs = NULL; @@ -498,7 +500,7 @@ g_free(params); - for (codec_element = xmlnode_get_child(desc_element, "payload-type"); + for (codec_element = xmlnode_get_child(session->description, "payload-type"); codec_element; codec_element = codec_element->next) { const char *id, *encoding_name, *clock_rate, *width, *height, *framerate; @@ -557,7 +559,6 @@ static gboolean google_session_handle_initiate(JabberStream *js, GoogleSession *session, xmlnode *sess, const char *iq_id) { - xmlnode *desc_element; const gchar *xmlns; GoogleAVSessionData *session_data = (GoogleAVSessionData *) session->session_data; @@ -567,8 +568,8 @@ return FALSE; } - desc_element = xmlnode_get_child(sess, "description"); - xmlns = xmlnode_get_namespace(desc_element); + session->description = xmlnode_copy(xmlnode_get_child(sess, "description")); + xmlns = xmlnode_get_namespace(session->description); if (purple_strequal(xmlns, NS_GOOGLE_SESSION_PHONE)) session_data->video = FALSE; diff -r 277451b94288 -r 1d55c7e1006e libpurple/protocols/jabber/google/google_session.h --- a/libpurple/protocols/jabber/google/google_session.h Mon Sep 13 09:22:59 2010 +0000 +++ b/libpurple/protocols/jabber/google/google_session.h Mon Sep 13 18:33:09 2010 +0000 @@ -42,6 +42,8 @@ JabberStream *js; char *remote_jid; char *iq_id; + xmlnode *description; /* store incoming description through + relay credential fetching */ gpointer session_data; } GoogleSession;