9700e6d72c3ba0d0c567969ab97d9eff202656d4Tinderbox User<!--
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - Copyright (C) 2000, 2001, 2003-2005, 2007, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User -
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User - This Source Code Form is subject to the terms of the Mozilla Public
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User - License, v. 2.0. If a copy of the MPL was not distributed with this
83217b5fdc70ea66fedf2ab3e9b9169c2b8a200aRob Austein - file, You can obtain one at http://mozilla.org/MPL/2.0/.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein-->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User<!-- Converted by db4-upgrade version 1.0 -->
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0">
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews <info>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <date>2007-06-18</date>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </info>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews <refentryinfo>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <corpname>ISC</corpname>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews </refentryinfo>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <refmeta>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <refentrytitle>lwres_getipnode</refentrytitle>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <manvolnum>3</manvolnum>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <refmiscinfo>BIND9</refmiscinfo>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </refmeta>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <docinfo>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <copyright>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <year>2000</year>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <year>2001</year>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <year>2003</year>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <year>2004</year>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <year>2005</year>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <year>2007</year>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <year>2014</year>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <year>2015</year>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <year>2016</year>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </copyright>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </docinfo>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <refnamediv>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <refname>lwres_getipnodebyname</refname>
9700e6d72c3ba0d0c567969ab97d9eff202656d4Tinderbox User <refname>lwres_getipnodebyaddr</refname>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <refname>lwres_freehostent</refname>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <refpurpose>lightweight resolver nodename / address translation API</refpurpose>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </refnamediv>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <refsynopsisdiv>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <funcsynopsis>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews<funcsynopsisinfo>#include &lt;lwres/netdb.h&gt;</funcsynopsisinfo>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User<funcprototype>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <funcdef>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox Userstruct hostent *
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley<function>lwres_getipnodebyname</function></funcdef>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <paramdef>const char *<parameter>name</parameter></paramdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <paramdef>int <parameter>af</parameter></paramdef>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <paramdef>int <parameter>flags</parameter></paramdef>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <paramdef>int *<parameter>error_num</parameter></paramdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </funcprototype>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User<funcprototype>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <funcdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrewsstruct hostent *
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews<function>lwres_getipnodebyaddr</function></funcdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <paramdef>const void *<parameter>src</parameter></paramdef>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <paramdef>size_t <parameter>len</parameter></paramdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <paramdef>int <parameter>af</parameter></paramdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <paramdef>int *<parameter>error_num</parameter></paramdef>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </funcprototype>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User<funcprototype>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <funcdef>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrewsvoid
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews<function>lwres_freehostent</function></funcdef>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <paramdef>struct hostent *<parameter>he</parameter></paramdef>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </funcprototype>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews</funcsynopsis>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </refsynopsisdiv>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <refsection><info><title>DESCRIPTION</title></info>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews These functions perform thread safe, protocol independent
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User nodename-to-address and address-to-nodename
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews translation as defined in RFC2553.
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews They use a
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <type>struct hostent</type>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews which is defined in
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <filename>namedb.h</filename>:
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <para><programlisting>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrewsstruct hostent {
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User char *h_name; /* official name of host */
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater char **h_aliases; /* alias list */
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews int h_addrtype; /* host address type */
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User int h_length; /* length of address */
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews char **h_addr_list; /* list of addresses from name server */
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews};
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#define h_addr h_addr_list[0] /* address, for backward compatibility */
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews</programlisting>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </para>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User The members of this structure are:
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater <variablelist>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <varlistentry>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <term><constant>h_name</constant></term>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <listitem>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The official (canonical) name of the host.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </listitem>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </varlistentry>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <varlistentry>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <term><constant>h_aliases</constant></term>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <listitem>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein A NULL-terminated array of alternate names (nicknames) for the
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews host.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </listitem>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </varlistentry>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <varlistentry>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <term><constant>h_addrtype</constant></term>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <listitem>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews The type of address being returned - usually
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <type>PF_INET</type>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews or
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <type>PF_INET6</type>.
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </listitem>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </varlistentry>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <varlistentry>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <term><constant>h_length</constant></term>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <listitem>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User The length of the address in bytes.
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </listitem>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews </varlistentry>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <varlistentry>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <term><constant>h_addr_list</constant></term>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <listitem>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews <para>
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews A
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <type>NULL</type>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews terminated array of network addresses for the host.
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews Host addresses are returned in network byte order.
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </listitem>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews </varlistentry>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </variablelist>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <para><function>lwres_getipnodebyname()</function>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews looks up addresses of protocol family <parameter>af</parameter>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews for the hostname <parameter>name</parameter>. The
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <parameter>flags</parameter> parameter contains ORed flag bits
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews to specify the types of addresses that are searched for, and the
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews types of addresses that are returned. The flag bits are:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <variablelist>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <varlistentry>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <term><constant>AI_V4MAPPED</constant></term>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <listitem>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This is used with an
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <parameter>af</parameter>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews of AF_INET6, and causes IPv4 addresses to be returned as
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User IPv4-mapped
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User IPv6 addresses.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </para>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </listitem>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </varlistentry>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <varlistentry>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <term><constant>AI_ALL</constant></term>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <listitem>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <para>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User This is used with an
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <parameter>af</parameter>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User of AF_INET6, and causes all known addresses (IPv6 and IPv4) to
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User be returned.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User If AI_V4MAPPED is also set, the IPv4 addresses are return as
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User mapped
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User IPv6 addresses.
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley </para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </listitem>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </varlistentry>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <varlistentry>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <term><constant>AI_ADDRCONFIG</constant></term>
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews <listitem>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User Only return an IPv6 or IPv4 address if here is an active network
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User interface of that type. This is not currently implemented
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User in the BIND 9 lightweight resolver, and the flag is ignored.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </para>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </listitem>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </varlistentry>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <varlistentry>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <term><constant>AI_DEFAULT</constant></term>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <listitem>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <para>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User This default sets the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User <constant>AI_V4MAPPED</constant>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User and
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <constant>AI_ADDRCONFIG</constant>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews flag bits.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </para>
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews </listitem>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </varlistentry>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User </variablelist>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley </para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para><function>lwres_getipnodebyaddr()</function>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein performs a reverse lookup of address <parameter>src</parameter>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews which is <parameter>len</parameter> bytes long.
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews <parameter>af</parameter> denotes the protocol family, typically
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <type>PF_INET</type> or <type>PF_INET6</type>.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para><function>lwres_freehostent()</function>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews releases all the memory associated with the <type>struct
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein hostent</type> pointer <parameter>he</parameter>. Any memory
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews allocated for the <constant>h_name</constant>,
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <constant>h_addr_list</constant> and
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <constant>h_aliases</constant> is freed, as is the memory for
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley the <type>hostent</type> structure itself.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews </para>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User </refsection>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <refsection><info><title>RETURN VALUES</title></info>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews If an error occurs,
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <function>lwres_getipnodebyname()</function>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews and
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <function>lwres_getipnodebyaddr()</function>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews set
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <parameter>*error_num</parameter>
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley to an appropriate error code and the function returns a
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews <type>NULL</type>
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark Andrews pointer.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User The error codes and their meanings are defined in
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <filename>&lt;lwres/netdb.h&gt;</filename>:
6ea1b817e31b89a627e146fe69e23ea0a64c89ecBob Halley <variablelist>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <varlistentry>
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews <term><constant>HOST_NOT_FOUND</constant></term>
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User <listitem>
9700e6d72c3ba0d0c567969ab97d9eff202656d4Tinderbox User <para>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews No such host is known.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NO_ADDRESS</constant></term>
<listitem>
<para>
The server recognised the request and the name but no address is
available. Another type of request to the name server for the
domain might return an answer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>TRY_AGAIN</constant></term>
<listitem>
<para>
A temporary and possibly transient error occurred, such as a
failure of a server to respond. The request may succeed if
retried.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>NO_RECOVERY</constant></term>
<listitem>
<para>
An unexpected failure occurred, and retrying the request
is pointless.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para><citerefentry>
<refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
translates these error codes to suitable error messages.
</para>
</refsection>
<refsection><info><title>SEE ALSO</title></info>
<para><citerefentry>
<refentrytitle>RFC2553</refentrytitle>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_gethostent</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_getaddrinfo</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_getnameinfo</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>.
</para>
</refsection>
</refentry>