diff options
author | MikalaiR <nikolay.romanovich@narod.ru> | 2015-06-04 10:38:59 +0000 |
---|---|---|
committer | MikalaiR <nikolay.romanovich@narod.ru> | 2015-06-04 10:38:59 +0000 |
commit | 9f5554e211907907ec149a7c8919bc70daf77026 (patch) | |
tree | a4c169f4bde3d225423cd4ee4273f28f38258580 | |
parent | 8aaecbf3a35978c4c1daa6a9d49b563d2b2a91c6 (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.cpp | 17 |
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]);
|