a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<!--
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b - Copyright (C) 2000, 2001, 2003-2005, 2007, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b -
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b - This Source Code Form is subject to the terms of the Mozilla Public
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b - License, v. 2.0. If a copy of the MPL was not distributed with this
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b - file, You can obtain one at http://mozilla.org/MPL/2.0/.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b-->
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<!-- Converted by db4-upgrade version 1.0 -->
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0">
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <info>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <date>2007-06-18</date>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </info>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refentryinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <corpname>ISC</corpname>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </refentryinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refmeta>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refentrytitle>lwres_getipnode</refentrytitle>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <manvolnum>3</manvolnum>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refmiscinfo>BIND9</refmiscinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </refmeta>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <docinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <copyright>
70207641401debe608223aa2febe3c50f412bcbdAlex Valavanis <year>2000</year>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <year>2001</year>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <year>2003</year>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <year>2004</year>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <year>2005</year>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <year>2007</year>
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis <year>2014</year>
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis <year>2015</year>
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis <year>2016</year>
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis </copyright>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </docinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refnamediv>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refname>lwres_getipnodebyname</refname>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refname>lwres_getipnodebyaddr</refname>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refname>lwres_freehostent</refname>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refpurpose>lightweight resolver nodename / address translation API</refpurpose>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </refnamediv>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refsynopsisdiv>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <funcsynopsis>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<funcsynopsisinfo>#include &lt;lwres/netdb.h&gt;</funcsynopsisinfo>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bstruct hostent *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<function>lwres_getipnodebyname</function></funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>const char *<parameter>name</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>int <parameter>af</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>int <parameter>flags</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>int *<parameter>error_num</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bstruct hostent *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<function>lwres_getipnodebyaddr</function></funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>const void *<parameter>src</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>size_t <parameter>len</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>int <parameter>af</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>int *<parameter>error_num</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bvoid
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b<function>lwres_freehostent</function></funcdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <paramdef>struct hostent *<parameter>he</parameter></paramdef>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </funcprototype>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b</funcsynopsis>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </refsynopsisdiv>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <refsection><info><title>DESCRIPTION</title></info>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b These functions perform thread safe, protocol independent
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b nodename-to-address and address-to-nodename
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b translation as defined in RFC2553.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b They use a
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <type>struct hostent</type>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b which is defined in
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <filename>namedb.h</filename>:
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para><programlisting>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bstruct hostent {
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b char *h_name; /* official name of host */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b char **h_aliases; /* alias list */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b int h_addrtype; /* host address type */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b int h_length; /* length of address */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b char **h_addr_list; /* list of addresses from name server */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b};
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#define h_addr h_addr_list[0] /* address, for backward compatibility */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b</programlisting>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b The members of this structure are:
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <variablelist>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>h_name</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b The official (canonical) name of the host.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>h_aliases</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b A NULL-terminated array of alternate names (nicknames) for the
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b host.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>h_addrtype</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b The type of address being returned - usually
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <type>PF_INET</type>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b or
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <type>PF_INET6</type>.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>h_length</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b The length of the address in bytes.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>h_addr_list</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b A
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <type>NULL</type>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b terminated array of network addresses for the host.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b Host addresses are returned in network byte order.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </variablelist>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para><function>lwres_getipnodebyname()</function>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b looks up addresses of protocol family <parameter>af</parameter>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b for the hostname <parameter>name</parameter>. The
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <parameter>flags</parameter> parameter contains ORed flag bits
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b to specify the types of addresses that are searched for, and the
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b types of addresses that are returned. The flag bits are:
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <variablelist>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>AI_V4MAPPED</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b This is used with an
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <parameter>af</parameter>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b of AF_INET6, and causes IPv4 addresses to be returned as
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b IPv4-mapped
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b IPv6 addresses.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>AI_ALL</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b This is used with an
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <parameter>af</parameter>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b of AF_INET6, and causes all known addresses (IPv6 and IPv4) to
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b be returned.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b If AI_V4MAPPED is also set, the IPv4 addresses are return as
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b mapped
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b IPv6 addresses.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>AI_ADDRCONFIG</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b Only return an IPv6 or IPv4 address if here is an active network
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b interface of that type. This is not currently implemented
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b in the BIND 9 lightweight resolver, and the flag is ignored.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
d43aaac876bf967f3ab5a14f9abffd79d7959c80Alex Valavanis </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <term><constant>AI_DEFAULT</constant></term>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b This default sets the
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <constant>AI_V4MAPPED</constant>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b and
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <constant>AI_ADDRCONFIG</constant>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b flag bits.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </listitem>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </varlistentry>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </variablelist>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
2eefc362ae6a0a94b84ee5bc9e7844ef45c3642cAlex Valavanis <para><function>lwres_getipnodebyaddr()</function>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b performs a reverse lookup of address <parameter>src</parameter>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b which is <parameter>len</parameter> bytes long.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <parameter>af</parameter> denotes the protocol family, typically
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <type>PF_INET</type> or <type>PF_INET6</type>.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b </para>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b <para><function>lwres_freehostent()</function>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b releases all the memory associated with the <type>struct
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b hostent</type> pointer <parameter>he</parameter>. Any memory
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b allocated for the <constant>h_name</constant>,
<constant>h_addr_list</constant> and
<constant>h_aliases</constant> is freed, as is the memory for
the <type>hostent</type> structure itself.
</para>
</refsection>
<refsection><info><title>RETURN VALUES</title></info>
<para>
If an error occurs,
<function>lwres_getipnodebyname()</function>
and
<function>lwres_getipnodebyaddr()</function>
set
<parameter>*error_num</parameter>
to an appropriate error code and the function returns a
<type>NULL</type>
pointer.
The error codes and their meanings are defined in
<filename>&lt;lwres/netdb.h&gt;</filename>:
<variablelist>
<varlistentry>
<term><constant>HOST_NOT_FOUND</constant></term>
<listitem>
<para>
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>