diff src/protocols/msn/servconn.c @ 14112:e149556f7569

[gaim-migrate @ 16746] Alright, SVN gaim_proxy_connect()'s are good committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Mon, 14 Aug 2006 07:00:26 +0000
parents 7a205b430d19
children
line wrap: on
line diff
--- a/src/protocols/msn/servconn.c	Mon Aug 14 06:38:12 2006 +0000
+++ b/src/protocols/msn/servconn.c	Mon Aug 14 07:00:26 2006 +0000
@@ -166,10 +166,12 @@
  **************************************************************************/
 
 static void
-connect_cb(gpointer data, gint source)
+connect_cb(gpointer data, gint source, const gchar *error_message)
 {
-	MsnServConn *servconn = data;
+	MsnServConn *servconn;
 
+	servconn = data;
+	servconn->connect_info = NULL;
 	servconn->processing = FALSE;
 
 	if (servconn->wasted)
@@ -199,7 +201,6 @@
 msn_servconn_connect(MsnServConn *servconn, const char *host, int port)
 {
 	MsnSession *session;
-	GaimProxyConnectInfo *connect_info;
 
 	g_return_val_if_fail(servconn != NULL, FALSE);
 	g_return_val_if_fail(host     != NULL, FALSE);
@@ -232,10 +233,10 @@
 		return TRUE;
 	}
 
-	connect_info = gaim_proxy_connect(session->account, host, port,
+	servconn->connect_info = gaim_proxy_connect(session->account, host, port,
 		connect_cb, servconn);
 
-	if (connect_info != NULL)
+	if (servconn->connect_info != NULL)
 	{
 		servconn->processing = TRUE;
 		return TRUE;
@@ -267,6 +268,12 @@
 		return;
 	}
 
+	if (servconn->connect_info != NULL)
+	{
+		gaim_proxy_connect_cancel(servconn->connect_info);
+		servconn->connect_info = NULL;
+	}
+
 	if (servconn->inpa > 0)
 	{
 		gaim_input_remove(servconn->inpa);