/pidgin/main: ee51d84aacbf: msn: Hard fail if buddy list is unav...
Elliott Sales de Andrade
qulogic at pidgin.im
Wed Nov 12 02:39:10 EST 2014
Changeset: ee51d84aacbf32f0dfd513e1f0fb2ef8bcc4b7e6
Author: Elliott Sales de Andrade <qulogic at pidgin.im>
Date: 2014-11-12 02:21 -0500
Branch: release-2.x.y
URL: https://hg.pidgin.im/pidgin/main/rev/ee51d84aacbf
Description:
msn: Hard fail if buddy list is unavailable.
Previously, this would blindly continue to attempt to connect, and
that's a lot of extra load as in the recent case of the ApplicationId
being disabled on the MSN servers.
diffstat:
libpurple/protocols/msn/contact.c | 16 +++++++++-------
libpurple/protocols/msn/session.c | 6 +++---
2 files changed, 12 insertions(+), 10 deletions(-)
diffs (49 lines):
diff --git a/libpurple/protocols/msn/contact.c b/libpurple/protocols/msn/contact.c
--- a/libpurple/protocols/msn/contact.c
+++ b/libpurple/protocols/msn/contact.c
@@ -487,12 +487,6 @@ msn_parse_contact_list(MsnSession *sessi
* this is not handled yet
*/
if ((fault = xmlnode_get_child(node, "Body/Fault"))) {
- if ((faultnode = xmlnode_get_child(fault, "faultstring"))) {
- char *faultstring = xmlnode_get_data(faultnode);
- purple_debug_info("msn", "Retrieving contact list failed: %s\n",
- faultstring);
- g_free(faultstring);
- }
if ((faultnode = xmlnode_get_child(fault, "detail/errorcode"))) {
char *errorcode = xmlnode_get_data(faultnode);
@@ -505,7 +499,15 @@ msn_parse_contact_list(MsnSession *sessi
g_free(errorcode);
}
- msn_get_contact_list(session, MSN_PS_INITIAL, NULL);
+ if ((faultnode = xmlnode_get_child(fault, "faultstring"))) {
+ char *faultstring = xmlnode_get_data(faultnode);
+ purple_debug_info("msn", "Retrieving contact list failed: %s\n",
+ faultstring);
+ msn_session_set_error(session, MSN_ERROR_BAD_BLIST, faultstring);
+ g_free(faultstring);
+ } else {
+ msn_session_set_error(session, MSN_ERROR_BAD_BLIST, NULL);
+ }
return FALSE;
} else {
xmlnode *service;
diff --git a/libpurple/protocols/msn/session.c b/libpurple/protocols/msn/session.c
--- a/libpurple/protocols/msn/session.c
+++ b/libpurple/protocols/msn/session.c
@@ -408,9 +408,9 @@ msn_session_set_error(MsnSession *sessio
break;
case MSN_ERROR_BAD_BLIST:
reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR;
- msg = g_strdup(_("Your MSN buddy list is temporarily "
- "unavailable. Please wait and try "
- "again."));
+ msg = g_strdup_printf(_("Your MSN buddy list is temporarily "
+ "unavailable: %s"),
+ (info == NULL) ? _("Unknorn error") : info);
break;
default:
reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR;
More information about the Commits
mailing list