Enable IPv6 listen address (ListenAddress6)
[mgsmtp.git] / DNSResolve.pas
index fb4b467bd6424946f05825e80f7dde6f2958a09f..27913b0b8bf15f0e0e8c9da840ca3ca2a0c3ca20 100644 (file)
@@ -55,7 +55,8 @@ type
 
    function ResolveHost(HostName: ansistring; Family: cint): TGAIResult;
    procedure FreeHost(var GAIResult: TGAIResult);
-   function ResolveIP(AddrInfo: PAddrInfo): ansistring;
+   function ResolveIP(AddrInfo: PAddrInfo): ansistring; overload;
+   function ResolveIP(SockAddr: PSockAddr): ansistring; overload;
    function IPToStr(SockAddr: PSockAddr): ansistring;
 
 
@@ -93,6 +94,22 @@ begin
    else ResolveIP:= IPToStr(AddrInfo^.ai_addr);
 end;
 
+function ResolveIP(SockAddr: PSockAddr): ansistring;
+var
+   AddrInfo: TAddrInfo;
+begin
+   AddrInfo.ai_addr:= SockAddr;
+
+   if SockAddr^.sa_family = AF_INET then
+      AddrInfo.ai_addrlen:= SizeOf(TSockAddr)
+   else if SockAddr^.sa_family = AF_INET6 then
+      AddrInfo.ai_addrlen:= SizeOf(TSockAddr6)
+   else
+      AddrInfo.ai_addrlen:= 0;
+
+   ResolveIP:= ResolveIP(PAddrInfo(@AddrInfo));
+end;
+
 function IPToStr(SockAddr: PSockAddr): ansistring;
 begin
    if SockAddr^.sa_family = AF_INET then