Mercurial > pidgin
changeset 26042:46434dc43a63
merge of 'a43fe39095ee00967fa35f7fc14ecd698c4b3241'
and 'be1f71ec3369834e58cb66cfaa0ac17c03fdbe82'
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Sat, 10 Jan 2009 01:27:49 +0000 |
parents | 68ebba87143b (current diff) db517c55c508 (diff) |
children | e5f9cf20c4aa |
files | |
diffstat | 7 files changed, 44 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/Makefile.mingw Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/Makefile.mingw Sat Jan 10 01:27:49 2009 +0000 @@ -85,6 +85,7 @@ ## LIBS = \ -lglib-2.0 \ + -lgobject-2.0 \ -lxml2 \ -lws2_32 \ -lintl \
--- a/libpurple/protocols/jabber/jingle/content.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/content.c Sat Jan 10 01:27:49 2009 +0000 @@ -18,7 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include "config.h" +#include "internal.h" + #include "debug.h" #include "content.h" #include "jingle.h"
--- a/libpurple/protocols/jabber/jingle/iceudp.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/iceudp.c Sat Jan 10 01:27:49 2009 +0000 @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" + #include "iceudp.h" #include "jingle.h" #include "debug.h"
--- a/libpurple/protocols/jabber/jingle/jingle.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/jingle.c Sat Jan 10 01:27:49 2009 +0000 @@ -19,7 +19,8 @@ * */ -#include "config.h" +#include "internal.h" + #include "content.h" #include "debug.h" #include "jingle.h" @@ -423,15 +424,17 @@ } } +static void +jingle_terminate_sessions_gh(gpointer key, gpointer value, gpointer user_data) +{ + g_object_unref(value); +} + void jingle_terminate_sessions(JabberStream *js) { - GList *values = js->sessions ? - g_hash_table_get_values(js->sessions) : NULL; - - for (; values; values = g_list_delete_link(values, values)) { - JingleSession *session = (JingleSession *)values->data; - g_object_unref(session); - } + if (js->sessions) + g_hash_table_foreach(js->sessions, + jingle_terminate_sessions_gh, NULL); }
--- a/libpurple/protocols/jabber/jingle/rawudp.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rawudp.c Sat Jan 10 01:27:49 2009 +0000 @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" + #include "rawudp.h" #include "jingle.h" #include "debug.h"
--- a/libpurple/protocols/jabber/jingle/session.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.c Sat Jan 10 01:27:49 2009 +0000 @@ -18,7 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include "config.h" +#include "internal.h" + #include "content.h" #include "debug.h" #include "session.h" @@ -362,28 +363,31 @@ g_hash_table_lookup(js->sessions, sid) : NULL; } +static gboolean find_by_jid_ghr(gpointer key, + gpointer value, gpointer user_data) +{ + JingleSession *session = (JingleSession *)value; + const gchar *jid = user_data; + gboolean use_bare = strchr(jid, '/') == NULL; + gchar *remote_jid = jingle_session_get_remote_jid(session); + gchar *cmp_jid = use_bare ? jabber_get_bare_jid(remote_jid) + : g_strdup(remote_jid); + g_free(remote_jid); + if (!strcmp(jid, cmp_jid)) { + g_free(cmp_jid); + return TRUE; + } + g_free(cmp_jid); + + return FALSE; +} + JingleSession * jingle_session_find_by_jid(JabberStream *js, const gchar *jid) { - GList *values = (js->sessions) ? - g_hash_table_get_values(js->sessions) : NULL; - gboolean use_bare = strchr(jid, '/') == NULL; - - for (; values; values = g_list_delete_link(values, values)) { - JingleSession *session = (JingleSession *)values->data; - gchar *remote_jid = jingle_session_get_remote_jid(session); - gchar *cmp_jid = use_bare ? jabber_get_bare_jid(remote_jid) - : g_strdup(remote_jid); - g_free(remote_jid); - if (!strcmp(jid, cmp_jid)) { - g_free(cmp_jid); - g_list_free(values); - return session; - } - g_free(cmp_jid); - } - - return NULL; + return js->sessions != NULL ? + g_hash_table_find(js->sessions, + find_by_jid_ghr, (gpointer)jid) : NULL; } static xmlnode *
--- a/libpurple/protocols/jabber/jingle/transport.c Sat Jan 10 01:27:48 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/transport.c Sat Jan 10 01:27:49 2009 +0000 @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ +#include "internal.h" + #include "transport.h" #include "jingle.h" #include "debug.h"