diff libpurple/protocols/msn/soap.c @ 20501:f6dff814d95f

cleans up ownership of soap callback data, this soap stuff is perfect weight-loss pill, because it makes you want to throw up
author Ka-Hing Cheung <khc@hxbc.us>
date Sun, 09 Sep 2007 01:42:46 +0000
parents f062793410b5
children 915e11fbaeb0 2c8c6d77f12c
line wrap: on
line diff
--- a/libpurple/protocols/msn/soap.c	Sun Sep 09 00:50:14 2007 +0000
+++ b/libpurple/protocols/msn/soap.c	Sun Sep 09 01:42:46 2007 +0000
@@ -150,7 +150,12 @@
 
 	g_return_if_fail(soapconn != NULL);
 
+	soapconn->body = NULL;
+
 	while ((request = g_queue_pop_head(soapconn->soap_queue)) != NULL){
+		if (soapconn->read_cb) {
+			soapconn->read_cb(soapconn, -1, 0);
+		}
 		msn_soap_request_free(request);
 	}
 }
@@ -510,14 +515,6 @@
 	soapconn->written_len = 0;
 }
 
-void
-msn_soap_free_data_cb(MsnSoapConn *soapconn)
-{
-	if (soapconn->data_cb) {
-		g_free(soapconn->data_cb);
-	}
-}
-
 /*Soap write process func*/
 static void
 msn_soap_write_cb(gpointer data, gint source, PurpleInputCondition cond)
@@ -625,7 +622,6 @@
 	g_free(request->login_path);
 	g_free(request->soap_action);
 	g_free(request->body);
-	g_free(request->data_cb);
 	request->read_cb	= NULL;
 	request->written_cb	= NULL;