summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-04-18 19:03:20 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-04-18 19:03:24 +0300
commit4ab75b1f53d04276b0658a710005f91d74018ab4 (patch)
treeaabb7232bb28d3b5efca7aa67bcf2df0f929374a /protocols
parent2ac29594d76f2cf75b59aa1889568bf742a24916 (diff)
db_event_delivered support for Telegram & ICQ
Diffstat (limited to 'protocols')
-rw-r--r--protocols/ICQ-WIM/src/server.cpp3
-rw-r--r--protocols/Telegram/src/avatars.cpp3
-rw-r--r--protocols/Telegram/src/server.cpp5
3 files changed, 10 insertions, 1 deletions
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index 3dca2f8a6c..0d44af1811 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -96,6 +96,9 @@ MCONTACT CIcqProto::CheckOwnMessage(const CMStringA &reqId, const CMStringA &msg
ProtoChainRecvMsg(pOwn->m_hContact, dbei);
}
+ if (auto hDbEvent = db_event_getById(m_szModuleName, msgId))
+ db_event_delivered(pOwn->m_hContact, hDbEvent);
+
if (bRemove) {
mir_cslock lck(m_csOwnIds);
m_arOwnIds.remove(pOwn);
diff --git a/protocols/Telegram/src/avatars.cpp b/protocols/Telegram/src/avatars.cpp
index dcfa894ced..3afcdc4ea2 100644
--- a/protocols/Telegram/src/avatars.cpp
+++ b/protocols/Telegram/src/avatars.cpp
@@ -314,6 +314,9 @@ void CTelegramProto::ProcessFile(TD::updateFile *pObj)
DBVARIANT dbv = { DBVT_UTF8 };
dbv.pszVal = (char *)pRemote->id_.c_str();
db_event_setJson(hDbEvent, "u", &dbv);
+
+ // file is uploaded to the server
+ db_event_delivered(it->hContact, hDbEvent);
}
}
return;
diff --git a/protocols/Telegram/src/server.cpp b/protocols/Telegram/src/server.cpp
index 2b2e1a4e63..d5755cbed1 100644
--- a/protocols/Telegram/src/server.cpp
+++ b/protocols/Telegram/src/server.cpp
@@ -281,9 +281,12 @@ void CTelegramProto::ProcessResponse(td::ClientManager::Response response)
TG_OWN_MESSAGE tmp(0, 0, szOldId);
if (auto *pOwnMsg = m_arOwnMsg.find(&tmp)) {
+ auto szMsgId = msg2id(pMessage);
if (pOwnMsg->hAck)
- ProtoBroadcastAck(pOwnMsg->hContact ? pOwnMsg->hContact : m_iSavedMessages, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, pOwnMsg->hAck, (LPARAM)msg2id(pMessage).c_str());
+ ProtoBroadcastAck(pOwnMsg->hContact ? pOwnMsg->hContact : m_iSavedMessages, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, pOwnMsg->hAck, (LPARAM)szMsgId.c_str());
+ if (auto hDbEvent = db_event_getById(m_szModuleName, szMsgId))
+ db_event_delivered(pOwnMsg->hContact, hDbEvent);
m_arOwnMsg.remove(pOwnMsg);
}
}