summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocols/VKontakte/src/vk_chats.cpp4
-rw-r--r--protocols/VKontakte/src/vk_proto.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/protocols/VKontakte/src/vk_chats.cpp b/protocols/VKontakte/src/vk_chats.cpp
index 377c7c076f..0ade10a53c 100644
--- a/protocols/VKontakte/src/vk_chats.cpp
+++ b/protocols/VKontakte/src/vk_chats.cpp
@@ -548,7 +548,7 @@ void CVkProto::LogMenuHook(CVkChatInfo *cc, GCHOOK *gch)
LONG uid = getDword(dlg.m_hContact, "ID", VK_INVALID_USER);
if (uid != VK_INVALID_USER)
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/messages.addChatUser.json", true, &CVkProto::OnReceiveSmth)
- << INT_PARAM("user_id", uid)
+ << INT_PARAM("user_id", uid < 0 ? 1000000000 - uid : uid)
<< INT_PARAM("chat_id", cc->m_iChatId));
}
}
@@ -763,7 +763,7 @@ void CVkProto::NickMenuHook(CVkChatInfo *cc, GCHOOK *gch)
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/messages.removeChatUser.json", true, &CVkProto::OnReceiveSmth)
<< INT_PARAM("chat_id", cc->m_iChatId)
- << INT_PARAM("user_id", cu->m_uid));
+ << INT_PARAM("user_id", cu->m_uid < 0 ? 1000000000 - cu->m_uid : cu->m_uid));
cu->m_bUnknown = true;
break;
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp
index 10e1a2693f..463518635c 100644
--- a/protocols/VKontakte/src/vk_proto.cpp
+++ b/protocols/VKontakte/src/vk_proto.cpp
@@ -530,6 +530,10 @@ int CVkProto::AuthRequest(MCONTACT hContact, const wchar_t *message)
if (userID == VK_INVALID_USER || !hContact || userID == VK_FEED_USER)
return 1;
+ if (userID < 0)
+ userID = 1000000000 - userID;
+
+
wchar_t msg[501] = { 0 };
if (message)
wcsncpy_s(msg, _countof(msg), message, _TRUNCATE);