Newsgroups : Borland : borland.public.delphi.internet.winsock : 2007 Sep : 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.