X-Git-Url: http://git.megabrutal.com/?a=blobdiff_plain;f=DNSResolve.pas;h=27913b0b8bf15f0e0e8c9da840ca3ca2a0c3ca20;hb=973fc2e5ed9372c813ce98f65ad4496c0935185b;hp=fb4b467bd6424946f05825e80f7dde6f2958a09f;hpb=461ab8aed63976eed05ba159c4dbfa4baa06d33b;p=mgsmtp.git diff --git a/DNSResolve.pas b/DNSResolve.pas index fb4b467..27913b0 100644 --- a/DNSResolve.pas +++ b/DNSResolve.pas @@ -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