pidgin: eadbcf5f: Correctly fallback to a federated contac...

qulogic at pidgin.im qulogic at pidgin.im
Sun Feb 5 21:50:42 EST 2012


----------------------------------------------------------------------
Revision: eadbcf5fbf64b540267125fef42d05ea7da50580
Parent:   9fe45819000c530c509c07b7feb29ce9d4ea13b0
Author:   qulogic at pidgin.im
Date:     02/05/12 16:53:01
Branch:   im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/eadbcf5fbf64b540267125fef42d05ea7da50580

Changelog: 

Correctly fallback to a federated contact if a contact also has a
passport address but that address is not messenger enabled.

Fixes #14641.

Changes against parent 9fe45819000c530c509c07b7feb29ce9d4ea13b0

  patched  libpurple/protocols/msn/contact.c

-------------- next part --------------
============================================================
--- libpurple/protocols/msn/contact.c	a794fa9d8689f0ae66877ecb7e0d7b0e8f9e407e
+++ libpurple/protocols/msn/contact.c	03b4dbe2efc8d811e6e5315744eadf720f67d712
@@ -740,6 +740,20 @@ msn_parse_addressbook_contacts(MsnSessio
 		}
 
 		passportName = xmlnode_get_child(contactInfo, "passportName");
+		if (passportName != NULL) {
+			xmlnode *messenger_user;
+			/* ignore non-messenger contacts */
+			if ((messenger_user = xmlnode_get_child(contactInfo, "isMessengerUser"))) {
+				char *is_messenger_user = xmlnode_get_data(messenger_user);
+
+				if (is_messenger_user && !strcmp(is_messenger_user, "false")) {
+					passportName = NULL;
+				}
+
+				g_free(is_messenger_user);
+			}
+		}
+
 		if (passportName == NULL) {
 			xmlnode *emailsNode, *contactEmailNode, *emailNode;
 			xmlnode *messengerEnabledNode;
@@ -773,19 +787,6 @@ msn_parse_addressbook_contacts(MsnSessio
 				}
 			}
 		} else {
-			xmlnode *messenger_user;
-			/* ignore non-messenger contacts */
-			if ((messenger_user = xmlnode_get_child(contactInfo, "isMessengerUser"))) {
-				char *is_messenger_user = xmlnode_get_data(messenger_user);
-
-				if (is_messenger_user && !strcmp(is_messenger_user, "false")) {
-					g_free(is_messenger_user);
-					continue;
-				}
-
-				g_free(is_messenger_user);
-			}
-
 			passport = xmlnode_get_data(passportName);
 		}
 


More information about the Commits mailing list