[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]

    { TS> Can anybody help me finding the interrupt For getting
     TS> a novell current user_name and the current station adress ??
    }
    Procedure GetConnectionInfo
    (Var LogicalStationNo: Integer; Var Name: String; Var HEX_ID: String;
     Var ConnType : Integer; Var DateTime : String; Var retcode:Integer);

    Var
      Reg            : Registers;
      I,X            : Integer;
      RequestBuffer  : Record
                         PacketLength : Integer;
                         FunctionVal  : Byte;
                         ConnectionNo : Byte;
                       end;
      ReplyBuffer    : Record
                         ReturnLength : Integer;
                         UniqueID1    : Packed Array [1..2] of Byte;
                         UniqueID2    : Packed Array [1..2] of Byte;
                         ConnType     : Packed Array [1..2] of Byte;
                         ObjectName   : Packed Array [1..48] of Byte;
                         LoginTime    : Packed Array [1..8] of Byte;
                       end;
      Month          : String[3];
      Year,
      Day,
      Hour,
      Minute         : String[2];

    begin
      With RequestBuffer Do begin
        PacketLength := 2;
        FunctionVal := 22;  { 22 = Get Station Info }
        ConnectionNo := LogicalStationNo;
      end;
      ReplyBuffer.ReturnLength := 62;
      With Reg Do begin
        Ah := $e3;
        Ds := Seg(RequestBuffer);
        Si := ofs(RequestBuffer);
        Es := Seg(ReplyBuffer);
        Di := ofs(ReplyBuffer);
      end;
      MsDos(Reg);
      name := '';
      hex_id := '';
      connType := 0;
      datetime := '';
      if Reg.al = 0 then begin
        With ReplyBuffer Do begin
          I := 1;
          While (I <= 48)  and (ObjectName[I] <> 0) Do begin
            Name[I] := Chr(Objectname[I]);
            I := I + 1;
          end { While };
          Name[0] := Chr(I - 1);
          if name<>'' then
          begin
           Str(LoginTime[1]:2,Year);
           Month := Months[LoginTime[2]];
           Str(LoginTime[3]:2,Day);
           Str(LoginTime[4]:2,Hour);
           Str(LoginTime[5]:2,Minute);
           if Day[1] = ' ' then Day[1] := '0';
           if Hour[1] = ' ' then Hour[1] := '0';
           if Minute[1] = ' ' then Minute[1] := '0';
           DateTime := Day+'-'+Month+'-'+Year+' ' + Hour + ':' + Minute;
          end;
        end { With };
      end;
      retcode := reg.al;
      if name<>'' then
      begin
       hex_id := '';
       hex_id := hexdigits[replybuffer.uniqueid1[1] shr 4];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid1[1] and $0F];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] shr 4];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] and $0F];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] shr 4];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] and $0F];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] shr 4];
       hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] and $0F];
       ConnType := replybuffer.connType[2];
      { Now we chop off leading zeros }
       While hex_id[1]='0' do hex_id := copy(hex_id,2,length(hex_id));
     end;
    end; { GetConnectInfo };

[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]