Man Linux: Main Page and Category List

NAME

       ares_getnameinfo   -   Address-to-nodename   translation  in  protocol-
       independent manner

SYNOPSIS

       #include <ares.h>

       typedef void (*ares_nameinfo_callback)(void *arg, int status,
       int timeouts, char *node, char *service)

       void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
            ares_socklen_t salen, int flags, ares_nameinfo_callback callback,
            void *arg)

DESCRIPTION

       The  ares_getnameinfo  function  is  defined  for  protocol-independent
       address    translation.    The    function    is   a   combination   of
       ares_gethostbyaddr(3) and getservbyport(3). The function will translate
       the  address  either  by  executing  a  host  query on the name service
       channel identified by channel or it will attempt to resolve it  locally
       if  possible.  The parameters sa and len give the address as a sockaddr
       structure, and flags gives the options  that  the  function  will  use.
       Valid flags are listed below:

       ARES_NI_NOFQDN     Only  the  nodename  portion of the FQDN is returned
                          for local hosts.

       ARES_NI_NUMERICHOST
                          The numeric form of the hostname is returned  rather
                          than the name.

       ARES_NI_NAMEREQD   An error is returned if the hostname cannot be found
                          in the DNS.

       ARES_NI_NUMERICSERV
                          The numeric form of the service is  returned  rather
                          than the name.

       ARES_NI_TCP        The  service  name  is  to  be looked up for the TCP
                          protocol.

       ARES_NI_UDP        The service name is to be  looked  up  for  the  UDP
                          protocol.

       ARES_NI_SCTP       The  service  name  is  to be looked up for the SCTP
                          protocol.

       ARES_NI_DCCP       The service name is to be looked  up  for  the  DCCP
                          protocol.

       ARES_NI_NUMERICSCOPE
                          The  numeric form of the scope ID is returned rather
                          than the name.

       ARES_NI_LOOKUPHOST A hostname lookup is being requested.

       ARES_NI_LOOKUPSERVICE
                          A service name lookup is being requested.

       When the query is complete or has failed, the ares library will  invoke
       callback.   Completion  or failure of the query may happen immediately,
       or may happen during a later call to  ares_process(3),  ares_destroy(3)
       or ares_cancel(3).

       The  callback argument arg is copied from the ares_getnameinfo argument
       arg.   The  callback  argument  status  indicates  whether  the   query
       succeeded and, if not, how it failed.  It may have any of the following
       values:

       ARES_SUCCESS       The host lookup completed successfully.

       ARES_ENOTIMP       The ares library  does  not  know  how  to  look  up
                          addresses of type family.

       ARES_ENOTFOUND     The address addr was not found.

       ARES_ENOMEM        Memory was exhausted.

       ARES_EDESTRUCTION  The name service channel channel is being destroyed;
                          the query will not be completed.

       ARES_EBADFLAGS     The flags parameter contains an illegal value.

       The callback argument timeouts reports how many times a query timed out
       during the execution of the given request.

       On  successful  completion  of  the  query,  the callback argument node
       contains    a    string    representing    the    hostname    (assuming
       ARES_NI_LOOKUPHOST  was  specified).  Additionally,  service contains a
       string representing the service  name  (assuming  ARES_NI_LOOKUPSERVICE
       was  specified).  If the query did not complete successfully, or one of
       the values was not requested, node or service will be NULL.

SEE ALSO

       ares_process(3), ares_getaddrinfo(3)

AUTHOR

       Dominick Meglio
       Copyright 2005 by Dominick Meglio.

                                  1 May 2009