Skip to content

Commit

Permalink
fixes #3419 (ICQ: в журнале групчата не видны исходящие реплики)
Browse files Browse the repository at this point in the history
  • Loading branch information
georgehazan committed Mar 12, 2023
1 parent 80bf10f commit b3577d8
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions protocols/ICQ-WIM/src/server.cpp
Expand Up @@ -73,9 +73,11 @@ MCONTACT CIcqProto::CheckOwnMessage(const CMStringA &reqId, const CMStringA &msg
if (pOwn == nullptr)
return 0;

ProtoBroadcastAck(pOwn->m_hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)pOwn->m_msgid, (LPARAM)msgId.c_str());

MCONTACT ret = pOwn->m_hContact;

if (!Contact::IsGroupChat(ret))
ProtoBroadcastAck(ret, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)pOwn->m_msgid, (LPARAM)msgId.c_str());

if (bRemove) {
mir_cslock lck(m_csOwnIds);
m_arOwnIds.remove(pOwn);
Expand Down Expand Up @@ -471,12 +473,16 @@ void CIcqProto::ParseMessage(MCONTACT hContact, __int64 &lastMsgId, const JSONNo
}
}

// skip own messages, just set the server msgid
// process our own messages
CMStringA reqId(it["reqId"].as_mstring());
if (CheckOwnMessage(reqId, szMsgId, true)) {
debugLogA("Skipping our own message %s", szMsgId.c_str());
return;
if (!Contact::IsGroupChat(hContact)) // prevent duplicates in private chats
return;
bIsOutgoing = bCreateRead = true;
}
else if (Contact::IsGroupChat(hContact))
bCreateRead = true;

// ignore duplicates
MEVENT hDbEvent = db_event_getById(m_szModuleName, szMsgId);
Expand Down

0 comments on commit b3577d8

Please sign in to comment.