changeset 24536:c457c635eb8f

Two functional changes here: 1. The default error case for unknown errors on yahoo now uses PURPLE_CONNECTION_ERROR_OTHER_ERROR instead of PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED. This change was made because it's logical. 2. The unknown yahoo error with error code "0" now uses PURPLE_CONNECTION_ERROR_NETWORK_ERROR instead of PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED. This change was made because this error doesn't seem to be fatal, and we want the account to be reconnected, but normally AUTHENTICATION_FAILED errors are fatal and should not be reconnected Specially this makes yahoo accounts auto-reconnect when we get the error "Unknown error number 0. Logging into the Yahoo! website may fix this." I know we think we fixed this with that change to send the timeout or keepalive much less often, but I'm still seeing a lot of disconnects for it and I have a strong suspicion that they're not actually fatal errors. Refs #5223
author Mark Doliner <mark@kingant.net>
date Thu, 04 Dec 2008 04:15:28 +0000
parents 64c74659b6eb
children a05e9cf91efb fecedf6d9ee1 ef09497b1674 a063901a5499
files libpurple/protocols/yahoo/yahoo.c
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c	Thu Dec 04 03:40:31 2008 +0000
+++ b/libpurple/protocols/yahoo/yahoo.c	Thu Dec 04 04:15:28 2008 +0000
@@ -2122,7 +2122,7 @@
 	char *url = NULL;
 	char *fullmsg;
 	PurpleAccount *account = gc->account;
-	PurpleConnectionError reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED;
+	PurpleConnectionError reason = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
 
 	while (l) {
 		struct yahoo_pair *pair = l->data;
@@ -2136,6 +2136,10 @@
 	}
 
 	switch (err) {
+	case 0:
+		msg = g_strdup(_("Unknown error."));
+		reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR;
+		break;
 	case 3:
 		msg = g_strdup(_("Invalid username."));
 		reason = PURPLE_CONNECTION_ERROR_INVALID_USERNAME;
@@ -2160,9 +2164,11 @@
 			purple_account_set_password(account, NULL);
 
 		msg = g_strdup(_("Incorrect password."));
+		reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED;
 		break;
 	case 14:
 		msg = g_strdup(_("Your account is locked, please log in to the Yahoo! website."));
+		reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED;
 		break;
 	default:
 		msg = g_strdup_printf(_("Unknown error number %d. Logging into the Yahoo! website may fix this."), err);