(Network) Call fpSocket with proper address family
authorMegaBrutal <code+git@megabrutal.com>
Thu, 8 Nov 2018 00:45:00 +0000 (01:45 +0100)
committerMegaBrutal <code+git@megabrutal.com>
Sun, 11 Nov 2018 20:40:00 +0000 (21:40 +0100)
modified:   Network.pas

Network.pas

index 7521ff1877091bce6667fe4f3f92cbdb195b6dfe..ec602d1a8995022c6c12ec3a21766d988d49f037 100644 (file)
@@ -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;