From 7f1f9ab4eebf91e06c9ae69fa3376b1648edade5 Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Fri, 19 Mar 2021 14:53:23 +0100 Subject: [PATCH] bugfix: await for subscriptions when connected --- src/plugins/converse-rai.js | 15 ++++++++------- src/plugins/sib-subscribe-to-rai.js | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 7ad059d..3b5fb22 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -108,7 +108,7 @@ converse.plugins.add('converse-rai', { * @param {string|Array} jids * @returns {void} */ - subscribe(jids) { + async subscribe(jids) { if (!api.settings.get('muc_subscribe_to_rai')) { log.error(`You must enable the 'muc_subscribe_to_rai' option before subscribing to a MUC.`); return; @@ -118,15 +118,16 @@ converse.plugins.add('converse-rai', { jids = [jids]; } - const muc_domains = jids.map(jid => Strophe.getDomainFromJid(jid)); + const muc_domains = _.uniq(jids.map(jid => Strophe.getDomainFromJid(jid))); - _.uniq(muc_domains).forEach(muc_domain => { - const rai = $pres({ to: muc_domain, id: u.getUniqueId() }).c('rai', { + for (let domain of muc_domains) { + const rai = $pres({ to: domain, id: u.getUniqueId() }).c('rai', { 'xmlns': Strophe.NS.RAI, }); - api.send(rai); - log.debug(`Sent RAI stanza for domain "${muc_domain}"`); - }); + + await _converse.connection.send(rai); + log.debug(`Sent RAI stanza for domain "${domain}"`); + } }, }); diff --git a/src/plugins/sib-subscribe-to-rai.js b/src/plugins/sib-subscribe-to-rai.js index 100673b..404109f 100644 --- a/src/plugins/sib-subscribe-to-rai.js +++ b/src/plugins/sib-subscribe-to-rai.js @@ -57,8 +57,8 @@ converse.plugins.add('sib-subscribe-to-rai', { getProjects, ])).flat(); - api.listen.on('connected', () => { - api.rooms.subscribe(userRooms); + api.listen.on('connected', async () => { + await api.rooms.subscribe(userRooms); }); api.listen.on('chatRoomHasActivity', jid => { -- GitLab