diff libpurple/protocols/oscar/oscar.c @ 20778:8174f6999308

Sprinkle gc->wants_to_die = TRUE liberally around connection errors that really ought to have been setting it already so that it is always set when a disconnection reason is fatal. In a couple of other places, fix the reason to be more accurate and not be fatal.
author Will Thompson <will.thompson@collabora.co.uk>
date Fri, 05 Oct 2007 18:33:27 +0000
parents f3cfcbbac3d8
children efa448405f3d
line wrap: on
line diff
--- a/libpurple/protocols/oscar/oscar.c	Fri Oct 05 16:50:54 2007 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Fri Oct 05 18:33:27 2007 +0000
@@ -1259,7 +1259,7 @@
 		gchar *buf;
 		buf = g_strdup_printf(_("Unable to login: Could not sign on as %s because the screen name is invalid.  Screen names must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), purple_account_get_username(account));
 		gc->wants_to_die = TRUE;
-		purple_connection_error_reason(gc, PURPLE_REASON_AUTHENTICATION_FAILED, buf);
+		purple_connection_error_reason(gc, PURPLE_REASON_INVALID_SETTINGS, buf);
 		g_free(buf);
 	}
 
@@ -1378,7 +1378,8 @@
 			purple_connection_error_reason(gc, PURPLE_REASON_OTHER_ERROR, _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer."));
 			break;
 		default:
-			purple_connection_error_reason(gc, PURPLE_REASON_NETWORK_ERROR, _("Authentication failed"));
+			gc->wants_to_die = TRUE;
+			purple_connection_error_reason(gc, PURPLE_REASON_AUTHENTICATION_FAILED, _("Authentication failed"));
 			break;
 		}
 		purple_debug_info("oscar", "Login Error Code 0x%04hx\n", info->errorcode);