NAME
Socket::GetAddrInfo::Emul
- Pure Perl emulation of getaddrinfo
and getnameinfo
using IPv4-only legacy resolvers
DESCRIPTION
Socket::GetAddrInfo
attempts to provide the getaddrinfo
and getnameinfo
functions as specified by RFC 2553. Ideally this is done by some XS code that calls the real functions in libc. If for some reason this cannot be done; either there is no C compiler, or libc does not provide these functions, then they will be emulated using the legacy resolvers gethostbyname
, etc... These emulations are not a complete replacement of the real functions, because they only support IPv4 (the AF_INET
socket family). In this case, the following restrictions will apply.
getaddrinfo
If the
family
hint is supplied, it must beAF_INET
. Any other value will result in an error thrown bycroak
.The only supported
flags
hint values areAI_PASSIVE
,AI_CANONNAME
,AI_NUMERICSERV
andAI_NUMERICHOST
.Note that
AI_NUMERICSERV
is an extension not defined by RFC 2553, but is provided by most OSes. It is possible (though unlikely) that even the native XS implementation does not recognise this constant.
getnameinfo
If the sockaddr family of
$addr
is anything other thanAF_INET
, an error will be thrown withcroak
.The only supported
$flags
values areNI_NUMERICHOST
,NI_NUMERICSERV
,NI_NAMEREQD
andNI_DGRAM
.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>