diff libpurple/protocols/yahoo/yahoo.c @ 20589:5723dbc6212d

Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
author Daniel Atallah <daniel.atallah@gmail.com>
date Fri, 21 Sep 2007 02:46:27 +0000
parents e5b827037534
children 591267f6f1d5 d6bcff4b4007
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c	Fri Sep 21 01:49:27 2007 +0000
+++ b/libpurple/protocols/yahoo/yahoo.c	Fri Sep 21 02:46:27 2007 +0000
@@ -202,6 +202,8 @@
 
 	if (pkt->service == YAHOO_SERVICE_LOGOFF && pkt->status == -1) {
 		gc->wants_to_die = TRUE;
+		if (!purple_account_get_remember_password(account))
+			purple_account_set_password(account, NULL);
 		purple_connection_error(gc, _("You have signed on from another location."));
 		return;
 	}
@@ -4087,12 +4089,12 @@
 {
 	return TRUE;
 }
-	
+
 gboolean yahoo_send_attention(PurpleConnection *gc, const char *username, guint type)
 {
 	PurpleConversation *c;
 
-	c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, 
+	c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
 			username, gc->account);
 
 	g_return_val_if_fail(c != NULL, FALSE);
@@ -4117,7 +4119,7 @@
 		attn->incoming_description = _("%s has buzzed you!");
 		attn->outgoing_description = _("Buzzing %s...");
 		list = g_list_append(list, attn);
-	} 
+	}
 
 	return list;
 }