Skip to content

Commit

Permalink
Merge pull request dequis#497 from baltitenger/master
Browse files Browse the repository at this point in the history
Fix taNewMessage bug
  • Loading branch information
EionRobb authored Oct 20, 2020
2 parents 106d7ac + 868f4e3 commit 7aa7aa1
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions patches/19-fix-taNewMessage-bug.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
--- a/libpurple/protocols/facebook/api.c
+++ b/libpurple/protocols/facebook/api.c
@@ -1502,6 +1502,23 @@
fb_api_cb_publish_ms_event(FbApi *api, JsonNode *root, GSList *events, FbApiEventType type, GError **error);

static void
+fb_api_cb_publish_mst(FbThrift *thft, GError **error)
+{
+ if (fb_thrift_read_isstop(thft)) {
+ FB_API_TCHK(fb_thrift_read_stop(thft));
+ } else {
+ FbThriftType type;
+ gint16 id;
+
+ FB_API_TCHK(fb_thrift_read_field(thft, &type, &id, 0));
+ FB_API_TCHK(type == FB_THRIFT_TYPE_STRING);
+ FB_API_TCHK(id == 2);
+ FB_API_TCHK(fb_thrift_read_str(thft, NULL));
+ FB_API_TCHK(fb_thrift_read_stop(thft));
+ }
+}
+
+static void
fb_api_cb_publish_ms(FbApi *api, GByteArray *pload)
{
const gchar *data;
@@ -1531,10 +1548,14 @@

/* Read identifier string (for Facebook employees) */
thft = fb_thrift_new(pload, 0);
- fb_thrift_read_str(thft, NULL);
+ fb_api_cb_publish_mst(thft, &err);
size = fb_thrift_get_pos(thft);
g_object_unref(thft);

+ FB_API_ERROR_EMIT(api, err,
+ return;
+ );
+
g_return_if_fail(size < pload->len);
data = (gchar *) pload->data + size;
size = pload->len - size;
@@ -1844,8 +1865,8 @@
pres->active = i32 != 0;
*press = g_slist_prepend(*press, pres);

- fb_util_debug_info("Presence: %" FB_ID_FORMAT " (%d)",
- i64, i32 != 0);
+ fb_util_debug_info("Presence: %" FB_ID_FORMAT " (%d) id: %d",
+ i64, i32 != 0, id);

while (id <= 6) {
if (fb_thrift_read_isstop(thft)) {
@@ -1894,7 +1915,9 @@
}

/* Read the field stop */
- FB_API_TCHK(fb_thrift_read_stop(thft));
+ if (fb_thrift_read_isstop(thft)) {
+ FB_API_TCHK(fb_thrift_read_stop(thft));
+ }
}

static void

0 comments on commit 7aa7aa1

Please sign in to comment.