aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--README6
-rw-r--r--configure.ac2
-rw-r--r--facebook/facebook-api.c14
4 files changed, 21 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 155c907..f197571 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/README b/README
index e7bf8b2..007b77d 100644
--- a/README
+++ b/README
@@ -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);
}