вот не поленился, откопал
Цитата:
Date: 2006-10-29 08:12
Sender: nobody
Logged In: NO
Hi,
i used a packet sniffer to find out what is running wrong.
And i find a solution for the problem above !
In the unit "IcqWorks.pas" in the procedure
"CreateCLI_IDENT" from line 1369 change the code to :
// Pack client identification details. We identify
ourselves as ICQ 2003b.
// eraser 13.05.2004
//PktTLV(Pkt, 3, 'ICQ Inc. - Product of ICQ
(TM).2003b.5.56.1.3916.85'); //Cookie
// datacool 29.10.2006
PktTLV(Pkt, 3, 'ICQBasic'); //Cookie
//Uknowns
(*
PktInt(Pkt, $00160002, 4); PktInt(Pkt, $010a, 2);
PktInt(Pkt, $00170002, 4); PktInt(Pkt, $0005, 2);
PktInt(Pkt, $00180002, 4); PktInt(Pkt, $0025, 2);
PktInt(Pkt, $00190002, 4); PktInt(Pkt, $0001, 2);
PktInt(Pkt, $001a0002, 4); PktInt(Pkt, $0e90, 2);
PktInt(Pkt, $00140004, 4); PktInt(Pkt, $00000055, 4);
PktTLV(Pkt, $000f, 'en');
PktTLV(Pkt, $000e, 'us');
*)
PktInt(Pkt, $00160002, 4); PktInt(Pkt, $010a, 2);
PktInt(Pkt, $00170002, 4); PktInt(Pkt, $0014, 2);
PktInt(Pkt, $00180002, 4); PktInt(Pkt, $0034, 2);
PktInt(Pkt, $00190002, 4); PktInt(Pkt, $0000, 2);
PktInt(Pkt, $001a0002, 4); PktInt(Pkt, $0bb8, 2);
PktInt(Pkt, $00140004, 4); PktInt(Pkt, $0000, 4);
PktTLV(Pkt, $000f, 'en');
PktTLV(Pkt, $000e, 'us');
Now the client login as "IcqLite 5.1", the changes
above are
not necessary.
But i suggest to do that !
For the real "solution" u have to change
"IcqClient.pas"
procedure "HandlePacket" line 1973 :
from Move(Data^, pkt.Data, Flap.DataLen); pkt.Len := 0;
to Move(Data^, pkt.Data, Flap.DataLen); pkt.Len := 5;
I'm still testing if this changes, affect any other errors
but till now,
everything is working fine.
For questions and other changes you can reach me under
datacool(at)gmx.net
Greetz Datacool
|
|