Показать сообщение отдельно

  #10  
Старый 25.11.2006, 20:25
vvs777
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
С нами: 11305766

Репутация: 454


По умолчанию

вот не поленился, откопал
Цитата:
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
 
Ответить с цитированием