pidgin/android/libpurple

bf07e13cb621
Parents e998e98e9f63
Children 06a7154ee8dd
Don't request the AB if getting the contact list failed. Either there's
no AB, so it'll be created first, or a partial update failed, and the
contact list will be requested again.
--- a/libpurple/protocols/msn/contact.c Sun Aug 07 02:10:04 2011 +0000
+++ b/libpurple/protocols/msn/contact.c Mon Aug 08 21:43:19 2011 +0000
@@ -474,7 +474,7 @@
}
/*parse contact list*/
-static void
+static gboolean
msn_parse_contact_list(MsnSession *session, xmlnode *node)
{
xmlnode *fault, *faultnode;
@@ -499,13 +499,14 @@
if (g_str_equal(errorcode, "ABDoesNotExist")) {
msn_create_address_book(session);
g_free(errorcode);
- return;
+ return FALSE;
}
g_free(errorcode);
}
msn_get_contact_list(session, MSN_PS_INITIAL, NULL);
+ return FALSE;
} else {
xmlnode *service;
@@ -514,6 +515,7 @@
service; service = xmlnode_get_next_twin(service)) {
msn_parse_each_service(session, service);
}
+ return TRUE;
}
}
@@ -534,23 +536,24 @@
purple_debug_misc("msn", "Got the contact list!\n");
- msn_parse_contact_list(session, resp->xml);
+ if (msn_parse_contact_list(session, resp->xml)) {
#ifdef MSN_PARTIAL_LISTS
- abLastChange = purple_account_get_string(session->account,
- "ablastChange", NULL);
- dynamicItemLastChange = purple_account_get_string(session->account,
- "DynamicItemLastChanged", NULL);
+ abLastChange = purple_account_get_string(session->account,
+ "ablastChange", NULL);
+ dynamicItemLastChange = purple_account_get_string(session->account,
+ "DynamicItemLastChanged", NULL);
#endif
- if (state->partner_scenario == MSN_PS_INITIAL) {
+ if (state->partner_scenario == MSN_PS_INITIAL) {
#ifdef MSN_PARTIAL_LISTS
- /* XXX: this should be enabled when we can correctly do partial
- syncs with the server. Currently we need to retrieve the whole
- list to detect sync issues */
- msn_get_address_book(session, MSN_PS_INITIAL, abLastChange, dynamicItemLastChange);
+ /* XXX: this should be enabled when we can correctly do partial
+ syncs with the server. Currently we need to retrieve the whole
+ list to detect sync issues */
+ msn_get_address_book(session, MSN_PS_INITIAL, abLastChange, dynamicItemLastChange);
#else
- msn_get_address_book(session, MSN_PS_INITIAL, NULL, NULL);
+ msn_get_address_book(session, MSN_PS_INITIAL, NULL, NULL);
#endif
+ }
}
}
}