getnameinfo TCP UDP

Converts a socket address to a string describing the host and another string describing the service.

Files

net_bsd.h/net_bsd.c

Prototype

int  getnameinfo (const  struct  sockaddr  *p_sockaddr,
                                 int        addrlen,
                                 char      *p_host_name,
                                 int        hostlen,
                                 char      *p_service_name,
                                 int        servicelen,
                                 int        flags)

Arguments

p_sockaddr

    Pointer to the sockaddr structure with the protocol address to be converted.

addrlen

    Length of the sockaddr structure pointed to by p_sockaddr.

p_host_name

    Pointer to the host name string allocated by the caller.

hostlen

    Length of string pointed to by p_host_name.

p_service_name

    Pointer to the service name string allocated by the caller.

servicelen

    Length of string pointed to by p_service_name.

flags

    Flags that change how this function converts the socket address.

  • NI_NAMEREQD -  an EAI_NONAME error will be returned if the host name cannot be resolved.
  • NI_DGRAM - the resolved service name will be the name of the UDP service used by that port. Some ports are shared between TCP and UDP.
  • NI_NOFQDN - the resolved host name will be truncated until the first '.' character.
  • NI_NUMERICHOST - 'p_host_name' will be resolved to the string representation of the IP address in dotted form.
  • NI_NUMERICSERV - 'p_service_name' will be resolved to the string representation of numeric value of the service port.

Returned Value

0, if no error.

Most non-zero error codes returned map to the set of errors outlined by Internet Engineering Task Force (IETF) recommendations:

  •     EAI_AGAIN
  •     EAI_BADFLAGS
  •     EAI_FAIL
  •     EAI_FAMILY
  •     EAI_MEMORY
  •     EAI_NONAME
  •     EAI_OVERFLOW
  •     EAI_SERVICE