Witam.

Postanowiłem napisać własny moduł do obsługi GaduGadu w delphi.

Wzoruję się na tym: http://toxygen.net/libgadu/protocol/

Rekord logowania wygląda u mnie tak:

  TrLOGIN = record
    Header : TrHeader;
    var   UID :       integer;
    const Language :  string[2] = 'pl';
    var   hash_type : char;
    var   hash :      string[64];
    var   status :    integer;
    const flags    :  integer   = 0;
    const features :  integer   = 1;
     //not used
      const local_ip :      integer  = 0;
      const local_port :    shortint = 0;
      const external_ip :   integer  = 0;
      const external_port : shortint = 0;
     //not used end
    var   image_size :       byte; //or char
    const unknown  :         byte    = 100; //or char
    const version_len :      integer =  33;
    const version     :      string[33]  = 'Gadu-Gadu Client build 8.0.0.7669';
    var   description_size : integer;
    var   description :      string;
  end;

Z tym, że:

  TrHeader = record
    VType : integer;
    VLength : integer;
  end;

Pole VLength liczę tak:

SizeOf(LoginPackage) - SizeOf(TrHeader)

Po wysłaniu takiego pakietu serwer odpowiada pustym pakietem, w kórym VType = wydaje mi się losowa liczba (ostatnio było to 53554).

Wie ktoś gdzie popełniłem błąd?
2 dni już nad tym siedzę i nie mogę wymyślić...

Z góry dziękuje za odpowiedź i pozdrawiam
tlaguz

P.S.
Udało mi się odebrać seed i obliczyłem hasło (mam nadzieję, że poprawnie :-) )