# HG changeset patch # User ivan.komarov@soc.pidgin.im # Date 1288731104 0 # Node ID e9e41a04513dcadb9b40457f5dfdaec3209992b3 # Parent a2e2d351f6fb96e5734d43b967d89200e2be1e10# Parent 2d029c5cd305807d992c1d2df9af7244080d645f merge of '5e579d58062410991f6268b66906fb7434730423' and '7eb555d9d20df94a7bef577253c8effb724ab484' diff -r a2e2d351f6fb -r e9e41a04513d ChangeLog --- a/ChangeLog Mon Nov 01 19:08:08 2010 +0000 +++ b/ChangeLog Tue Nov 02 20:51:44 2010 +0000 @@ -2,15 +2,13 @@ version 2.7.6 (??/??/????): MSN: - * Added support for MSNP16: - * Added support for "Multi Points of Presence" (MPOP), which let users - to sign on multiple places at the same time. - * Added extended capabilities support (no one implemented). - * Merged the work done on the Google SoC: - * A major rewrite of SLP code: + * Added support for MSNP16, including Multiple Points of Presence (MPOP) + which allows multiple simultaneous sign-ins. + * Added extended capabilities support (none implemented). + * Merged the work done on the Google SoC (major rewrite of SLP code) * Reworked the data transfer architecture. (http://developer.pidgin.im/wiki/SlpArchitecture) - * A lot of love to MSN prpl. + * Lots of little changes. version 2.7.5 (10/31/2010): General: diff -r a2e2d351f6fb -r e9e41a04513d libpurple/account.c --- a/libpurple/account.c Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/account.c Tue Nov 02 20:51:44 2010 +0000 @@ -508,8 +508,6 @@ purple_account_remove_setting(account, "xferjp_host"); } - - return; } static void @@ -531,8 +529,6 @@ if(purple_strequal(tmp, "slogin.oscar.aol.com")) purple_account_set_string(account, "server", "slogin.icq.com"); } - - return; } static void diff -r a2e2d351f6fb -r e9e41a04513d libpurple/protocols/jabber/adhoccommands.c --- a/libpurple/protocols/jabber/adhoccommands.c Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.c Tue Nov 02 20:51:44 2010 +0000 @@ -125,7 +125,8 @@ xmlnode_set_attrib(command,"node",actionInfo->node); /* cancel is handled differently on ad-hoc commands than regular forms */ - if(!strcmp(xmlnode_get_namespace(result),"jabber:x:data") && !strcmp(xmlnode_get_attrib(result, "type"),"cancel")) { + if (purple_strequal(xmlnode_get_namespace(result), "jabber:x:data") && + purple_strequal(xmlnode_get_attrib(result, "type"), "cancel")) { xmlnode_set_attrib(command,"action","cancel"); } else { if(actionhandle) diff -r a2e2d351f6fb -r e9e41a04513d libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/protocols/jabber/auth.c Tue Nov 02 20:51:44 2010 +0000 @@ -502,20 +502,30 @@ return 0; } +void jabber_auth_add_mech(JabberSaslMech *mech) +{ + auth_mechs = g_slist_insert_sorted(auth_mechs, mech, compare_mech); +} + +void jabber_auth_remove_mech(JabberSaslMech *mech) +{ + auth_mechs = g_slist_remove(auth_mechs, mech); +} + void jabber_auth_init(void) { JabberSaslMech **tmp; gint count, i; - auth_mechs = g_slist_insert_sorted(auth_mechs, jabber_auth_get_plain_mech(), compare_mech); - auth_mechs = g_slist_insert_sorted(auth_mechs, jabber_auth_get_digest_md5_mech(), compare_mech); + jabber_auth_add_mech(jabber_auth_get_plain_mech()); + jabber_auth_add_mech(jabber_auth_get_digest_md5_mech()); #ifdef HAVE_CYRUS_SASL - auth_mechs = g_slist_insert_sorted(auth_mechs, jabber_auth_get_cyrus_mech(), compare_mech); + jabber_auth_add_mech(jabber_auth_get_cyrus_mech()); #endif tmp = jabber_auth_get_scram_mechs(&count); for (i = 0; i < count; ++i) - auth_mechs = g_slist_insert_sorted(auth_mechs, tmp[i], compare_mech); + jabber_auth_add_mech(tmp[i]); } void jabber_auth_uninit(void) diff -r a2e2d351f6fb -r e9e41a04513d libpurple/protocols/jabber/auth.h --- a/libpurple/protocols/jabber/auth.h Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/protocols/jabber/auth.h Tue Nov 02 20:51:44 2010 +0000 @@ -58,6 +58,9 @@ JabberSaslMech *jabber_auth_get_cyrus_mech(void); #endif +void jabber_auth_add_mech(JabberSaslMech *); +void jabber_auth_remove_mech(JabberSaslMech *); + void jabber_auth_init(void); void jabber_auth_uninit(void); diff -r a2e2d351f6fb -r e9e41a04513d libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/protocols/jabber/presence.c Tue Nov 02 20:51:44 2010 +0000 @@ -995,12 +995,14 @@ } for (child = packet->child; child; child = child->next) { + const char *xmlns; char *key; JabberPresenceHandler *pih; if (child->type != XMLNODE_TYPE_TAG) continue; - key = g_strdup_printf("%s %s", child->name, xmlnode_get_namespace(child)); + xmlns = xmlnode_get_namespace(child); + key = g_strdup_printf("%s %s", child->name, xmlns ? xmlns : ""); pih = g_hash_table_lookup(presence_handlers, key); g_free(key); if (pih) diff -r a2e2d351f6fb -r e9e41a04513d libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Mon Nov 01 19:08:08 2010 +0000 +++ b/libpurple/protocols/oscar/oscar.c Tue Nov 02 20:51:44 2010 +0000 @@ -621,7 +621,7 @@ static const gchar *get_login_server(gboolean is_icq, gboolean use_ssl) { - return login_servers[is_icq*2 + use_ssl]; + return login_servers[(is_icq ? 2 : 0) + (use_ssl ? 1 : 0)]; } void