From 087b8733fc4210940ac8f57cd738f13f91cc3a9a Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 06:16:17 +0200 Subject: [PATCH 1/8] Update messages-recv.ts --- src/Socket/messages-recv.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 33aed5c..f22a7f5 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -156,9 +156,9 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { { tag: 'retry', attrs: { - count: retryCount.toString(), - id: node.attrs.id, - t: node.attrs.t, + count: retryCount, + id: node.attrs.id.toString(), + t: node.attrs.t.toString(), v: '1' } }, @@ -678,6 +678,13 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { } const handleMessage = async(node: BinaryNode) => { + if(getBinaryNodeChild(node, 'unavailable') && !getBinaryNodeChild(node, 'enc')) { + // "missing message from node" fix + logger.debug(node, 'missing body; sending ack then ignoring.') + await sendMessageAck(node) + return + } + const { fullMessage: msg, category, author, decrypt } = decryptMessageNode( node, authState.creds.me!.id, From 8777f7fa70014584f3a8b96bc050f619374cdef2 Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 06:23:56 +0200 Subject: [PATCH 2/8] fix ack --- src/Socket/messages-recv.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index f22a7f5..8e7f544 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -99,10 +99,14 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { stanza.attrs.recipient = attrs.recipient } - if(tag !== 'message' && attrs.type) { + if(!!attrs.type) { stanza.attrs.type = attrs.type } + if(tag === "message") { + stanza.attrs.from = authState.creds.me!.id + } + logger.debug({ recv: { tag, attrs }, sent: stanza.attrs }, 'sent ack') await sendNode(stanza) } @@ -111,7 +115,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { const stanza: BinaryNode = ({ tag: 'call', attrs: { - from: authState.creds.me!.id, + from: authState.creds.me!, to: callFrom, }, content: [{ From c264633291b16ffd897e9a98d29d3bf6a11502ff Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 07:25:45 +0200 Subject: [PATCH 3/8] fix(missing-messages): linting and bug --- src/Socket/messages-recv.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 8e7f544..53d393e 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -115,7 +115,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { const stanza: BinaryNode = ({ tag: 'call', attrs: { - from: authState.creds.me!, + from: authState.creds.me!.id, to: callFrom, }, content: [{ @@ -160,7 +160,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { { tag: 'retry', attrs: { - count: retryCount, + count: retryCount as any, id: node.attrs.id.toString(), t: node.attrs.t.toString(), v: '1' From 9d3dcfd08b161983f2b7654eaccbf93f2362b442 Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 20:17:39 +0200 Subject: [PATCH 4/8] fix(missing-messages): linting fix --- src/Socket/messages-recv.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 53d393e..7df5705 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -103,7 +103,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { stanza.attrs.type = attrs.type } - if(tag === "message") { + if(tag === 'message') { stanza.attrs.from = authState.creds.me!.id } @@ -688,7 +688,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { await sendMessageAck(node) return } - + const { fullMessage: msg, category, author, decrypt } = decryptMessageNode( node, authState.creds.me!.id, From b66b36251292b563c6b2a5f593320daa1e0e62aa Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 23:53:23 +0200 Subject: [PATCH 5/8] Update src/Socket/messages-recv.ts --- src/Socket/messages-recv.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 7df5705..cd90132 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -160,9 +160,9 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { { tag: 'retry', attrs: { - count: retryCount as any, - id: node.attrs.id.toString(), - t: node.attrs.t.toString(), + count: retryCount.toString(), + id: node.attrs.id, + t: node.attrs.t, v: '1' } }, From 99cd10b62130561f2212c47e2d1443466537b647 Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 23:56:38 +0200 Subject: [PATCH 6/8] fix logic --- src/Socket/messages-recv.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index cd90132..4fe444f 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -99,13 +99,14 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { stanza.attrs.recipient = attrs.recipient } - if(!!attrs.type) { - stanza.attrs.type = attrs.type - } - if(tag === 'message') { - stanza.attrs.from = authState.creds.me!.id - } + if (!!attrs.type && (tag !== "message" || getBinaryNodeChild({ tag, attrs, content }, "unavailable"))) { + stanza.attrs.type = attrs.type; + } + + if(tag === "message" && getBinaryNodeChild({ tag, attrs, content }, "unavailable")) { + stanza.attrs.from = authState.creds.me!.id; + } logger.debug({ recv: { tag, attrs }, sent: stanza.attrs }, 'sent ack') await sendNode(stanza) From 4d4dd58e0698a590f4850f3b68d8b295bd2da572 Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Tue, 12 Mar 2024 23:58:36 +0200 Subject: [PATCH 7/8] thank lint --- src/Socket/messages-recv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 4fe444f..818b95a 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -81,7 +81,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { let sendActiveReceipts = false - const sendMessageAck = async({ tag, attrs }: BinaryNode) => { + const sendMessageAck = async({ tag, attrs, content }: BinaryNode) => { const stanza: BinaryNode = { tag: 'ack', attrs: { From 767af0b688a21a5737ef745997f8687870dc1294 Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Wed, 13 Mar 2024 03:30:20 +0200 Subject: [PATCH 8/8] fix(retry): final commit: linting --- src/Socket/messages-recv.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 818b95a..575263d 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -100,12 +100,12 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { } - if (!!attrs.type && (tag !== "message" || getBinaryNodeChild({ tag, attrs, content }, "unavailable"))) { - stanza.attrs.type = attrs.type; + if(!!attrs.type && (tag !== 'message' || getBinaryNodeChild({ tag, attrs, content }, 'unavailable'))) { + stanza.attrs.type = attrs.type } - if(tag === "message" && getBinaryNodeChild({ tag, attrs, content }, "unavailable")) { - stanza.attrs.from = authState.creds.me!.id; + if(tag === 'message' && getBinaryNodeChild({ tag, attrs, content }, 'unavailable')) { + stanza.attrs.from = authState.creds.me!.id } logger.debug({ recv: { tag, attrs }, sent: stanza.attrs }, 'sent ack')