From ff0bfe59f3b76b039e8c6abcb24e17816c411e54 Mon Sep 17 00:00:00 2001 From: Gordon Quad Date: Thu, 12 Apr 2018 13:44:39 +0300 Subject: [PATCH] little bit of defensive programming to handle lost events --- src/twc-tox-callbacks.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/twc-tox-callbacks.c b/src/twc-tox-callbacks.c index 4e1ee35..c3db2a5 100644 --- a/src/twc-tox-callbacks.c +++ b/src/twc-tox-callbacks.c @@ -478,12 +478,29 @@ twc_group_peer_name_callback(Tox *tox, uint32_t group_number, struct t_twc_chat *chat = twc_chat_search_group(profile, group_number, true); + int npeers, len; struct t_gui_nick *nick = NULL; const char *prev_name; char *name; + TOX_ERR_CONFERENCE_PEER_QUERY err = TOX_ERR_CONFERENCE_PEER_QUERY_OK; struct t_weelist_item *n; + npeers = tox_conference_peer_count(profile->tox, group_number, &err); + + if (err == TOX_ERR_CONFERENCE_PEER_QUERY_OK) + { + len = weechat_list_size(chat->nicks); + if (len != npeers) + { + // We missed some events, fallback to full list update + twc_group_peer_list_changed_callback(tox, group_number, data); + return; + } + } + else + return; + n = weechat_list_get(chat->nicks, peer_number); if (!n) {