summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-01-28 13:20:55 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-01-28 13:20:55 +0300
commit9a63063543f450472a564be2df56f7c42f6b3327 (patch)
treeb152f40fa45514adddcc1cb287c2f8ad2416d462 /protocols/ICQ-WIM
parent1aaf3408c2d6a47e9778347c43bffc62db75da31 (diff)
fixes #4154 (При выключенной опции "Remove contact from server too" контакт всё равно удаляется с сервера)
Diffstat (limited to 'protocols/ICQ-WIM')
-rw-r--r--protocols/ICQ-WIM/src/proto.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp
index ac144f2cdf..2dd9d96610 100644
--- a/protocols/ICQ-WIM/src/proto.cpp
+++ b/protocols/ICQ-WIM/src/proto.cpp
@@ -159,16 +159,18 @@ void CIcqProto::OnContactAdded(MCONTACT hContact)
}
}
-bool CIcqProto::OnContactDeleted(MCONTACT hContact, uint32_t)
+bool CIcqProto::OnContactDeleted(MCONTACT hContact, uint32_t flags)
{
- CMStringW szId(GetUserId(hContact));
- if (!isChatRoom(hContact)) {
- mir_cslock lck(m_csCache);
- m_arCache.remove(FindUser(szId));
- }
+ if (flags & CDF_FROM_SERVER) {
+ CMStringW szId(GetUserId(hContact));
+ if (!isChatRoom(hContact)) {
+ mir_cslock lck(m_csCache);
+ m_arCache.remove(FindUser(szId));
+ }
- Push(new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, "/buddylist/removeBuddy")
- << AIMSID(this) << WCHAR_PARAM("buddy", szId) << INT_PARAM("allGroups", 1));
+ Push(new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, "/buddylist/removeBuddy")
+ << AIMSID(this) << WCHAR_PARAM("buddy", szId) << INT_PARAM("allGroups", 1));
+ }
return true;
}