Mercurial > pidgin
changeset 31764:9eb5b85c7089
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.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Mon, 08 Aug 2011 21:43:19 +0000 |
parents | f33200f71cc3 |
children | c164dcad5e28 |
files | libpurple/protocols/msn/contact.c |
diffstat | 1 files changed, 16 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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 + } } } }