ne_addr_resolve
3
ne_addr_resolve
ne_addr_result
ne_addr_first
ne_addr_next
ne_addr_error
ne_addr_destroy
functions to resolve hostnames to addresses
#include <ne_socket.h>
ne_sock_addr *ne_addr_resolve
const char *hostname
int flags
int ne_addr_result
const ne_sock_addr *addr
const ne_inet_addr *ne_addr_first
ne_sock_addr *addr
const ne_inet_addr *ne_addr_next
ne_sock_addr *addr
char *ne_addr_error
const ne_sock_addr *addr
char *buffer
size_t bufsiz
void ne_addr_destroy
ne_sock_addr *addr
Description
The ne_addr_resolve function resolves
the given hostname, returning an
ne_sock_addr object representing the address (or
addresses) associated with the hostname. The
flags parameter is currently unused, and
must be passed as 0.
The hostname passed to
ne_addr_resolve can be a DNS hostname
(e.g. "www.example.com") or an IPv4 dotted quad
(e.g. "192.0.34.72"); or, on systems which
support IPv6, an IPv6 hex address, which may be enclosed in
brackets, e.g. "[::1]".
To determine whether the hostname was successfully resolved,
the ne_addr_result function is used, which
returns non-zero if an error occurred. If an error did occur, the
ne_addr_error function can be used, which
will copy the error string into a given
buffer (of size
bufsiz).
The functions ne_addr_first and
ne_addr_next are used to retrieve the
Internet addresses associated with an address object which has
been successfully resolved. ne_addr_first
returns the first address; ne_addr_next
returns the next address after the most recent call to
ne_addr_next or
ne_addr_first, or &null; if there are no more
addresses. The ne_inet_addr pointer returned by
these functions can be passed to
ne_sock_connect to connect a socket.
After the address object has been used, it should be
destroyed using ne_addr_destroy.
Return value
ne_addr_resolve returns a pointer to an
address object, and never &null;.
ne_addr_error returns the
buffer parameter .
Examples
The code below prints out the set of addresses associated
with the hostname www.google.com.
ne_sock_addr *addr;
char buf[256];
addr = ne_addr_resolve("www.google.com", 0);
if (ne_addr_result(addr)) {
printf("Could not resolve www.google.com: %s\n",
ne_addr_error(addr, buf, sizeof buf));
} else {
const ne_inet_addr *ia;
printf("www.google.com:");
for (ia = ne_addr_first(addr); ia != NULL; ia = ne_addr_next(addr)) {
printf(" %s", ne_iaddr_print(ia, buf, sizeof buf));
}
putchar('\n');
}
ne_addr_destroy(addr);
See also