libpurple/protocols/msn/slp.c

changeset 34227
6d016a081401
parent 33424
9919d10ee405
child 34269
26b4c9a54166
--- a/libpurple/protocols/msn/slp.c	Sun Jun 23 13:19:25 2013 +0200
+++ b/libpurple/protocols/msn/slp.c	Sun Jun 23 21:35:31 2013 +0200
@@ -24,7 +24,7 @@
 
 #include "internal.h"
 #include "debug.h"
-#include "obsolete.h"
+#include "http.h"
 
 #include "slp.h"
 #include "slpcall.h"
@@ -171,23 +171,27 @@
 }
 
 static void
-fetched_user_display(PurpleUtilFetchUrlData *url_data, gpointer user_data,
-	const gchar *url_text, gsize len, const gchar *error_message)
+fetched_user_display(PurpleHttpConnection *http_conn,
+	PurpleHttpResponse *response, gpointer _data)
 {
-	MsnFetchUserDisplayData *data = user_data;
+	MsnFetchUserDisplayData *data = _data;
 	MsnSession *session = data->session;
 
-	session->url_datas = g_slist_remove(session->url_datas, url_data);
+	session->http_reqs = g_slist_remove(session->http_reqs, http_conn);
 
-	if (url_text) {
-		purple_buddy_icons_set_for_user(session->account, data->remote_user,
-		                                g_memdup(url_text, len), len,
-		                                data->sha1);
+	if (purple_http_response_is_successfull(response)) {
+		size_t len;
+		const gchar *icon_data;
+
+		icon_data = purple_http_response_get_data(response, &len);
+		purple_buddy_icons_set_for_user(session->account,
+			data->remote_user, g_memdup(icon_data, len), len,
+			data->sha1);
 	}
 
 	end_user_display(NULL, session);
 
-	g_free(user_data);
+	g_free(data);
 }
 
 static void
@@ -249,14 +253,18 @@
 	{
 		const char *url = msn_object_get_url1(obj);
 		if (url) {
+			PurpleHttpRequest *req;
+			PurpleHttpConnection *hc;
 			MsnFetchUserDisplayData *data = g_new0(MsnFetchUserDisplayData, 1);
-			PurpleUtilFetchUrlData *url_data;
 			data->session = session;
 			data->remote_user = user->passport;
 			data->sha1 = info;
-			url_data = purple_util_fetch_url(url, TRUE, NULL, TRUE, 200*1024,
-			                                     fetched_user_display, data);
-			session->url_datas = g_slist_prepend(session->url_datas, url_data);
+
+			req = purple_http_request_new(url);
+			purple_http_request_set_max_len(req, 200*1024);
+			hc = purple_http_request(NULL, req, fetched_user_display, data);
+			purple_http_request_unref(req);
+			session->http_reqs = g_slist_prepend(session->http_reqs, hc);
 		} else {
 			msn_slplink_request_object(slplink, info, got_user_display,
 			                           end_user_display, obj);

mercurial