# HG changeset patch # User Mark Doliner # Date 1228364128 0 # Node ID c457c635eb8fce84d09ed2b37e36f56e812fc753 # Parent 64c74659b6eba822fd0307498accad7f1964165f 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 diff -r 64c74659b6eb -r c457c635eb8f libpurple/protocols/yahoo/yahoo.c --- 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);