Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

ares_get_servers_ports (3)

Name

ares_get_servers_ports - Retrieve name servers from an initialized ares_channel

Synopsis

#include <ares.h>

int ares_get_servers(ares_channel channel, struct ares_addr_node **servers)
int ares_get_servers_ports(ares_channel channel, struct ares_addr_port_node **servers)

Description

ARES_GET_SERVERS(3)        Library Functions Manual        ARES_GET_SERVERS(3)



NAME
       ares_get_servers,  ares_get_servers_ports  - Retrieve name servers from
       an initialized ares_channel

SYNOPSIS
       #include <ares.h>

       int ares_get_servers(ares_channel channel, struct ares_addr_node **servers)
       int ares_get_servers_ports(ares_channel channel, struct ares_addr_port_node **servers)

DESCRIPTION
       The ares_get_servers(3) function retrieves name  servers  configuration
       from  the  channel  data  identified  by  channel,  as a linked list of
       ares_addr_node structs storing a pointer  to  the  first  node  at  the
       address specified by servers.

       The  ares_get_servers_ports(3)  function  also retrieves any per-server
       port information that may have been previously configured, returning  a
       linked list of ares_addr_port structures.

       Function  caller  may traverse the returned name server linked list, or
       may use it directly as suitable input  for  the  ares_set_servers(3)  /
       ares_set_servers_ports(3) functions, but shall not shrink or extend the
       list on its own.

       Each node of the name server linked list is stored  in  memory  dynami-
       cally  allocated and managed by c-ares. It is the caller's responsibil-
       ity to free the resulting linked list, using ares_free_data(3)  ,  once
       the caller does not need it any longer.

       This  function  is  capable  of  handling  IPv4  and  IPv6  name server
       addresses simultaneously, rendering ares_save_options(3)  with  optmask
       ARES_OPT_SERVERS functionally obsolete except for IPv4-only name server
       usage.


RETURN VALUES
       This function may return any of the following values:

       ARES_SUCCESS   The  name   servers   configuration   was   successfully
                      retrieved

       ARES_ENOMEM    The memory was exhausted

       ARES_ENODATA   The channel data identified by channel was invalid.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/libcares |
       +---------------+------------------+
       |Stability      | Volatile         |
       +---------------+------------------+

SEE ALSO
       ares_set_servers(3), ares_init_options(3), ares_save_options(3)

AVAILABILITY
       ares_get_servers(3)      was      added      in      c-ares      1.7.1;
       ares_get_servers_ports(3) was added in c-ares 1.11.0.

AUTHOR
       Implementation of this function and associated  library  internals  are
       based  on code, comments and feedback provided in November and December
       of 2008 by Daniel Stenberg, Gregor Jasny, Phil Blundell and  Yang  Tse,
       December  2009  by Cedric Bail, February 2010 by Jakub Hrozek. On March
       2010 Yang Tse shuffled all the bits and this function popped out.
       Copyright 1998 by the Massachusetts Institute of Technology.
       Copyright (C) 2008-2010 by Daniel Stenberg



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source   was   downloaded   from     https://c-ares.haxx.se/download/c-
       ares-1.17.2.tar.gz.

       Further information about this software can be found on the open source
       community website at https://c-ares.haxx.se/.



                                 5 March 2010              ARES_GET_SERVERS(3)