lwres_gethostent.docbook revision 0c27b3fe77ac1d5094ba3521e8142d9e7973133f
d46ee884c41b808b239563b1978468aae12e33a2vboxsync<!DOCTYPE book [
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync<!ENTITY mdash "&#8212;">]>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync<!--
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync - Copyright (C) 2001, 2004, 2005, 2007, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync -
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync - This Source Code Form is subject to the terms of the Mozilla Public
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync - License, v. 2.0. If a copy of the MPL was not distributed with this
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync - file, You can obtain one at http://mozilla.org/MPL/2.0/.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync-->
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync<!-- Converted by db4-upgrade version 1.0 -->
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync<refentry xmlns="http://docbook.org/ns/docbook" version="5.0">
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <info>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <date>2007-06-18</date>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </info>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refentryinfo>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <corpname>ISC</corpname>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync </refentryinfo>
904810c4c6668233349b025cc58013cb7c11c701vboxsync
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refmeta>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refentrytitle>lwres_gethostent</refentrytitle>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <manvolnum>3</manvolnum>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refmiscinfo>BIND9</refmiscinfo>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync </refmeta>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <docinfo>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <copyright>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2004</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2005</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2007</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2014</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2015</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <year>2016</year>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync </copyright>
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync <copyright>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <year>2001</year>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <holder>Internet Software Consortium.</holder>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync </copyright>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync </docinfo>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refnamediv>
3b70c9ab3cea93ab1a771d2db319311282041382vboxsync <refname>lwres_gethostbyname</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_gethostbyname2</refname>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refname>lwres_gethostbyaddr</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_gethostent</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_sethostent</refname>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <refname>lwres_endhostent</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_gethostbyname_r</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_gethostbyaddr_r</refname>
2a229554eb081e98411c81dcdef146c35a000f80vboxsync <refname>lwres_gethostent_r</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_sethostent_r</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refname>lwres_endhostent_r</refname>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refpurpose>lightweight resolver get network host entry</refpurpose>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </refnamediv>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <refsynopsisdiv>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <funcsynopsis>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync<funcsynopsisinfo>#include &lt;lwres/netdb.h&gt;</funcsynopsisinfo>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync<funcprototype>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <funcdef>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsyncstruct hostent *
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync<function>lwres_gethostbyname</function></funcdef>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <paramdef>const char *<parameter>name</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync<funcprototype>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <funcdef>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsyncstruct hostent *
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_gethostbyname2</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>const char *<parameter>name</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>af</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncstruct hostent *
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_gethostbyaddr</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>const char *<parameter>addr</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>len</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>type</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncstruct hostent *
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_gethostent</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>void</paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncvoid
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_sethostent</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>stayopen</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncvoid
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_endhostent</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>void</paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsyncstruct hostent *
01b2e367e947049139a5d5813ccc1fa162b11f76vboxsync<function>lwres_gethostbyname_r</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>const char *<parameter>name</parameter></paramdef>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
71e8510a26b72d539cf6d7d7157bd87a53de8cf4vboxsync <paramdef>char *<parameter>buf</parameter></paramdef>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <paramdef>int <parameter>buflen</parameter></paramdef>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <paramdef>int *<parameter>error</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncstruct hostent *
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_gethostbyaddr_r</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>const char *<parameter>addr</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>len</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>type</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>char *<parameter>buf</parameter></paramdef>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync <paramdef>int <parameter>buflen</parameter></paramdef>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync <paramdef>int *<parameter>error</parameter></paramdef>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync </funcprototype>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync<funcprototype>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncstruct hostent *
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_gethostent_r</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>struct hostent *<parameter>resbuf</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>char *<parameter>buf</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>buflen</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int *<parameter>error</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncvoid
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<function>lwres_sethostent_r</function></funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <paramdef>int <parameter>stayopen</parameter></paramdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync<funcprototype>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <funcdef>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsyncvoid
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync<function>lwres_endhostent_r</function></funcdef>
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync <paramdef>void</paramdef>
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync </funcprototype>
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync</funcsynopsis>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </refsynopsisdiv>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <refsection><info><title>DESCRIPTION</title></info>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <para>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync These functions provide hostname-to-address and
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync address-to-hostname lookups by means of the lightweight resolver.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync They are similar to the standard
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <citerefentry>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <refentrytitle>gethostent</refentrytitle><manvolnum>3</manvolnum>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </citerefentry>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync functions provided by most operating systems.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync They use a
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <type>struct hostent</type>
71626c00d9eb0b73ed7254794a6dfb000f4bb65cvboxsync which is usually defined in
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <filename>&lt;namedb.h&gt;</filename>.
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </para>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <para><programlisting>
c09430453634ebc72695a69d12366a8fb57132e3vboxsyncstruct hostent {
c09430453634ebc72695a69d12366a8fb57132e3vboxsync char *h_name; /* official name of host */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync char **h_aliases; /* alias list */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync int h_addrtype; /* host address type */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync int h_length; /* length of address */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync char **h_addr_list; /* list of addresses from name server */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync};
c09430453634ebc72695a69d12366a8fb57132e3vboxsync#define h_addr h_addr_list[0] /* address, for backward compatibility */
c09430453634ebc72695a69d12366a8fb57132e3vboxsync</programlisting>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </para>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <para>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync The members of this structure are:
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <variablelist>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <varlistentry>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <term><constant>h_name</constant></term>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <listitem>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <para>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync The official (canonical) name of the host.
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </para>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </listitem>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </varlistentry>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <varlistentry>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <term><constant>h_aliases</constant></term>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <listitem>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync A NULL-terminated array of alternate names (nicknames) for the
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync host.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </listitem>
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync </varlistentry>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <varlistentry>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <term><constant>h_addrtype</constant></term>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <listitem>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <para>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync The type of address being returned &mdash;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <type>PF_INET</type>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync or
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>PF_INET6</type>.
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync </para>
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync </listitem>
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync </varlistentry>
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync <varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <term><constant>h_length</constant></term>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync The length of the address in bytes.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </listitem>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync </varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <varlistentry>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync <term><constant>h_addr_list</constant></term>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <listitem>
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync A <type>NULL</type>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync terminated array of network addresses for the host.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync Host addresses are returned in network byte order.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </para>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </listitem>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync </varlistentry>
e33247bff4fddfdba92538374bcc9e2753044a38vboxsync </variablelist>
ec037c82be3787508e228c537bd15ad9de28bac0vboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync For backward compatibility with very old software,
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsync <constant>h_addr</constant>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync is the first address in
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <constant>h_addr_list.</constant>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync <para><function>lwres_gethostent()</function>,
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync <function>lwres_sethostent()</function>,
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync <function>lwres_endhostent()</function>,
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync <function>lwres_gethostent_r()</function>,
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync <function>lwres_sethostent_r()</function>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync and
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <function>lwres_endhostent_r()</function>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync provide iteration over the known host entries on systems that
d46ee884c41b808b239563b1978468aae12e33a2vboxsync provide such functionality through facilities like
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <filename>/etc/hosts</filename>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync or NIS. The lightweight resolver does not currently implement
d46ee884c41b808b239563b1978468aae12e33a2vboxsync these functions; it only provides them as stub functions that always
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync return failure.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
d46ee884c41b808b239563b1978468aae12e33a2vboxsync
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <para><function>lwres_gethostbyname()</function>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync and <function>lwres_gethostbyname2()</function> look up the
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync hostname <parameter>name</parameter>.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <function>lwres_gethostbyname()</function> always looks for an
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync IPv4 address while <function>lwres_gethostbyname2()</function>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync looks for an address of protocol family
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <parameter>af</parameter>: either <type>PF_INET</type> or
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>PF_INET6</type> &mdash; IPv4 or IPV6 addresses
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync respectively. Successful calls of the functions return a
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>struct hostent</type>for the name that was looked up.
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <type>NULL</type> is returned if the lookups by
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <function>lwres_gethostbyname()</function> or
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyname2()</function> fail.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync Reverse lookups of addresses are performed by
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyaddr()</function>.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <parameter>addr</parameter> is an address of length
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <parameter>len</parameter> bytes and protocol family
3933885bc0c2c93436d858a14564c6179ec72872vboxsync <parameter>type</parameter> &mdash; <type>PF_INET</type> or
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>PF_INET6</type>.
9ca017ceee656f9d33f2cb6652e401b5f17fcfb7vboxsync <function>lwres_gethostbyname_r()</function> is a
2a958663078b64bbcd23ff5ca77acbd42c541455vboxsync thread-safe function
3a8a18c52fd339275dcd738e571005ab6f7432acvboxsync for forward lookups. If an error occurs, an error code is returned in
904810c4c6668233349b025cc58013cb7c11c701vboxsync <parameter>*error</parameter>.
fa19c0d18bd40cc4ac754302ad7fbc78af8fa903vboxsync <parameter>resbuf</parameter> is a pointer to a
fd0cf98cb3eafc5c96b7e95d934b01c5df4785fbvboxsync <type>struct hostent</type> which is initialised by a successful call to
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyname_r()</function>.
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <parameter>buf</parameter> is a buffer of length
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <parameter>len</parameter> bytes which is used to store the
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <constant>h_name</constant>, <constant>h_aliases</constant>, and
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <constant>h_addr_list</constant> elements of the
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>struct hostent</type> returned in <parameter>resbuf</parameter>.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync Successful calls to <function>lwres_gethostbyname_r()</function>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync return <parameter>resbuf</parameter>,
d46ee884c41b808b239563b1978468aae12e33a2vboxsync which is a pointer to the <type>struct hostent</type> it created.
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync <para><function>lwres_gethostbyaddr_r()</function>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync is a thread-safe function
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync that performs a reverse lookup of address <parameter>addr</parameter>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync which is <parameter>len</parameter> bytes long and is of
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync protocol
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync family <parameter>type</parameter> &mdash; <type>PF_INET</type> or
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>PF_INET6</type>. If an error occurs, the error code is returned
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync in <parameter>*error</parameter>. The other function
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync parameters are
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync identical to those in <function>lwres_gethostbyname_r()</function>.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <parameter>resbuf</parameter> is a pointer to a
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>struct hostent</type> which is initialised by a successful call to
d46ee884c41b808b239563b1978468aae12e33a2vboxsync <function>lwres_gethostbyaddr_r()</function>.
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <parameter>buf</parameter> is a buffer of length
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <parameter>len</parameter> bytes which is used to store the
71626c00d9eb0b73ed7254794a6dfb000f4bb65cvboxsync <constant>h_name</constant>, <constant>h_aliases</constant>, and
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <constant>h_addr_list</constant> elements of the
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <type>struct hostent</type> returned in <parameter>resbuf</parameter>.
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync Successful calls to <function>lwres_gethostbyaddr_r()</function> return
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <parameter>resbuf</parameter>, which is a pointer to the
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <function>struct hostent()</function> it created.
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync </para>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync </refsection>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <refsection><info><title>RETURN VALUES</title></info>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <para>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync The functions
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <function>lwres_gethostbyname()</function>,
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <function>lwres_gethostbyname2()</function>,
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <function>lwres_gethostbyaddr()</function>,
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync and
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <function>lwres_gethostent()</function>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync return NULL to indicate an error. In this case the global variable
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <type>lwres_h_errno</type>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync will contain one of the following error codes defined in
71626c00d9eb0b73ed7254794a6dfb000f4bb65cvboxsync <filename>&lt;lwres/netdb.h&gt;</filename>:
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <variablelist>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <varlistentry>
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync <term><constant>HOST_NOT_FOUND</constant></term>
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync The host or address was not found.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <varlistentry>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <term><constant>TRY_AGAIN</constant></term>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <listitem>
6c2e2f2be39d679eb8e2e371afd146099f8dc5e7vboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync A recoverable error occurred, e.g., a timeout.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync Retrying the lookup may succeed.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync </listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <varlistentry>
c09430453634ebc72695a69d12366a8fb57132e3vboxsync <term><constant>NO_RECOVERY</constant></term>
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsync <listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
5ff3fa0492332325f57e80636321619e2224027evboxsync A non-recoverable error occurred.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <varlistentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <term><constant>NO_DATA</constant></term>
5ff3fa0492332325f57e80636321619e2224027evboxsync <listitem>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <para>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync The name exists, but has no address information
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync associated with it (or vice versa in the case
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync of a reverse lookup). The code NO_ADDRESS
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync is accepted as a synonym for NO_DATA for backwards
3933885bc0c2c93436d858a14564c6179ec72872vboxsync compatibility.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
3933885bc0c2c93436d858a14564c6179ec72872vboxsync </listitem>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </varlistentry>
3933885bc0c2c93436d858a14564c6179ec72872vboxsync </variablelist>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
060f7ec6ae5c99df18341ef2e1f3e91f4b0c89f1vboxsync <para><citerefentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </citerefentry>
3933885bc0c2c93436d858a14564c6179ec72872vboxsync translates these error codes to suitable error messages.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
3933885bc0c2c93436d858a14564c6179ec72872vboxsync <para><function>lwres_gethostent()</function>
fd0cf98cb3eafc5c96b7e95d934b01c5df4785fbvboxsync and <function>lwres_gethostent_r()</function>
6e25221ce8ef8e656d1e15eb7ec5cf8ae758ceb2vboxsync always return <type>NULL</type>.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
060f7ec6ae5c99df18341ef2e1f3e91f4b0c89f1vboxsync
9ca017ceee656f9d33f2cb6652e401b5f17fcfb7vboxsync <para>
fc60d7c6501c5e676e41b11c042d4358d9faa81dvboxsync Successful calls to <function>lwres_gethostbyname_r()</function> and
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyaddr_r()</function> return
5ff3fa0492332325f57e80636321619e2224027evboxsync <parameter>resbuf</parameter>, a pointer to the
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <type>struct hostent</type> that was initialised by these functions. They return
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <type>NULL</type> if the lookups fail or if <parameter>buf</parameter>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync was too small to hold the list of addresses and names referenced by
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync the <constant>h_name</constant>, <constant>h_aliases</constant>, and
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <constant>h_addr_list</constant> elements of the
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <type>struct hostent</type>.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync If <parameter>buf</parameter> was too small, both
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyname_r()</function> and
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyaddr_r()</function> set the global
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync variable
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <type>errno</type> to <errorcode>ERANGE</errorcode>.
a12929133f77ffa755a13a7d5d2ff3d87c41c9c5vboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </refsection>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refsection><info><title>SEE ALSO</title></info>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para><citerefentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refentrytitle>gethostent</refentrytitle><manvolnum>3</manvolnum>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync </citerefentry>,
52262a1f2eed7acaf08d8a169159e8201c9da661vboxsync
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <citerefentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refentrytitle>lwres_getipnode</refentrytitle><manvolnum>3</manvolnum>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </citerefentry>,
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
fd0cf98cb3eafc5c96b7e95d934b01c5df4785fbvboxsync <citerefentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <refentrytitle>lwres_hstrerror</refentrytitle><manvolnum>3</manvolnum>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </citerefentry>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync </para>
10153a147e7cb38821b5e7404bd2ef6b9af5be4avboxsync </refsection>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync
5ff3fa0492332325f57e80636321619e2224027evboxsync <refsection><info><title>BUGS</title></info>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <para><function>lwres_gethostbyname()</function>,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <function>lwres_gethostbyname2()</function>,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync <function>lwres_gethostbyaddr()</function>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync and
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync <function>lwres_endhostent()</function>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync are not thread safe; they return pointers to static data and
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync provide error codes through a global variable.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync Thread-safe versions for name and address lookup are provided by
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyname_r()</function>,
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync and
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <function>lwres_gethostbyaddr_r()</function>
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync respectively.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync </para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <para>
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync The resolver daemon does not currently support any non-DNS
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync name services such as
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync <filename>/etc/hosts</filename>
5ff3fa0492332325f57e80636321619e2224027evboxsync or
cebc93936b5bb4d867e1c086dd1b206db33c31dcvboxsync <type>NIS</type>,
cebc93936b5bb4d867e1c086dd1b206db33c31dcvboxsync consequently the above functions don't, either.
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync </para>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync </refsection>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync</refentry>
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync