Socket::GetAddrInfo::Emul - Pure Perl emulation of
getnameinfo using IPv4-only legacy resolvers
Socket::GetAddrInfo attempts to provide the
getnameinfo functions 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
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.
familyhint is supplied, it must be
AF_INET. Any other value will result in an error thrown by
flagshint values are
AI_ALL are recognised but ignored,
as they do not apply to
Since this function only returns
it does not need to probe the system for configured addresses in other families,
AI_ADDRCONFIG flag is also ignored.
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.
$addris anything other than
AF_INET, an error will be thrown with
This pure-perl emulation provides the IDN constants such as
getnameinfo functions will croak if passed these flags.
This should allow a program to probe for their support,
and fall back to some other behaviour instead.
Paul Evans <firstname.lastname@example.org>