changeset 6114:3c70f8be8558

[gaim-migrate @ 6576] Fix Cae non-fatal bad bug 2: "hitting cancel all does not kill attempts to sign on. gaim tries to reconnect (no, I am not using the auto-reconnect plugin)." Previously only 1 account would get canceled because Gaim was iterating incorrectly through a GSList. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 13 Jul 2003 20:59:27 +0000
parents 30d4c432101c
children 11bedb793a44
files src/gtkconn.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkconn.c	Sun Jul 13 20:36:53 2003 +0000
+++ b/src/gtkconn.c	Sun Jul 13 20:59:27 2003 +0000
@@ -67,10 +67,12 @@
 
 static void cancel_all () {
 	GSList *m = meter_win ? meter_win->meters : NULL;
+	struct signon_meter *meter;
 
 	while (m) {
-		cancel_signon(NULL, m->data);
-		m = meter_win ? meter_win->meters : NULL;
+		meter = m->data;
+		cancel_signon(NULL, meter);
+		m = m->next;
 	}
 }
 
@@ -82,9 +84,11 @@
 static struct signon_meter *find_signon_meter(GaimConnection *gc)
 {
 	GSList *m = meter_win ? meter_win->meters : NULL;
+	struct signon_meter *meter;
 
 	while (m) {
-		if (((struct signon_meter *)m->data)->account == gc->account)
+		meter = m->data;
+		if (meter->account == gaim_connection_get_account(gc))
 			return m->data;
 		m = m->next;
 	}