summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/Discord/src/server.cpp5
-rw-r--r--protocols/ICQ-WIM/src/server.cpp7
-rwxr-xr-xprotocols/JabberG/src/jabber_proto.cpp2
-rw-r--r--protocols/SkypeWeb/src/skype_db.cpp25
-rw-r--r--protocols/SkypeWeb/src/skype_proto.cpp10
-rw-r--r--protocols/SkypeWeb/src/skype_proto.h1
6 files changed, 21 insertions, 29 deletions
diff --git a/protocols/Discord/src/server.cpp b/protocols/Discord/src/server.cpp
index f1e3135aa4..735d2193b8 100644
--- a/protocols/Discord/src/server.cpp
+++ b/protocols/Discord/src/server.cpp
@@ -111,9 +111,8 @@ void CDiscordProto::OnReceiveHistory(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest
bSucceeded = 0 == db_event_edit(pUser->hContact, hDbEvent, &dbei);
if (!bSucceeded) {
- MEVENT hNew = db_event_add(pUser->hContact, &dbei);
- if (hNew != 0)
- db_event_setId(m_szModuleName, hNew, szMsgId);
+ dbei.szId = szMsgId;
+ db_event_add(pUser->hContact, &dbei);
}
}
else {
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index 465cb052be..0794624c4a 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -75,11 +75,6 @@ MCONTACT CIcqProto::CheckOwnMessage(const CMStringA &reqId, const CMStringA &msg
MCONTACT ret = pOwn->m_hContact;
if (bRemove) {
- // here we filter service messages for SecureIM, OTR etc, i.e. messages that
- // weren't initialized by SRMM (we identify it by missing server id)
- if (db_event_getById(m_szModuleName, msgId) == 0)
- db_event_setId(m_szModuleName, 1, msgId);
-
mir_cslock lck(m_csOwnIds);
m_arOwnIds.remove(pOwn);
}
@@ -453,8 +448,6 @@ void CIcqProto::ParseMessage(MCONTACT hContact, __int64 &lastMsgId, const JSONNo
pReq << CHAR_PARAM("aimsid", m_aimsid) << CHAR_PARAM("previews", "600");
Push(pReq);
- db_event_setId(m_szModuleName, 1, szMsgId);
-
MarkAsRead(hContact);
return;
}
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp
index 5c496b1e6f..dfcea18fb0 100755
--- a/protocols/JabberG/src/jabber_proto.cpp
+++ b/protocols/JabberG/src/jabber_proto.cpp
@@ -602,6 +602,8 @@ INT_PTR CJabberProto::GetCaps(int type, MCONTACT hContact)
dwFlags = PF4_FORCEAUTH | PF4_NOCUSTOMAUTH | PF4_NOAUTHDENYREASON | PF4_SUPPORTTYPING | PF4_AVATARS | PF4_READNOTIFY;
if (m_bUseHttpUpload || m_bInlinePictures)
dwFlags |= PF4_OFFLINEFILES;
+ if (m_ThreadInfo && (m_ThreadInfo->jabberServerCaps & JABBER_CAPS_MAM))
+ dwFlags |= PF4_SERVERMSGID;
return dwFlags;
case PFLAG_UNIQUEIDTEXT:
diff --git a/protocols/SkypeWeb/src/skype_db.cpp b/protocols/SkypeWeb/src/skype_db.cpp
index c5b3aa348c..8a0869ab04 100644
--- a/protocols/SkypeWeb/src/skype_db.cpp
+++ b/protocols/SkypeWeb/src/skype_db.cpp
@@ -43,10 +43,15 @@ MEVENT CSkypeProto::AddDbEvent(WORD type, MCONTACT hContact, DWORD timestamp, DW
if (MEVENT hDbEvent = GetMessageFromDb(uid))
return hDbEvent;
- MEVENT ret = AddEventToDb(hContact, type, timestamp, flags, (DWORD)mir_strlen(content)+1, (BYTE*)content);
- if (uid && ret)
- db_event_setId(m_szModuleName, ret, uid);
- return ret;
+ DBEVENTINFO dbei = {};
+ dbei.szModule = m_szModuleName;
+ dbei.timestamp = timestamp;
+ dbei.eventType = type;
+ dbei.cbBlob = (DWORD)mir_strlen(content) + 1;
+ dbei.pBlob = (BYTE *)content;
+ dbei.flags = flags;
+ dbei.szId = uid;
+ return db_event_add(hContact, &dbei);
}
void CSkypeProto::EditEvent(MCONTACT hContact, MEVENT hEvent, const char *szContent, time_t edit_time)
@@ -92,18 +97,6 @@ void CSkypeProto::EditEvent(MCONTACT hContact, MEVENT hEvent, const char *szCont
db_event_edit(hContact, hEvent, &dbei);
}
-MEVENT CSkypeProto::AddEventToDb(MCONTACT hContact, WORD type, DWORD timestamp, DWORD flags, DWORD cbBlob, PBYTE pBlob)
-{
- DBEVENTINFO dbei = {};
- dbei.szModule = m_szModuleName;
- dbei.timestamp = timestamp;
- dbei.eventType = type;
- dbei.cbBlob = cbBlob;
- dbei.pBlob = pBlob;
- dbei.flags = flags;
- return db_event_add(hContact, &dbei);
-}
-
void CSkypeProto::InitDBEvents()
{
db_set_resident(m_szModuleName, "LastAuthRequestTime");
diff --git a/protocols/SkypeWeb/src/skype_proto.cpp b/protocols/SkypeWeb/src/skype_proto.cpp
index 7a0bb990b5..e590729a4e 100644
--- a/protocols/SkypeWeb/src/skype_proto.cpp
+++ b/protocols/SkypeWeb/src/skype_proto.cpp
@@ -317,9 +317,15 @@ int CSkypeProto::RecvContacts(MCONTACT hContact, PROTORECVEVENT* pre)
// memcpy(pCurBlob + 1, szMessageId, mir_strlen(szMessageId));
- AddEventToDb(hContact, EVENTTYPE_CONTACTS, pre->timestamp, (pre->flags & PREF_CREATEREAD) ? DBEF_READ : 0, cbBlob, pBlob);
+ DBEVENTINFO dbei = {};
+ dbei.szModule = m_szModuleName;
+ dbei.timestamp = pre->timestamp;
+ dbei.eventType = EVENTTYPE_CONTACTS;
+ dbei.cbBlob = cbBlob;
+ dbei.pBlob = pBlob;
+ dbei.flags = (pre->flags & PREF_CREATEREAD) ? DBEF_READ : 0;
+ db_event_add(hContact, &dbei);
mir_free(pBlob);
-
return 0;
}
diff --git a/protocols/SkypeWeb/src/skype_proto.h b/protocols/SkypeWeb/src/skype_proto.h
index 8a9a243afe..52a8e04cc9 100644
--- a/protocols/SkypeWeb/src/skype_proto.h
+++ b/protocols/SkypeWeb/src/skype_proto.h
@@ -320,7 +320,6 @@ private:
{ return (!mir_strcmpi(str, m_szMyname) || !mir_strcmp(str, ptrA(getStringA("SelfEndpointName"))));
}
- MEVENT AddEventToDb(MCONTACT hContact, WORD type, DWORD timestamp, DWORD flags, DWORD cbBlob, PBYTE pBlob);
static time_t IsoToUnixTime(const char *stamp);
static CMStringA GetStringChunk(const char *haystack, const char *start, const char *end);