lwres_getipnode.docbook revision 194e2dfffa6a167b8eef0ad11864026b423a1c30
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync - Copyright (C) 2000, 2001, 2003-2005, 2007, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync - This Source Code Form is subject to the terms of the Mozilla Public
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync - License, v. 2.0. If a copy of the MPL was not distributed with this
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync - file, You can obtain one at http://mozilla.org/MPL/2.0/.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<!-- Converted by db4-upgrade version 1.0 -->
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<refentry xmlns="http://docbook.org/ns/docbook" version="5.0">
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <refentryinfo>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </refentryinfo>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <copyright>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </copyright>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <refnamediv>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <refpurpose>lightweight resolver nodename / address translation API</refpurpose>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </refnamediv>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <refsynopsisdiv>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <funcsynopsis>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<funcsynopsisinfo>#include <lwres/netdb.h></funcsynopsisinfo>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsyncstruct hostent *
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<function>lwres_getipnodebyname</function></funcdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>const char *<parameter>name</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>int <parameter>flags</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>int *<parameter>error_num</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsyncstruct hostent *
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<function>lwres_getipnodebyaddr</function></funcdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>const void *<parameter>src</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>size_t <parameter>len</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>int *<parameter>error_num</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync<funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <paramdef>struct hostent *<parameter>he</parameter></paramdef>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </funcprototype>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync</funcsynopsis>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </refsynopsisdiv>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <refsection><info><title>DESCRIPTION</title></info>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync These functions perform thread safe, protocol independent
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync nodename-to-address and address-to-nodename
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync translation as defined in RFC2553.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync which is defined in
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsyncstruct hostent {
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync char *h_name; /* official name of host */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync char **h_aliases; /* alias list */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync int h_addrtype; /* host address type */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync int h_length; /* length of address */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync char **h_addr_list; /* list of addresses from name server */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync#define h_addr h_addr_list[0] /* address, for backward compatibility */
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync</programlisting>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync The members of this structure are:
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <variablelist>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync The official (canonical) name of the host.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync A NULL-terminated array of alternate names (nicknames) for the
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync The type of address being returned - usually
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync The length of the address in bytes.
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync terminated array of network addresses for the host.
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync Host addresses are returned in network byte order.
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </listitem>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </varlistentry>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </variablelist>
8eb4989e815c8f374b965265ccf184d6ce17d9e8vboxsync looks up addresses of protocol family <parameter>af</parameter>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <parameter>flags</parameter> parameter contains ORed flag bits
17a9bf5bda28580b3163cf1e2fb8b13c356b5fb0vboxsync to specify the types of addresses that are searched for, and the
8eb4989e815c8f374b965265ccf184d6ce17d9e8vboxsync types of addresses that are returned. The flag bits are:
dbfd74deae3cf437ea7b2ee06a74cc65a0901eacvboxsync <variablelist>
8eb4989e815c8f374b965265ccf184d6ce17d9e8vboxsync <varlistentry>
8eb4989e815c8f374b965265ccf184d6ce17d9e8vboxsync This is used with an
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync of AF_INET6, and causes IPv4 addresses to be returned as
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync IPv4-mapped
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync IPv6 addresses.
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </listitem>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync </varlistentry>
9d473abea9a9b6597b2b20bedc950ba33a2e73a5vboxsync <varlistentry>
8eb4989e815c8f374b965265ccf184d6ce17d9e8vboxsync This is used with an
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync of AF_INET6, and causes all known addresses (IPv6 and IPv4) to
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync be returned.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync If AI_V4MAPPED is also set, the IPv4 addresses are return as
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync IPv6 addresses.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync Only return an IPv6 or IPv4 address if here is an active network
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync interface of that type. This is not currently implemented
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync in the BIND 9 lightweight resolver, and the flag is ignored.
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </listitem>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync </varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync <varlistentry>
6be66de4257f4f564e35f7b8ee57a282e3cf3e96vboxsync This default sets the