Autor Beitrag
Chaosdelphin
Hält's aus hier
Beiträge: 4

win98se, wixp,win3.11, win95
Delphi 6 ;TPD
BeitragVerfasst: Fr 27.10.06 13:03 
Hi,
ich benutze in meinen Programmen öffters mal die Ticqclient-Komponente von www.torry.net/, seit letzter Woche bekomme ich bei jeder Anwendung die sich über diese Komponente zum icq-server verbinden will den Fehler "Received malformed login packet"...also irgendein fehlerfaftes Paket....

Der Fehler kommt selbst bei dem, mit der Komponente gelieferten Beispielprogramm...

Hat irgendjemand ne Lösung für das Problem oder nen Link für ne neue ICQ-Komponente(falls icq irgendwas am protokoll geändert hat)???

Schon mal Danke im Vorraus
Einloggen, um Attachments anzusehen!
phogl
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 67

Windows 98,2000Pro,XPPro, SuSE Linux 9.0
D5Stad D7Pers D2005Pers
BeitragVerfasst: Mi 10.01.07 09:21 
Das liegt (glaub ich) an der neuen protokollvercion (v9). die änderung hat nru den sinn eben solche programme rauszuschmeißen, ist daher relativ einfach zu fixen.

einfach da wos die kompo gibt ( sourceforge.net/projects/ticqlib ) auf bugs und dann auf "Received malformed login packet" klicken. => sourceforge.net/trac...9626&atid=525228

da steht dann:

Find this line in ICQClient.pas:
ausblenden Delphi-Quelltext
1:
2:
      //SRV_COOKIE
      FUIN  := GetTLVStr(@pkt, T);                //Client's UIN in ASCII

Replace with:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
      T := GetInt(@pkt, 2);
      if T = $008e then                 // TLV(142 [0x008E])
      begin
        Inc(pkt.Len, GetInt(@pkt, 2));  
        FUIN  := GetTLVStr(@pkt, T);
      end else
      if T = $0001 then                 // TLV(1 [0x0001])
        FUIN  := GetWStr(@pkt);