summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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]);