diff options
Diffstat (limited to 'facebook/facebook-api.c')
-rw-r--r-- | facebook/facebook-api.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c index a72f386..fb0581d 100644 --- a/facebook/facebook-api.c +++ b/facebook/facebook-api.c @@ -1853,8 +1853,18 @@ fb_api_cb_publish_pt(FbThrift *thft, GSList **press, GError **error) FB_API_TCHK(fb_thrift_read_i64(thft, NULL)); break; + case 6: + /* Unknown new field */ + FB_API_TCHK(type == FB_THRIFT_TYPE_I64); + FB_API_TCHK(fb_thrift_read_i64(thft, NULL)); + break; + default: - FB_API_TCHK(FALSE); + /* Try to read unknown fields as varint */ + FB_API_TCHK(type == FB_THRIFT_TYPE_I16 || + type == FB_THRIFT_TYPE_I32 || + type == FB_THRIFT_TYPE_I64); + FB_API_TCHK(fb_thrift_read_i64(thft, NULL)); break; } } @@ -2389,7 +2399,7 @@ fb_api_cb_contacts(FbHttpRequest *req, gpointer data) priv->contacts_delta = g_strdup(is_delta ? cursor : delta_cursor); } - if (users) { + if (users || (complete && !is_delta)) { g_signal_emit_by_name(api, "contacts", users, complete); } |