From 436e303e24e5046d6cc52ac3da51a0b51adbef36 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 15 Jun 2020 18:35:21 +0300 Subject: simpler way of applying server ids to messages --- plugins/Spamotron/src/spamotron.cpp | 32 +++++++++++++++----------------- plugins/Spamotron/src/utils.cpp | 23 +++++++++++------------ 2 files changed, 26 insertions(+), 29 deletions(-) (limited to 'plugins/Spamotron/src') diff --git a/plugins/Spamotron/src/spamotron.cpp b/plugins/Spamotron/src/spamotron.cpp index 445261ee14..f61f1c43f5 100644 --- a/plugins/Spamotron/src/spamotron.cpp +++ b/plugins/Spamotron/src/spamotron.cpp @@ -227,23 +227,21 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) wchar_t AuthEventModule[100]; char* szAuthEventModule; if (db_get(hContact, MODULENAME, "AuthEvent", &_dbv) == 0) { - DBEVENTINFO *_dbei = (DBEVENTINFO *)malloc(sizeof(DBEVENTINFO)); - if (_dbei != nullptr) { - memcpy(&_dbei->cbBlob, _dbv.pbVal, sizeof(DWORD)); - _dbei->eventType = EVENTTYPE_AUTHREQUEST; - _getCOptS(AuthEventModule, 100, hContact, "AuthEventModule", L"ICQ"); - szAuthEventModule = mir_u2a(AuthEventModule); - _dbei->szModule = szAuthEventModule; - _dbei->timestamp = dbei->timestamp; - _dbei->flags = 0; - _dbei->pBlob = _dbv.pbVal + sizeof(DWORD); - db_event_add(hContact,_dbei); - g_plugin.delSetting(hContact, "AuthEvent"); - g_plugin.delSetting(hContact, "AuthEventPending"); - g_plugin.delSetting(hContact, "AuthEventModule"); - mir_free(szAuthEventModule); - free(_dbei); - } + DBEVENTINFO dbei2 = {}; + dbei2.cbBlob = *(DWORD *)_dbv.pbVal; + dbei2.eventType = EVENTTYPE_AUTHREQUEST; + _getCOptS(AuthEventModule, 100, hContact, "AuthEventModule", L"ICQ"); + szAuthEventModule = mir_u2a(AuthEventModule); + dbei2.szModule = szAuthEventModule; + dbei2.timestamp = dbei->timestamp; + dbei2.pBlob = _dbv.pbVal + sizeof(DWORD); + db_event_add(hContact, &dbei2); + + g_plugin.delSetting(hContact, "AuthEvent"); + g_plugin.delSetting(hContact, "AuthEventPending"); + g_plugin.delSetting(hContact, "AuthEventModule"); + mir_free(szAuthEventModule); + db_free(&_dbv); } } diff --git a/plugins/Spamotron/src/utils.cpp b/plugins/Spamotron/src/utils.cpp index bdbbdacd09..52ba7ef5c4 100644 --- a/plugins/Spamotron/src/utils.cpp +++ b/plugins/Spamotron/src/utils.cpp @@ -488,21 +488,20 @@ void MarkUnread(MCONTACT hContact) if (db_get(hContact, MODULENAME, "LastMsgEvents", &_dbv) == 0) { pos = _dbv.pbVal; while (pos - _dbv.pbVal < _dbv.cpbVal) { - DBEVENTINFO _dbei = {}; - memcpy(&_dbei.eventType, pos, sizeof(WORD)); pos += sizeof(WORD); - memcpy(&_dbei.flags, pos, sizeof(DWORD)); pos += sizeof(DWORD); - memcpy(&_dbei.timestamp, pos, sizeof(DWORD)); pos += sizeof(DWORD); + DBEVENTINFO dbei = {}; + memcpy(&dbei.eventType, pos, sizeof(WORD)); pos += sizeof(WORD); + memcpy(&dbei.flags, pos, sizeof(DWORD)); pos += sizeof(DWORD); + memcpy(&dbei.timestamp, pos, sizeof(DWORD)); pos += sizeof(DWORD); - _dbei.szModule = (char*)malloc(mir_strlen((const char*)pos)+1); - mir_strcpy(_dbei.szModule, (const char*)pos); + dbei.szModule = (char*)malloc(mir_strlen((const char*)pos)+1); + mir_strcpy((char*)dbei.szModule, (const char*)pos); pos += mir_strlen((const char*)pos)+1; - memcpy(&_dbei.cbBlob, pos, sizeof(DWORD)); pos += sizeof(DWORD); - _dbei.pBlob = (PBYTE)malloc(_dbei.cbBlob); - memcpy(_dbei.pBlob, pos, _dbei.cbBlob); - pos += _dbei.cbBlob; - - db_event_add(hContact,&_dbei); + memcpy(&dbei.cbBlob, pos, sizeof(DWORD)); pos += sizeof(DWORD); + dbei.pBlob = (PBYTE)malloc(dbei.cbBlob); + memcpy(dbei.pBlob, pos, dbei.cbBlob); + pos += dbei.cbBlob; + db_event_add(hContact,&dbei); } db_free(&_dbv); g_plugin.delSetting(hContact, "LastMsgEvents"); -- cgit v1.2.3