summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM/src/server.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2023-04-18 17:31:38 +0300
committerGeorge Hazan <ghazan@miranda.im>2023-04-18 17:31:38 +0300
commitb8eb4f622b7e839454081f9dede6b9a42d174f75 (patch)
treeb59b8e4464fae0ffc329401f946d95d627960e42 /protocols/ICQ-WIM/src/server.cpp
parentb38f2534004135415ae8d576c7f3bb41785ca7e7 (diff)
fixes #3447 (ICQ: застревают сообщения группового чата)
Diffstat (limited to 'protocols/ICQ-WIM/src/server.cpp')
-rw-r--r--protocols/ICQ-WIM/src/server.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index e2ba716d97..bc7c0b4f79 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -77,6 +77,17 @@ MCONTACT CIcqProto::CheckOwnMessage(const CMStringA &reqId, const CMStringA &msg
if (!Contact::IsGroupChat(ret))
ProtoBroadcastAck(ret, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)pOwn->m_msgid, (LPARAM)msgId.c_str());
+ else {
+ T2Utf szOwnId(m_szOwnId);
+
+ PROTORECVEVENT pre = {};
+ pre.szMsgId = msgId.c_str();
+ pre.timestamp = time(0);
+ pre.szMessage = pOwn->m_szText;
+ pre.flags = PREF_SENT | PREF_CREATEREAD;
+ pre.szUserId = szOwnId;
+ ProtoChainRecvMsg(pOwn->m_hContact, &pre);
+ }
if (bRemove) {
mir_cslock lck(m_csOwnIds);
@@ -847,7 +858,7 @@ LBL_Error:
int id = InterlockedIncrement(&m_msgId);
auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_POST, ICQ_API_SERVER "/im/sendIM", &CIcqProto::OnSendMessage);
- auto *pOwn = new IcqOwnMessage(pTransfer->pfts.hContact, id, pReq->m_reqId);
+ auto *pOwn = new IcqOwnMessage(pTransfer->pfts.hContact, id, pReq->m_reqId, T2Utf(wszUrl));
pReq->pUserInfo = pOwn;
{
mir_cslock lck(m_csOwnIds);