Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/jingle.c @ 25661:d048100a43ab
Free the PurpleMedia object when the media session ends and fix ending
the session when the conversation is closed.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Sat, 31 May 2008 04:01:18 +0000 |
parents | cbe97caec684 |
children | e73b03097664 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jingle.c Wed May 28 21:13:36 2008 +0000 +++ b/libpurple/protocols/jabber/jingle.c Sat May 31 04:01:18 2008 +0000 @@ -101,6 +101,7 @@ { g_hash_table_remove(sess->js->sessions, sess->id); g_free(sess->id); + g_object_unref(sess->media); g_free(sess); } @@ -119,13 +120,18 @@ { GList *values = g_hash_table_get_values(js->sessions); GList *iter = values; + gboolean use_bare = strchr(jid, '/') == NULL; for (; iter; iter = iter->next) { JingleSession *session = (JingleSession *)iter->data; - if (session->js == js && !strcmp(jid, session->remote_jid)) { + gchar *cmp_jid = use_bare ? jabber_get_bare_jid(session->remote_jid) + : g_strdup(session->remote_jid); + if (!strcmp(jid, cmp_jid)) { + g_free(cmp_jid); g_list_free(values); return session; } + g_free(cmp_jid); } g_list_free(values);