Newsgroups : Borland : borland.public.delphi.internet.winsock : 2007 Sep : little bug in IdStackUnix.pas (Indy10)

www.cryer.info
Managed Newsgroup Archive

little bug in IdStackUnix.pas (Indy10)

Subject:little bug in IdStackUnix.pas (Indy10)
Posted by:"Do-wan Kim" (pupplecoff..@naver.com)
Date:Tue, 11 Sep 2007 19:12:16

In IdStackUnix.pas,

function TIdStackUnix.RecvFrom(const ASocket: TIdStackSocketHandle;
  var VBuffer; const ALength, AFlags: Integer; var VIP: string;
  var VPort: TIdPort; AIPVersion: TIdIPVersion = ID_DEFAULT_IP_VERSION ):
Integer;
var
  LiSize: tsocklen;
  LP : PSockAddr;
  LAddr6: sockaddr_in6;
begin
  case AIPVersion of
    Id_IPv4 :
      begin
        LP := @LAddr6;
        LiSize := SizeOf(LiSize); { this }
        Result := fpRecvFrom(ASocket, @VBuffer, ALength, AFlags or
Id_MSG_NOSIGNAL, LP, @LiSize);
        VIP := NetAddrToStr(LP^.sin_addr);
        VPort := NToHs(LP^.sin_port);
      end;

changes to

  case AIPVersion of
    Id_IPv4 :
      begin
        LP := @LAddr6;
        LiSize := SizeOf(TSockAddr); { or LP^ }
        Result := fpRecvFrom(ASocket, @VBuffer, ALength, AFlags or
Id_MSG_NOSIGNAL, LP, @LiSize);
        VIP := NetAddrToStr(LP^.sin_addr);
        VPort := NToHs(LP^.sin_port);
      end;


Regards,

Do-wan Kim.

Replies:

www.cryer.info
Managed Newsgroup Archive