Mercurial > pidgin
changeset 28260:ca0d55a8943f
Dimmuxx noticed that retrieving OIM didn't work for him until he
signs off and back on, and that the faltcode is such:
<soap:Fault>
<faultcode>AuthenticationFailed</faultcode>
<faultstring>Authentication Failed</faultstring>
<detail>
<TweenerChallenge xmlns="http://www.hotmail.msn.com/ws/2004/09/oim/rsi">Passport1.4 blah blah blah blah</TweenerChallenge>
</detail>
</soap:Fault>
and so he says, "I'm pretty sure just switching badcontexttoken or adding another else if will fix it :P"
As usual, ZERO amount of verification was done.
But don't we have a lot of users who offered to help except they can't code?
Hint hint hint.
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Tue, 15 Sep 2009 01:04:11 +0000 |
parents | 3d5f1cde625a |
children | ddbb3a85d9d8 |
files | libpurple/protocols/msn/oim.c |
diffstat | 1 files changed, 12 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/msn/oim.c Sat Sep 12 01:01:56 2009 +0000 +++ b/libpurple/protocols/msn/oim.c Tue Sep 15 01:04:11 2009 +0000 @@ -172,8 +172,18 @@ if (faultcode) { gchar *faultcode_str = xmlnode_get_data(faultcode); + gboolean need_token_update = FALSE; - if (faultcode_str && g_str_equal(faultcode_str, "q0:BadContextToken")) { + if (faultcode_str) { + if (g_str_equal(faultcode_str, "q0:BadContextToken") || + g_str_equal(faultcode_str, "AuthenticationFailed")) + need_token_update = TRUE; + else if (g_str_equal(faultcode_str, "q0:AuthenticationFailed") && + xmlnode_get_child(fault, "detail/RequiredAuthPolicy") != NULL) + need_token_update = TRUE; + } + + if (need_token_update) { purple_debug_warning("msn", "OIM Request Error, Updating token now.\n"); msn_nexus_update_token(data->oim->session->nexus, data->send ? MSN_AUTH_LIVE_SECURE : MSN_AUTH_MESSENGER_WEB, @@ -181,16 +191,8 @@ g_free(faultcode_str); return; - } else if (faultcode_str && g_str_equal(faultcode_str, "q0:AuthenticationFailed")) { - if (xmlnode_get_child(fault, "detail/RequiredAuthPolicy") != NULL) { - purple_debug_warning("msn", "OIM Request Error, Updating token now.\n"); - msn_nexus_update_token(data->oim->session->nexus, - data->send ? MSN_AUTH_LIVE_SECURE : MSN_AUTH_MESSENGER_WEB, - (GSourceFunc)msn_oim_request_helper, data); - g_free(faultcode_str); - return; - } } + g_free(faultcode_str); }