changeset 23571:af2cfc9a42b3

On MSN, cancel the connection process to a server before checking servconn->connected. Otherwise, if the MsnServConn wasn't marked as connected, and the account was disabled, the request would continue on while the MsnServConn was freed.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 13 Jul 2008 01:15:09 +0000
parents 5dafc77b169e
children 25aec47d9671
files libpurple/protocols/msn/servconn.c libpurple/protocols/msnp9/servconn.c
diffstat 2 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/servconn.c	Sat Jul 12 07:32:05 2008 +0000
+++ b/libpurple/protocols/msn/servconn.c	Sun Jul 13 01:15:09 2008 +0000
@@ -255,6 +255,12 @@
 {
 	g_return_if_fail(servconn != NULL);
 
+	if (servconn->connect_data != NULL)
+	{
+		purple_proxy_connect_cancel(servconn->connect_data);
+		servconn->connect_data = NULL;
+	}
+
 	if (!servconn->connected)
 	{
 		/* We could not connect. */
@@ -273,12 +279,6 @@
 		return;
 	}
 
-	if (servconn->connect_data != NULL)
-	{
-		purple_proxy_connect_cancel(servconn->connect_data);
-		servconn->connect_data = NULL;
-	}
-
 	if (servconn->inpa > 0)
 	{
 		purple_input_remove(servconn->inpa);
--- a/libpurple/protocols/msnp9/servconn.c	Sat Jul 12 07:32:05 2008 +0000
+++ b/libpurple/protocols/msnp9/servconn.c	Sun Jul 13 01:15:09 2008 +0000
@@ -251,6 +251,12 @@
 {
 	g_return_if_fail(servconn != NULL);
 
+	if (servconn->connect_data != NULL)
+	{
+		purple_proxy_connect_cancel(servconn->connect_data);
+		servconn->connect_data = NULL;
+	}
+
 	if (!servconn->connected)
 	{
 		/* We could not connect. */
@@ -269,12 +275,6 @@
 		return;
 	}
 
-	if (servconn->connect_data != NULL)
-	{
-		purple_proxy_connect_cancel(servconn->connect_data);
-		servconn->connect_data = NULL;
-	}
-
 	if (servconn->inpa > 0)
 	{
 		purple_input_remove(servconn->inpa);