Provided by: libsocket-getaddrinfo-perl_0.22-3_all bug


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


       "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.

       ·   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",

           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.

       ·   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".


       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.


       Paul Evans <>