pidgin: 97d295a0: Two functional changes here:

markdoliner at pidgin.im markdoliner at pidgin.im
Wed Dec 3 23:21:23 EST 2008


-----------------------------------------------------------------
Revision: 97d295a04f3a9852a3b29cf0df43d56d1ddcc672
Ancestor: 9b8e1a7f14219feadab302f1a65431c719735bd1
Author: markdoliner at pidgin.im
Date: 2008-12-04T04:15:28
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/97d295a04f3a9852a3b29cf0df43d56d1ddcc672

Modified files:
        libpurple/protocols/yahoo/yahoo.c

ChangeLog: 

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

-------------- next part --------------
============================================================
--- libpurple/protocols/yahoo/yahoo.c	5d25d009744c236c804e85c96c2834426b734de2
+++ libpurple/protocols/yahoo/yahoo.c	52e72503825182377c124651a20dd661861abbcc
@@ -2122,7 +2122,7 @@ static void yahoo_process_authresp(Purpl
 	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 @@ static void yahoo_process_authresp(Purpl
 	}
 
 	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 @@ static void yahoo_process_authresp(Purpl
 			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);


More information about the Commits mailing list