diff src/protocols/oscar/conn.c @ 2675:e759254b29bb

[gaim-migrate @ 2688] This source code was developed using Microsoft Visual Studio 6.0. committer: Tailor Script <tailor@pidgin.im>
author Adam Fritzler <mid@auk.cx>
date Mon, 05 Nov 2001 12:25:22 +0000
parents c41030cfed76
children 441b84ab7f4e
line wrap: on
line diff
--- a/src/protocols/oscar/conn.c	Mon Nov 05 11:33:50 2001 +0000
+++ b/src/protocols/oscar/conn.c	Mon Nov 05 12:25:22 2001 +0000
@@ -104,10 +104,11 @@
 	return NULL;
 }
 
-static struct snacgroup *connkill_snacgroups(struct snacgroup *sg)
+static void connkill_snacgroups(struct snacgroup **head)
 {
+	struct snacgroup *sg;
 
-	while (sg) {
+	for (sg = *head; sg; ) {
 		struct snacgroup *tmp;
 
 		tmp = sg->next;
@@ -115,7 +116,26 @@
 		sg = tmp;
 	}
 
-	return NULL;
+	*head = NULL;
+
+	return;
+}
+
+static void connkill_rates(struct rateclass **head)
+{
+	struct rateclass *rc;
+
+	for (rc = *head; rc; ) {
+		struct rateclass *tmp;
+
+		tmp = rc->next;
+		free(rc);
+		rc = tmp;
+	}
+
+	*head = NULL;
+
+	return;
 }
 
 static void connkill_real(aim_session_t *sess, aim_conn_t **deadconn)
@@ -144,7 +164,8 @@
 	if ((*deadconn)->inside) {
 		aim_conn_inside_t *inside = (aim_conn_inside_t *)(*deadconn)->inside;
 
-		inside->groups = connkill_snacgroups(inside->groups);
+		connkill_snacgroups(&inside->groups);
+		connkill_rates(&inside->rates);
 
 		free(inside);
 	}