pidgin/pidgin

870dfcff28e3
Parents 143a4d8db15c
Children 0b631c061fb5
facebook: fixed the account user contact being ignored

This is a regression introduced by 600f41974cb3. As can be assumed, the
account user contact cannot be a friend of itself. An additional check
is needed to ensure the contact is only skipped for not being a friend.

This fixes the private alias of the acount user not being set.
--- a/libpurple/protocols/facebook/api.c Thu Aug 06 13:42:41 2015 -0400
+++ b/libpurple/protocols/facebook/api.c Thu Aug 06 15:13:42 2015 -0400
@@ -1356,6 +1356,7 @@
{
const gchar *str;
FbApi *api = data;
+ FbApiPrivate *priv = api->priv;
FbApiUser user;
FbHttpParams *params;
FbJsonValues *values;
@@ -1371,29 +1372,31 @@
values = fb_json_values_new(root, "$.viewer.messenger_contacts.nodes");
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
+ "$.represented_profile.id");
+ fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
"$.graph_api_write_id");
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
"$.represented_profile.friendship_status");
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
- "$.represented_profile.id");
- fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
"$.structured_name.text");
fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
"$.hugePictureUrl.uri");
while (fb_json_values_update(values, &err)) {
+ fb_api_user_reset(&user, FALSE);
+ str = fb_json_values_next_str(values, NULL);
+ user.uid = FB_ID_FROM_STR(str);
+
g_free(writeid);
writeid = fb_json_values_next_str_dup(values, NULL);
str = fb_json_values_next_str(values, NULL);
- if (!purple_strequal(str, "ARE_FRIENDS")) {
+ if (!purple_strequal(str, "ARE_FRIENDS") &&
+ (user.uid != priv->uid))
+ {
continue;
}
- fb_api_user_reset(&user, FALSE);
- str = fb_json_values_next_str(values, NULL);
- user.uid = FB_ID_FROM_STR(str);
-
user.name = fb_json_values_next_str_dup(values, NULL);
user.icon = fb_json_values_next_str_dup(values, NULL);