Mercurial > pidgin.yaz
changeset 25860:d51b8647d43c
applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
through f0df27a299120baecf9ea88a9fb24ffe1dbe72fd
ChangeLog for the above
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Tue, 28 Apr 2009 20:55:35 +0000 |
parents | 1b8c18ab762f |
children | 7f552614ec8a |
files | ChangeLog libpurple/protocols/msn/notification.c libpurple/protocols/msn/session.h |
diffstat | 3 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Apr 28 20:51:59 2009 +0000 +++ b/ChangeLog Tue Apr 28 20:55:35 2009 +0000 @@ -12,6 +12,8 @@ MSN: * Fix a race condition causing occasional Pidgin crashes. + * Fix some errors about the friendly name changing too fast caused + by MSN/Yahoo integration buddies. Yahoo: * Fix a crash when sending very long messages.
--- a/libpurple/protocols/msn/notification.c Tue Apr 28 20:51:59 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Tue Apr 28 20:55:35 2009 +0000 @@ -630,7 +630,7 @@ } else { purple_debug_error("msn", - "Got FQY update for unkwown user %s on network %d.\n", + "Got FQY update for unknown user %s on network %d.\n", passport, network); } } @@ -685,6 +685,9 @@ if (++adl_count % 150 == 0) { payload = xmlnode_to_str(adl_node, &payload_len); + /* ADL's are returned all-together */ + session->adl_fqy++; + msn_notification_post_adl(session->notification->cmdproc, payload, payload_len); @@ -696,6 +699,9 @@ xmlnode_set_attrib(adl_node, "l", "1"); } } else { + /* FQY's are returned one-at-a-time */ + session->adl_fqy++; + msn_add_contact_xml(session, fqy_node, user->passport, 0, user->networkid); @@ -717,6 +723,9 @@ if (adl_count == 0 || adl_count % 150 != 0) { payload = xmlnode_to_str(adl_node, &payload_len); + /* ADL's are returned all-together */ + session->adl_fqy++; + msn_notification_post_adl(session->notification->cmdproc, payload, payload_len); g_free(payload); @@ -803,7 +812,8 @@ if (!strcmp(cmd->params[1], "OK")) { /* ADL ack */ - msn_session_finish_login(session); + if (--session->adl_fqy == 0) + msn_session_finish_login(session); } else { cmdproc->last_cmd->payload_cb = adl_cmd_parse; cmd->payload_len = atoi(cmd->params[1]);
--- a/libpurple/protocols/msn/session.h Tue Apr 28 20:51:59 2009 +0000 +++ b/libpurple/protocols/msn/session.h Tue Apr 28 20:55:35 2009 +0000 @@ -90,6 +90,7 @@ gboolean connected; gboolean logged_in; /**< A temporal flag to ignore local buddy list adds. */ + int adl_fqy; /**< A count of ADL/FQY so status is only changed once. */ gboolean destroying; /**< A flag that states if the session is being destroyed. */ gboolean http_method;