Socket::GetAddrInfo::Emul - Pure Perl emulation of "getaddrinfo" and "getnameinfo" using IPv4-only legacy resolvers

NAME  DESCRIPTION  getaddrinfo  getnameinfo  IDN SUPPORT  AUTHOR 

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 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 be "AF_INET". Any other value will result in an error thrown by "croak".

The only supported "flags" hint values are "AI_PASSIVE", "AI_CANONNAME", "AI_NUMERICSERV" and "AI_NUMERICHOST".

The flags "AI_V4MAPPED" and "AI_ALL" are recognised but ignored, as they do not apply to "AF_INET" lookups. Since this function only returns "AF_INET" addresses, it does not need to probe the system for configured addresses in other families, so the "AI_ADDRCONFIG" flag is also ignored.

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 than "AF_INET", an error will be thrown with "croak".

The only supported $flags values are "NI_NUMERICHOST", "NI_NUMERICSERV", "NI_NOFQDN", "NI_NAMEREQD" and "NI_DGRAM".

IDN SUPPORT

This pure-perl emulation provides the IDN constants such as "AI_IDN" and "NI_IDN", but the "getaddrinfo" and "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.

AUTHOR

Paul Evans <[email protected]>


Updated 2024-01-29 - jenkler.se | uex.se