libpurple/protocols/facebook/api.c

branch
facebook
changeset 37257
5ba291680ac4
parent 37255
a6f5142565de
child 37258
291b6e1acc24
--- a/libpurple/protocols/facebook/api.c	Fri Jun 05 22:38:04 2015 -0400
+++ b/libpurple/protocols/facebook/api.c	Sat Jun 06 02:13:52 2015 -0400
@@ -965,12 +965,20 @@
 }
 
 static void
+fb_api_cb_contacts_free(FbApiUser *user)
+{
+	g_free(user->csum);
+	g_free(user);
+}
+
+static void
 fb_api_cb_contacts(PurpleHttpConnection *con, PurpleHttpResponse *res,
                    gpointer data)
 {
 	const gchar *str;
 	FbApi *api = data;
 	FbApiUser user;
+	FbHttpParams *params;
 	GError *err = NULL;
 	GList *elms = NULL;
 	GList *l;
@@ -987,12 +995,23 @@
 		return;
 	}
 
+	params = fb_http_params_new_parse("http://www.google.com/index.php?text=hello%20world#world", TRUE);
+	fb_http_params_free(params);
+
+	params = fb_http_params_new_parse("http://www.google.com/?text=hi", TRUE);
+	fb_http_params_free(params);
+
+	params = fb_http_params_new_parse("text=hello%20world", FALSE);
+	fb_http_params_free(params);
+
 	arr = fb_json_node_get_arr(root, expr, &err);
 	FB_API_ERROR_CHK(api, err, goto finish);
 	elms = json_array_get_elements(arr);
 
 	for (l = elms; l != NULL; l = l->next) {
 		node = l->data;
+		memset(&user, 0, sizeof user);
+
 		str = fb_json_node_get_str(node, "$.represented_profile.id",
 		                           &err);
 		FB_API_ERROR_CHK(api, err, goto finish);
@@ -1008,6 +1027,12 @@
 		FB_API_ERROR_CHK(api, err, goto finish);
 		user.icon = str;
 
+		params = fb_http_params_new_parse(user.icon, TRUE);
+		str = fb_http_params_get_str(params, "oh", &err);
+		user.csum = g_strdup(str);
+		fb_http_params_free(params);
+		FB_API_ERROR_CHK(api, err, goto finish);
+
 		mptr = g_memdup(&user, sizeof user);
 		users = g_slist_prepend(users, mptr);
 	}
@@ -1016,7 +1041,7 @@
 
 finish:
 	g_list_free(elms);
-	g_slist_free_full(users, g_free);
+	g_slist_free_full(users, (GDestroyNotify) fb_api_cb_contacts_free);
 	json_node_free(root);
 }
 

mercurial