[prev in list] [next in list] [prev in thread] [next in thread] 

List:       licq-devel
Subject:    [Licq-devel] A couple of notes to the contact list problem
From:       Peter =?iso-8859-1?Q?Pal=FAch?= <peterp () frix ! fri ! utc ! sk>
Date:       2004-08-14 14:33:58
Message-ID: 20040814143358.GA24355 () gericom
[Download RAW message or body]

Hello everyone,
=-=-=-=-=-=-=-=

I have collected some information about this problem - no solution though :(

Using Ethereal I have analyzed the communication between my LICQ and the
server. It seems that the problem occurs in the initial communication. As I
am completely unfamiliar with the ICQ protocol I will describe the packets
the same way Ethereal describes them. Sorry if the nomenclature is not
correct ;)

After LICQ sends the login request and receives the "Self Info" packet from
the server, LICQ sends the "Buddylist, Add Buddy" packet (Family: Buddylist,
Subtype: Add Buddy) containing my complete local contactlist. The server
immediately responds with "SNAC Error: List overflow" message.

I tried disabling the icqUpdateContactList method in icqd-srv.cpp file. This
prevented LICQ from sending the local contact list to the server, and of
course, the server did not complain anymore. However, the behaviour did not
change - all my contacts stay offline.

It does not make a difference to have the server stored contacts turned on
or off (at least to me).

I have tried to reduce the MaxUsersPerPacket trying to lower the number of
UINs contained in the "Buddylist, Add Buddy" packet. To my surprise, LICQ
did not split the packet into smaller ones - rather it only inserted
multiple "Buddy List Service" subparts into one packet. Every such subpart
contained at most MaxUsersPerPacket UINs. I don't know if this is a bug or
it is intentional. Maybe it is worth trying to change the code to make it
send multiple "Buddylist, Add Buddy" packets containg just one "Buddy List
Service" subpart containing at most MaxUsersPerPacket UINs.

The GAIM does not seem to send the "Buddylist, Add Buddy" packet at all.
Instead, it seems to be using the Server Side Information Service nearly all
the time and it seems to me that the GAIM is completely dependent on the
server-stored contact list. From what I have seen with Ethereal, there are
notable differences in the way the LICQ and the GAIM communicate with the
server. 

Hope this helps at least a bit. I'll be glad to provide the packet capture
files to anyone who is interested (without the password sections ;)

I have done my experiments with LICQ 1.2.7-11 (Debian package) and the CVS
snapshot from the July 29th. Both behave the same way.

Regards,
Peter

-=x=-
Skontrolované antivírovým programom NOD32



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Licq-devel mailing list
Licq-devel@licq.org
https://lists.sourceforge.net/lists/listinfo/licq-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic