diff options
Diffstat (limited to 'protocols/WhatsAppWeb/src/utils.cpp')
-rw-r--r-- | protocols/WhatsAppWeb/src/utils.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/protocols/WhatsAppWeb/src/utils.cpp b/protocols/WhatsAppWeb/src/utils.cpp index 127ec33a45..4c8fb5d8ca 100644 --- a/protocols/WhatsAppWeb/src/utils.cpp +++ b/protocols/WhatsAppWeb/src/utils.cpp @@ -155,6 +155,14 @@ int WhatsAppProto::WSSendNode(WANode &node, WA_PKT_HANDLER pHandler) if (m_hServerConn == nullptr) return 0; + if (pHandler != nullptr) { + CMStringA id(generateMessageId()); + node.addAttr("id", id); + + mir_cslock lck(m_csPacketQueue); + m_arPacketQueue.insert(new WARequest(id, pHandler)); + } + CMStringA szText; node.print(szText); debugLogA("Sending binary node:\n%s", szText.c_str()); @@ -162,11 +170,6 @@ int WhatsAppProto::WSSendNode(WANode &node, WA_PKT_HANDLER pHandler) WAWriter writer; writer.writeNode(&node); - if (pHandler != nullptr) { - mir_cslock lck(m_csPacketQueue); - m_arPacketQueue.insert(new WARequest(node.getAttr("id"), pHandler)); - } - MBinBuffer encData = m_noise->encrypt(writer.body.data(), writer.body.length()); MBinBuffer payload = m_noise->encodeFrame(encData.data(), encData.length()); WebSocket_SendBinary(m_hServerConn, payload.data(), payload.length()); |