From 731e98b07cedf23dfc3dc35a21fc7de591e1a5a5 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Sat, 12 Mar 2022 19:54:42 +0100 Subject: [PATCH] OMEMO fixes for completely new user Fix bugs related to there not being a server-side device list (not even an empty one) for a new user. --- src/plugins/omemo/api.js | 2 +- src/plugins/omemo/devicelist.js | 2 +- src/plugins/omemo/utils.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/omemo/api.js b/src/plugins/omemo/api.js index 888173ea7..1179f6d43 100644 --- a/src/plugins/omemo/api.js +++ b/src/plugins/omemo/api.js @@ -36,7 +36,7 @@ export default { async get (jid, create=false) { const list = _converse.devicelists.get(jid) || (create ? _converse.devicelists.create({ jid }) : null); - await list.initialized; + await list?.initialized; return list; } }, diff --git a/src/plugins/omemo/devicelist.js b/src/plugins/omemo/devicelist.js index 63529fd2e..36d5c9dc6 100644 --- a/src/plugins/omemo/devicelist.js +++ b/src/plugins/omemo/devicelist.js @@ -30,7 +30,7 @@ const DeviceList = Model.extend({ async onDevicesFound (collection) { if (collection.length === 0) { - let ids; + let ids = []; try { ids = await this.fetchDevicesFromServer(); } catch (e) { diff --git a/src/plugins/omemo/utils.js b/src/plugins/omemo/utils.js index fd792477e..3bec0ac42 100644 --- a/src/plugins/omemo/utils.js +++ b/src/plugins/omemo/utils.js @@ -453,7 +453,7 @@ export async function getDevicesForContact (jid) { export async function generateDeviceID () { /* Generates a device ID, making sure that it's unique */ - const devicelist = await api.omemo.devicelists.get(_converse.bare_jid); + const devicelist = await api.omemo.devicelists.get(_converse.bare_jid, true); const existing_ids = devicelist.devices.pluck('id'); let device_id = libsignal.KeyHelper.generateRegistrationId();