pidgin.2.5.6: 30079f00: applied changes from 70fa4cc384b7643ab1f...

elb at pidgin.im elb at pidgin.im
Tue Apr 28 20:21:01 EDT 2009


-----------------------------------------------------------------
Revision: 30079f001fcf3d37b3b998c4d62f0c3c308346fc
Ancestor: 2f2d084c77a5b905a47b7b28508172451a2bb82f
Author: elb at pidgin.im
Date: 2009-04-28T20:55:35
Branch: im.pidgin.pidgin.2.5.6
URL: http://d.pidgin.im/viewmtn/revision/info/30079f001fcf3d37b3b998c4d62f0c3c308346fc

Modified files:
        ChangeLog libpurple/protocols/msn/notification.c
        libpurple/protocols/msn/session.h

ChangeLog: 

applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
             through f0df27a299120baecf9ea88a9fb24ffe1dbe72fd

ChangeLog for the above

-------------- next part --------------
============================================================
--- ChangeLog	a5b17c7a4d6cb28b0055a01d2a1daca25bc52abe
+++ ChangeLog	ca4283a2426da5e0d67bc3bf130882200c5b4a6b
@@ -12,6 +12,8 @@ version 2.5.6 (??/??/2009):
 
 	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.
============================================================
--- libpurple/protocols/msn/notification.c	f1b1dca6bfb4d81532fa3650b37be4110df66c2f
+++ libpurple/protocols/msn/notification.c	f6594ebbd8c27ba4a0f784df595b3e711d7842f3
@@ -630,7 +630,7 @@ update_contact_network(MsnSession *sessi
 
 	} 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 @@ msn_notification_dump_contact(MsnSession
 			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 @@ msn_notification_dump_contact(MsnSession
 				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 @@ msn_notification_dump_contact(MsnSession
 	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 @@ adl_cmd(MsnCmdProc *cmdproc, MsnCommand 
 
 	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]);
============================================================
--- libpurple/protocols/msn/session.h	984247a50594b306aafcc6e8aad380837c1b02a0
+++ libpurple/protocols/msn/session.h	c9a9484c07f665b77bde64e14eff18bad120e77f
@@ -90,6 +90,7 @@ struct _MsnSession
 
 	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;
 


More information about the Commits mailing list