diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | facebook/facebook-api.c | 14 |
4 files changed, 21 insertions, 5 deletions
@@ -1,3 +1,7 @@ +bitlbee-facebook-1.1.2 (2017-08-30): + - Fix "Failed to read thrift" with unknown fields in /t_p payload + - Fix rare login hang/timeout when the last page of contacts is empty + bitlbee-facebook-1.1.1 (2017-04-02): - Send orca-formatted user agent for all HTTP requests too. Fixes "Failed to parse thread information" errors when joining channels. @@ -1,5 +1,7 @@ The Facebook protocol plugin for bitlbee. This plugin uses the Facebook -Mobile API. +Messenger MQTT-based protocol. + +This project is not affiliated with Facebook, Inc. ## Usage @@ -27,7 +29,7 @@ Do *not* use the source tree headers unless you know what you are doing. This can lead to mismatched header versions, which often times will lead to bad things. - $ git clone https://github.com/jgeboski/bitlbee-facebook.git + $ git clone https://github.com/bitlbee/bitlbee-facebook.git $ cd bitlbee-facebook With a "global" (or system) bitlbee installation: diff --git a/configure.ac b/configure.ac index 8989460..fc31a95 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ AC_INIT( [bitlbee-facebook], - [1.1.1], + [1.1.2], [https://github.com/bitlbee/bitlbee-facebook/issues], [bitlbee-facebook], [https://github.com/bitlbee/bitlbee-facebook], 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); } |