diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/Discord/src/server.cpp | 5 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/server.cpp | 7 | ||||
-rwxr-xr-x | protocols/JabberG/src/jabber_proto.cpp | 2 | ||||
-rw-r--r-- | protocols/SkypeWeb/src/skype_db.cpp | 25 | ||||
-rw-r--r-- | protocols/SkypeWeb/src/skype_proto.cpp | 10 | ||||
-rw-r--r-- | protocols/SkypeWeb/src/skype_proto.h | 1 |
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);
|