From 6414807882a7a0d82e0f97ac1a8eac4487462b44 Mon Sep 17 00:00:00 2001 From: MegaBrutal Date: Thu, 8 Nov 2018 01:45:00 +0100 Subject: [PATCH] (Network) Call fpSocket with proper address family modified: Network.pas --- Network.pas | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/Network.pas b/Network.pas index 7521ff1..ec602d1 100644 --- a/Network.pas +++ b/Network.pas @@ -188,25 +188,29 @@ function TTCPConnection.Connect(const HostName: string; Port: word): boolean; { Resolves the given hostname, and tries to connect it on the given port. } var GAIResult: TGAIResult; begin - FSocket:= fpSocket(af_inet, sock_stream, 0); - if (FSocket <> -1) then begin - GAIResult:= ResolveHost(HostName, AF_UNSPEC); - if GAIResult.GAIError = 0 then begin - Move(GAIResult.AddrInfo^.ai_addr^, SockAddr, GAIResult.AddrInfo^.ai_addrlen); - SockAddr.sin6_port:= htons(Port); + GAIResult:= ResolveHost(HostName, AF_UNSPEC); + if GAIResult.GAIError = 0 then begin + Move(GAIResult.AddrInfo^.ai_addr^, SockAddr, GAIResult.AddrInfo^.ai_addrlen); + SockAddr.sin6_port:= htons(Port); + + { Create socket. } + FSocket:= fpSocket(GAIResult.AddrInfo^.ai_family, SOCK_STREAM, 0); + + if (FSocket <> -1) then begin { Try to initiate connection. } FConnected:= fpConnect(FSocket, @SockAddr, GAIResult.AddrInfo^.ai_addrlen) <> -1; - if FConnected then begin - FHostIP:= TIPNamePair.Create(HostName, IPToStr(@SockAddr)); - SetSockTimeOut(FSockTimeOut); - end - else - CloseSocket(FSocket); + if FConnected then begin + FHostIP:= TIPNamePair.Create(HostName, IPToStr(@SockAddr)); + SetSockTimeOut(FSockTimeOut); + end + else + CloseSocket(FSocket); - FreeHost(GAIResult); end; + + FreeHost(GAIResult); end; Result:= FConnected; end; -- 2.34.1