summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikalaiR <nikolay.romanovich@narod.ru>2015-06-04 10:38:59 +0000
committerMikalaiR <nikolay.romanovich@narod.ru>2015-06-04 10:38:59 +0000
commit9f5554e211907907ec149a7c8919bc70daf77026 (patch)
treea4c169f4bde3d225423cd4ee4273f28f38258580
parent8aaecbf3a35978c4c1daa6a9d49b563d2b2a91c6 (diff)
SkypeWeb: Fix loading contacts info for big contact list.
git-svn-id: http://svn.miranda-ng.org/main/trunk@13994 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--protocols/SkypeWeb/src/skype_contacts.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/protocols/SkypeWeb/src/skype_contacts.cpp b/protocols/SkypeWeb/src/skype_contacts.cpp
index 76e6b83a3c..fca06e2f91 100644
--- a/protocols/SkypeWeb/src/skype_contacts.cpp
+++ b/protocols/SkypeWeb/src/skype_contacts.cpp
@@ -250,7 +250,22 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response)
ptrA token(getStringA("TokenSecret"));
if (skypenames.getCount() > 0)
{
- PushRequest(new GetContactsInfoRequest(token, skypenames), &CSkypeProto::LoadContactsInfo);
+ int i = 0;
+ do
+ {
+ LIST<char> users(1);
+ for (; i < skypenames.getCount() && users.getCount() < 20; i++)
+ {
+ users.insert(skypenames[i]);
+ }
+
+ PushRequest(new GetContactsInfoRequest(token, users), &CSkypeProto::LoadContactsInfo);
+
+ for (int j = 0; i < users.getCount(); j++)
+ mir_free(users[j]);
+ users.destroy();
+ }
+ while(i < skypenames.getCount());
for (int i = 0; i < skypenames.getCount(); i++)
mir_free(skypenames[i]);