From f641b9436b67917ec1a488056099e2ed7fd60824 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 14 Jul 2020 08:48:48 +1000 Subject: [PATCH] fix our handling of snode sending errors so we have a real error shown when a message fails to send because of it. Also, fix the retry logic on the corresponding message --- js/models/messages.js | 5 ++++- js/modules/loki_message_api.js | 3 ++- ts/session/snode_api/serviceNodeAPI.ts | 2 -- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/js/models/messages.js b/js/models/messages.js index f913208fa..69102da1c 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -1087,6 +1087,9 @@ } const { body, attachments, preview, quote } = await this.uploadData(); + const ourNumber = window.storage.get('primaryDevicePubKey'); + const ourConversation = window.ConversationController.get(ourNumber); + const lokiProfile = ourConversation.getOurProfile(); const chatMessage = new libsession.Messages.Outgoing.ChatMessage({ identifier: this.id, @@ -1096,7 +1099,7 @@ attachments, preview, quote, - lokiProfile: this.conversation.getOurProfile(), + lokiProfile, }); // Special-case the self-send case - we send only a sync message diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 3c7d9b7f7..6f7a81652 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -96,8 +96,9 @@ class LokiMessageAPI { // eslint-disable-next-line more/no-then snode = await primitives.firstTrue(promises); } catch (e) { + const snodeStr = snode ? `${snode.ip}:${snode.port}` : 'null'; log.warn( - `loki_message:::sendMessage - ${e.code} ${e.message} to ${pubKey} via ${snode.ip}:${snode.port}` + `loki_message:::sendMessage - ${e.code} ${e.message} to ${pubKey} via snode:${snodeStr}` ); if (e instanceof textsecure.WrongDifficultyError) { // Force nonce recalculation diff --git a/ts/session/snode_api/serviceNodeAPI.ts b/ts/session/snode_api/serviceNodeAPI.ts index 2742fa9a4..3d8aa459f 100644 --- a/ts/session/snode_api/serviceNodeAPI.ts +++ b/ts/session/snode_api/serviceNodeAPI.ts @@ -298,8 +298,6 @@ export async function storeOnNode( return false; } - const res = snodeRes as any; - const json = JSON.parse(snodeRes.body); // Make sure we aren't doing too much PoW const currentDifficulty = window.storage.get('PoWDifficulty', null);