diff libpurple/protocols/msn/soap.c @ 31558:ce968e115c95

propagate from branch 'im.pidgin.cpw.masca.p2p' (head 33ca865dacb9e5bcf763d06f6a42cbaca337cc64) to branch 'im.pidgin.pidgin' (head 92f47f4e8b0cbb107fd97e1ab814d1cedbf109ad)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 06 May 2011 06:25:14 +0000
parents fe35df9a5af4
children
line wrap: on
line diff
--- a/libpurple/protocols/msn/soap.c	Tue Jan 04 05:05:06 2011 +0000
+++ b/libpurple/protocols/msn/soap.c	Fri May 06 06:25:14 2011 +0000
@@ -141,8 +141,7 @@
 {
 	MsnSoapRequest *req = item;
 
-	if (req->cb)
-		req->cb(req->message, NULL, req->cb_data);
+	req->cb(req->message, NULL, req->cb_data);
 
 	msn_soap_request_destroy(req, FALSE);
 }
@@ -230,12 +229,6 @@
 	msn_soap_connection_sanitize(conn, FALSE);
 
 	conn->run_timer = purple_timeout_add(0, msn_soap_connection_run, conn);
-
-	if (conn->current_request) {
-		MsnSoapRequest *req = conn->current_request;
-		conn->current_request = NULL;
-		msn_soap_connection_destroy_foreach_cb(req, conn);
-	}
 }
 
 static void
@@ -269,6 +262,7 @@
 	MsnSoapCallback cb, gpointer cb_data)
 {
 	g_return_if_fail(message != NULL);
+	g_return_if_fail(cb != NULL);
 
 	msn_soap_message_send_internal(session, message, host, path, secure,
 		cb, cb_data, FALSE);
@@ -281,12 +275,13 @@
 	char *path;
 
 	if (purple_url_parse(url, &host, NULL, &path, NULL, NULL)) {
-		msn_soap_message_send_internal(conn->session, conn->current_request->message,
-			host, path, conn->current_request->secure,
-			conn->current_request->cb, conn->current_request->cb_data, TRUE);
+		MsnSoapRequest *req = conn->current_request;
+		conn->current_request = NULL;
 
-		msn_soap_request_destroy(conn->current_request, TRUE);
-		conn->current_request = NULL;
+		msn_soap_message_send_internal(conn->session, req->message, host, path,
+			req->secure, req->cb, req->cb_data, TRUE);
+
+		msn_soap_request_destroy(req, TRUE);
 
 		g_free(host);
 		g_free(path);
@@ -380,7 +375,6 @@
 					/* something horribly wrong */
 					purple_ssl_close(conn->ssl);
 					conn->ssl = NULL;
-					msn_soap_connection_handle_next(conn);
 					handled = TRUE;
 					break;
 				} else if (conn->response_code == 503 && conn->session->login_step < MSN_LOGIN_STEP_END) {